From 038c96fa724bec294bb74487e21f839596b424be Mon Sep 17 00:00:00 2001 From: Ben Karl <5302342+BenRKarl@users.noreply.github.com> Date: Wed, 2 Sep 2020 11:57:25 -0400 Subject: [PATCH] Changes for release v5_0. (#299) --- CONTRIBUTING.md | 28 + ChangeLog | 5 + .../account_management/create_customer.py | 68 +- .../account_management/get_account_changes.py | 170 +- .../get_account_hierarchy.py | 214 + .../get_account_information.py | 45 +- .../link_manager_to_client.py | 81 +- .../list_accessible_customers.py | 19 +- .../add_ad_group_bid_modifier.py | 89 +- .../advanced_operations/add_app_campaign.py | 219 +- .../add_dynamic_page_feed.py | 266 +- .../add_dynamic_search_ads.py | 168 +- ...add_expanded_text_ad_with_upgraded_urls.py | 110 +- examples/advanced_operations/add_gmail_ad.py | 135 +- examples/advanced_operations/add_sitelink.py | 44 +- .../add_smart_display_ad.py | 392 +- .../create_and_attach_shared_keyword_set.py | 126 +- ...ind_and_remove_criteria_from_shared_set.py | 122 +- .../get_ad_group_bid_modifiers.py | 84 +- .../use_portfolio_bidding_strategy.py | 119 +- .../authenticate_in_standalone_application.py | 47 +- .../authenticate_in_web_application.py | 47 +- examples/basic_operations/add_ad_groups.py | 57 +- examples/basic_operations/add_campaigns.py | 94 +- .../basic_operations/add_expanded_text_ads.py | 97 +- examples/basic_operations/add_keywords.py | 95 +- .../add_responsive_search_ad.py | 93 +- examples/basic_operations/get_ad_groups.py | 64 +- .../basic_operations/get_artifact_metadata.py | 79 +- examples/basic_operations/get_campaigns.py | 36 +- .../basic_operations/get_expanded_text_ads.py | 64 +- examples/basic_operations/get_keywords.py | 76 +- .../get_responsive_search_ads.py | 91 +- examples/basic_operations/pause_ad.py | 52 +- examples/basic_operations/remove_ad.py | 49 +- examples/basic_operations/remove_ad_group.py | 41 +- examples/basic_operations/remove_campaign.py | 41 +- examples/basic_operations/remove_keyword.py | 53 +- examples/basic_operations/update_ad_group.py | 64 +- examples/basic_operations/update_campaign.py | 48 +- .../update_expanded_text_ad.py | 56 +- examples/basic_operations/update_keyword.py | 65 +- .../billing/add_account_budget_proposal.py | 77 +- .../billing/get_account_budget_proposals.py | 95 +- examples/billing/get_account_budgets.py | 117 +- examples/billing/get_billing_setup.py | 68 +- examples/billing/remove_billing_setup.py | 62 +- .../add_campaign_bid_modifier.py | 89 +- .../campaign_management/add_campaign_draft.py | 61 +- .../add_campaign_labels.py | 70 +- .../add_complete_campaigns_using_batch_job.py | 289 +- .../create_campaign_experiment.py | 106 +- .../get_all_disapproved_ads.py | 126 +- .../get_campaigns_by_label.py | 50 +- .../graduate_campaign_experiment.py | 134 + .../campaign_management/set_ad_parameters.py | 84 +- .../update_campaign_criterion_bid_modifier.py | 79 +- .../campaign_management/validate_text_ad.py | 103 +- ...ndle_expanded_text_ad_policy_violations.py | 232 + .../handle_keyword_policy_violations.py | 264 + .../error_handling/handle_partial_failure.py | 94 +- examples/extensions/add_prices.py | 209 +- examples/extensions/add_sitelinks.py | 178 +- .../extensions/add_sitelinks_using_feeds.py | 426 + examples/hotel_ads/add_hotel_ad.py | 210 +- .../add_hotel_ad_group_bid_modifiers.py | 85 +- ...eate_complete_campaign_adwords_api_only.py | 221 +- ...ate_complete_campaign_both_apis_phase_1.py | 250 +- ...ate_complete_campaign_both_apis_phase_2.py | 257 +- ...ate_complete_campaign_both_apis_phase_3.py | 254 +- ...ate_complete_campaign_both_apis_phase_4.py | 288 +- ...e_complete_campaign_google_ads_api_only.py | 308 +- examples/misc/get_all_image_assets.py | 61 +- examples/misc/get_all_videos_and_images.py | 40 +- examples/misc/upload_image.py | 43 +- examples/misc/upload_image_asset.py | 51 +- examples/misc/upload_media_bundle.py | 49 +- examples/planning/add_keyword_plan.py | 176 +- examples/planning/forecast_reach.py | 177 +- .../planning/generate_forecast_metrics.py | 59 +- examples/planning/generate_keyword_ideas.py | 149 +- ..._ad_group_criterion_cpc_bid_simulations.py | 115 + ...aign_criterion_bid_modifier_simulations.py | 122 + .../recommendations/apply_recommendation.py | 60 +- .../recommendations/dismiss_recommendation.py | 62 +- .../get_text_ad_recommendations.py | 43 +- examples/remarketing/add_conversion_action.py | 69 +- .../add_customer_match_user_list.py | 324 + .../remarketing/add_remarketing_action.py | 115 +- .../upload_conversion_adjustment.py | 193 +- .../remarketing/upload_offline_conversion.py | 132 +- .../reporting/get_hotel_ads_performance.py | 75 +- examples/reporting/get_keyword_stats.py | 78 +- examples/shopping_ads/add_listing_scope.py | 75 +- .../shopping_ads/add_shopping_product_ad.py | 276 +- .../get_product_bidding_category_constant.py | 137 +- .../add_campaign_targeting_criteria.py | 158 +- .../add_demographic_targeting_criteria.py | 79 +- .../get_campaign_targeting_criteria.py | 86 +- .../get_geo_target_constants_by_names.py | 76 +- google/__init__.py | 2 + google/ads/__init__.py | 2 + google/ads/google_ads/__init__.py | 4 +- google/ads/google_ads/client.py | 105 +- google/ads/google_ads/config.py | 63 +- .../ads/google_ads/interceptors/__init__.py | 2 +- .../interceptors/exception_interceptor.py | 10 +- .../google_ads/interceptors/interceptor.py | 56 +- .../interceptors/logging_interceptor.py | 146 +- .../interceptors/metadata_interceptor.py | 37 +- google/ads/google_ads/oauth2.py | 50 +- google/ads/google_ads/util.py | 14 +- google/ads/google_ads/v5/__init__.py | 298 + google/ads/google_ads/v5/proto/__init__.py | 0 .../google_ads/v5/proto/common/__init__.py | 0 .../v5/proto/common/ad_asset_pb2.py | 268 + .../v5/proto/common/ad_asset_pb2_grpc.py | 4 + .../v5/proto/common/ad_type_infos_pb2.py | 3285 +++++ .../v5/proto/common/ad_type_infos_pb2_grpc.py | 4 + .../v5/proto/common/asset_types_pb2.py | 422 + .../v5/proto/common/asset_types_pb2_grpc.py | 4 + .../google_ads/v5/proto/common/bidding_pb2.py | 825 ++ .../v5/proto/common/bidding_pb2_grpc.py | 4 + .../v5/proto/common/click_location_pb2.py | 157 + .../proto/common/click_location_pb2_grpc.py | 4 + .../v5/proto/common/criteria_pb2.py | 3544 +++++ .../v5/proto/common/criteria_pb2_grpc.py | 4 + .../criterion_category_availability_pb2.py | 258 + ...riterion_category_availability_pb2_grpc.py | 4 + .../v5/proto/common/custom_parameter_pb2.py | 106 + .../proto/common/custom_parameter_pb2_grpc.py | 4 + .../google_ads/v5/proto/common/dates_pb2.py | 92 + .../v5/proto/common/dates_pb2_grpc.py | 4 + .../explorer_auto_optimizer_setting_pb2.py | 90 + ...xplorer_auto_optimizer_setting_pb2_grpc.py | 4 + .../v5/proto/common/extensions_pb2.py | 1352 ++ .../v5/proto/common/extensions_pb2_grpc.py | 4 + .../v5/proto/common/feed_common_pb2.py | 92 + .../v5/proto/common/feed_common_pb2_grpc.py | 4 + .../v5/proto/common/final_app_url_pb2.py | 105 + .../v5/proto/common/final_app_url_pb2_grpc.py | 4 + .../v5/proto/common/frequency_cap_pb2.py | 192 + .../v5/proto/common/frequency_cap_pb2_grpc.py | 4 + .../proto/common/keyword_plan_common_pb2.py | 213 + .../common/keyword_plan_common_pb2_grpc.py | 4 + .../v5/proto/common/matching_function_pb2.py | 483 + .../common/matching_function_pb2_grpc.py | 4 + .../google_ads/v5/proto/common/metrics_pb2.py | 2183 +++ .../v5/proto/common/metrics_pb2_grpc.py | 4 + .../v5/proto/common/offline_user_data_pb2.py | 719 + .../common/offline_user_data_pb2_grpc.py | 4 + .../google_ads/v5/proto/common/policy_pb2.py | 978 ++ .../v5/proto/common/policy_pb2_grpc.py | 4 + .../common/real_time_bidding_setting_pb2.py | 89 + .../real_time_bidding_setting_pb2_grpc.py | 4 + .../v5/proto/common/segments_pb2.py | 1438 ++ .../v5/proto/common/segments_pb2_grpc.py | 4 + .../v5/proto/common/simulation_pb2.py | 1355 ++ .../v5/proto/common/simulation_pb2_grpc.py | 4 + .../v5/proto/common/tag_snippet_pb2.py | 131 + .../v5/proto/common/tag_snippet_pb2_grpc.py | 4 + .../v5/proto/common/targeting_setting_pb2.py | 266 + .../common/targeting_setting_pb2_grpc.py | 4 + .../v5/proto/common/text_label_pb2.py | 96 + .../v5/proto/common/text_label_pb2_grpc.py | 4 + .../v5/proto/common/url_collection_pb2.py | 123 + .../proto/common/url_collection_pb2_grpc.py | 4 + .../v5/proto/common/user_lists_pb2.py | 1178 ++ .../v5/proto/common/user_lists_pb2_grpc.py | 4 + .../google_ads/v5/proto/common/value_pb2.py | 138 + .../v5/proto/common/value_pb2_grpc.py | 4 + .../ads/google_ads/v5/proto/enums/__init__.py | 0 .../v5/proto/enums/access_reason_pb2.py | 120 + .../v5/proto/enums/access_reason_pb2_grpc.py | 4 + .../v5/proto/enums/access_role_pb2.py | 115 + .../v5/proto/enums/access_role_pb2_grpc.py | 4 + .../account_budget_proposal_status_pb2.py | 120 + ...account_budget_proposal_status_pb2_grpc.py | 4 + .../enums/account_budget_proposal_type_pb2.py | 115 + .../account_budget_proposal_type_pb2_grpc.py | 4 + .../proto/enums/account_budget_status_pb2.py | 110 + .../enums/account_budget_status_pb2_grpc.py | 4 + .../v5/proto/enums/account_link_status_pb2.py | 115 + .../enums/account_link_status_pb2_grpc.py | 4 + .../ad_customizer_placeholder_field_pb2.py | 115 + ...d_customizer_placeholder_field_pb2_grpc.py | 4 + .../enums/ad_group_ad_rotation_mode_pb2.py | 106 + .../ad_group_ad_rotation_mode_pb2_grpc.py | 4 + .../v5/proto/enums/ad_group_ad_status_pb2.py | 110 + .../enums/ad_group_ad_status_pb2_grpc.py | 4 + .../ad_group_criterion_approval_status_pb2.py | 116 + ...roup_criterion_approval_status_pb2_grpc.py | 4 + .../enums/ad_group_criterion_status_pb2.py | 110 + .../ad_group_criterion_status_pb2_grpc.py | 4 + .../v5/proto/enums/ad_group_status_pb2.py | 110 + .../proto/enums/ad_group_status_pb2_grpc.py | 4 + .../v5/proto/enums/ad_group_type_pb2.py | 167 + .../v5/proto/enums/ad_group_type_pb2_grpc.py | 4 + .../v5/proto/enums/ad_network_type_pb2.py | 125 + .../proto/enums/ad_network_type_pb2_grpc.py | 4 + .../ad_serving_optimization_status_pb2.py | 120 + ...ad_serving_optimization_status_pb2_grpc.py | 4 + .../v5/proto/enums/ad_strength_pb2.py | 125 + .../v5/proto/enums/ad_strength_pb2_grpc.py | 4 + .../google_ads/v5/proto/enums/ad_type_pb2.py | 225 + .../v5/proto/enums/ad_type_pb2_grpc.py | 4 + .../enums/advertising_channel_sub_type_pb2.py | 175 + .../advertising_channel_sub_type_pb2_grpc.py | 4 + .../enums/advertising_channel_type_pb2.py | 135 + .../advertising_channel_type_pb2_grpc.py | 4 + ...ate_location_feed_relationship_type_pb2.py | 101 + ...ocation_feed_relationship_type_pb2_grpc.py | 4 + ...ffiliate_location_placeholder_field_pb2.py | 150 + ...ate_location_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/age_range_type_pb2.py | 130 + .../v5/proto/enums/age_range_type_pb2_grpc.py | 4 + .../proto/enums/app_campaign_app_store_pb2.py | 105 + .../enums/app_campaign_app_store_pb2_grpc.py | 4 + ...campaign_bidding_strategy_goal_type_pb2.py | 116 + ...ign_bidding_strategy_goal_type_pb2_grpc.py | 4 + .../proto/enums/app_payment_model_type_pb2.py | 100 + .../enums/app_payment_model_type_pb2_grpc.py | 4 + .../proto/enums/app_placeholder_field_pb2.py | 135 + .../enums/app_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/app_store_pb2.py | 105 + .../v5/proto/enums/app_store_pb2_grpc.py | 4 + .../app_url_operating_system_type_pb2.py | 105 + .../app_url_operating_system_type_pb2_grpc.py | 4 + .../v5/proto/enums/asset_field_type_pb2.py | 130 + .../proto/enums/asset_field_type_pb2_grpc.py | 4 + .../v5/proto/enums/asset_link_status_pb2.py | 105 + .../proto/enums/asset_link_status_pb2_grpc.py | 4 + .../enums/asset_performance_label_pb2.py | 120 + .../enums/asset_performance_label_pb2_grpc.py | 4 + .../v5/proto/enums/asset_type_pb2.py | 120 + .../v5/proto/enums/asset_type_pb2_grpc.py | 4 + .../v5/proto/enums/attribution_model_pb2.py | 132 + .../proto/enums/attribution_model_pb2_grpc.py | 4 + .../v5/proto/enums/batch_job_status_pb2.py | 110 + .../proto/enums/batch_job_status_pb2_grpc.py | 4 + .../v5/proto/enums/bid_modifier_source_pb2.py | 105 + .../enums/bid_modifier_source_pb2_grpc.py | 4 + .../v5/proto/enums/bidding_source_pb2.py | 110 + .../v5/proto/enums/bidding_source_pb2_grpc.py | 4 + .../enums/bidding_strategy_status_pb2.py | 105 + .../enums/bidding_strategy_status_pb2_grpc.py | 4 + .../proto/enums/bidding_strategy_type_pb2.py | 170 + .../enums/bidding_strategy_type_pb2_grpc.py | 4 + .../proto/enums/billing_setup_status_pb2.py | 115 + .../enums/billing_setup_status_pb2_grpc.py | 4 + .../enums/brand_safety_suitability_pb2.py | 110 + .../brand_safety_suitability_pb2_grpc.py | 4 + .../budget_campaign_association_status_pb2.py | 106 + ...et_campaign_association_status_pb2_grpc.py | 4 + .../proto/enums/budget_delivery_method_pb2.py | 106 + .../enums/budget_delivery_method_pb2_grpc.py | 4 + .../v5/proto/enums/budget_period_pb2.py | 105 + .../v5/proto/enums/budget_period_pb2_grpc.py | 4 + .../v5/proto/enums/budget_status_pb2.py | 105 + .../v5/proto/enums/budget_status_pb2_grpc.py | 4 + .../v5/proto/enums/budget_type_pb2.py | 110 + .../v5/proto/enums/budget_type_pb2_grpc.py | 4 + .../call_conversion_reporting_state_pb2.py | 111 + ...all_conversion_reporting_state_pb2_grpc.py | 4 + .../proto/enums/call_placeholder_field_pb2.py | 120 + .../enums/call_placeholder_field_pb2_grpc.py | 4 + .../enums/callout_placeholder_field_pb2.py | 100 + .../callout_placeholder_field_pb2_grpc.py | 4 + .../enums/campaign_criterion_status_pb2.py | 110 + .../campaign_criterion_status_pb2_grpc.py | 4 + .../proto/enums/campaign_draft_status_pb2.py | 120 + .../enums/campaign_draft_status_pb2_grpc.py | 4 + .../enums/campaign_experiment_status_pb2.py | 141 + .../campaign_experiment_status_pb2_grpc.py | 4 + ...paign_experiment_traffic_split_type_pb2.py | 105 + ..._experiment_traffic_split_type_pb2_grpc.py | 4 + .../enums/campaign_experiment_type_pb2.py | 110 + .../campaign_experiment_type_pb2_grpc.py | 4 + .../enums/campaign_serving_status_pb2.py | 120 + .../enums/campaign_serving_status_pb2_grpc.py | 4 + .../enums/campaign_shared_set_status_pb2.py | 105 + .../campaign_shared_set_status_pb2_grpc.py | 4 + .../v5/proto/enums/campaign_status_pb2.py | 110 + .../proto/enums/campaign_status_pb2_grpc.py | 4 + .../enums/change_status_operation_pb2.py | 111 + .../enums/change_status_operation_pb2_grpc.py | 4 + .../enums/change_status_resource_type_pb2.py | 146 + .../change_status_resource_type_pb2_grpc.py | 4 + .../v5/proto/enums/click_type_pb2.py | 360 + .../v5/proto/enums/click_type_pb2_grpc.py | 4 + .../v5/proto/enums/content_label_type_pb2.py | 170 + .../enums/content_label_type_pb2_grpc.py | 4 + .../enums/conversion_action_category_pb2.py | 196 + .../conversion_action_category_pb2_grpc.py | 4 + .../conversion_action_counting_type_pb2.py | 106 + ...onversion_action_counting_type_pb2_grpc.py | 4 + .../enums/conversion_action_status_pb2.py | 111 + .../conversion_action_status_pb2_grpc.py | 4 + .../proto/enums/conversion_action_type_pb2.py | 270 + .../enums/conversion_action_type_pb2_grpc.py | 4 + .../enums/conversion_adjustment_type_pb2.py | 105 + .../conversion_adjustment_type_pb2_grpc.py | 4 + .../conversion_attribution_event_type_pb2.py | 106 + ...version_attribution_event_type_pb2_grpc.py | 4 + .../proto/enums/conversion_lag_bucket_pb2.py | 191 + .../enums/conversion_lag_bucket_pb2_grpc.py | 4 + ...conversion_or_adjustment_lag_bucket_pb2.py | 302 + ...rsion_or_adjustment_lag_bucket_pb2_grpc.py | 4 + ..._category_channel_availability_mode_pb2.py | 113 + ...gory_channel_availability_mode_pb2_grpc.py | 4 + ...n_category_locale_availability_mode_pb2.py | 118 + ...egory_locale_availability_mode_pb2_grpc.py | 4 + .../criterion_system_serving_status_pb2.py | 106 + ...riterion_system_serving_status_pb2_grpc.py | 4 + .../v5/proto/enums/criterion_type_pb2.py | 245 + .../v5/proto/enums/criterion_type_pb2_grpc.py | 4 + .../enums/custom_interest_member_type_pb2.py | 105 + .../custom_interest_member_type_pb2_grpc.py | 4 + .../proto/enums/custom_interest_status_pb2.py | 105 + .../enums/custom_interest_status_pb2_grpc.py | 4 + .../proto/enums/custom_interest_type_pb2.py | 105 + .../enums/custom_interest_type_pb2_grpc.py | 4 + .../enums/custom_placeholder_field_pb2.py | 197 + .../custom_placeholder_field_pb2_grpc.py | 4 + .../customer_match_upload_key_type_pb2.py | 110 + ...customer_match_upload_key_type_pb2_grpc.py | 4 + ...nversion_eligibility_failure_reason_pb2.py | 131 + ...ion_eligibility_failure_reason_pb2_grpc.py | 4 + .../enums/data_driven_model_status_pb2.py | 115 + .../data_driven_model_status_pb2_grpc.py | 4 + .../v5/proto/enums/day_of_week_pb2.py | 130 + .../v5/proto/enums/day_of_week_pb2_grpc.py | 4 + .../google_ads/v5/proto/enums/device_pb2.py | 121 + .../v5/proto/enums/device_pb2_grpc.py | 4 + .../enums/display_ad_format_setting_pb2.py | 110 + .../display_ad_format_setting_pb2_grpc.py | 4 + .../enums/display_upload_product_type_pb2.py | 150 + .../display_upload_product_type_pb2_grpc.py | 4 + .../v5/proto/enums/distance_bucket_pb2.py | 231 + .../proto/enums/distance_bucket_pb2_grpc.py | 4 + .../dsa_page_feed_criterion_field_pb2.py | 105 + .../dsa_page_feed_criterion_field_pb2_grpc.py | 4 + .../enums/education_placeholder_field_pb2.py | 182 + .../education_placeholder_field_pb2_grpc.py | 4 + .../enums/extension_setting_device_pb2.py | 105 + .../extension_setting_device_pb2_grpc.py | 4 + .../v5/proto/enums/extension_type_pb2.py | 156 + .../v5/proto/enums/extension_type_pb2_grpc.py | 4 + .../enums/external_conversion_source_pb2.py | 206 + .../external_conversion_source_pb2_grpc.py | 4 + .../v5/proto/enums/feed_attribute_type_pb2.py | 161 + .../enums/feed_attribute_type_pb2_grpc.py | 4 + .../feed_item_quality_approval_status_pb2.py | 106 + ...d_item_quality_approval_status_pb2_grpc.py | 4 + ...eed_item_quality_disapproval_reason_pb2.py | 186 + ...tem_quality_disapproval_reason_pb2_grpc.py | 4 + .../v5/proto/enums/feed_item_status_pb2.py | 105 + .../proto/enums/feed_item_status_pb2_grpc.py | 4 + .../enums/feed_item_target_device_pb2.py | 101 + .../enums/feed_item_target_device_pb2_grpc.py | 4 + .../enums/feed_item_target_status_pb2.py | 105 + .../enums/feed_item_target_status_pb2_grpc.py | 4 + .../proto/enums/feed_item_target_type_pb2.py | 110 + .../enums/feed_item_target_type_pb2_grpc.py | 4 + .../enums/feed_item_validation_status_pb2.py | 111 + .../feed_item_validation_status_pb2_grpc.py | 4 + .../v5/proto/enums/feed_link_status_pb2.py | 105 + .../proto/enums/feed_link_status_pb2_grpc.py | 4 + .../enums/feed_mapping_criterion_type_pb2.py | 106 + .../feed_mapping_criterion_type_pb2_grpc.py | 4 + .../v5/proto/enums/feed_mapping_status_pb2.py | 105 + .../enums/feed_mapping_status_pb2_grpc.py | 4 + .../v5/proto/enums/feed_origin_pb2.py | 105 + .../v5/proto/enums/feed_origin_pb2_grpc.py | 4 + .../v5/proto/enums/feed_status_pb2.py | 105 + .../v5/proto/enums/feed_status_pb2_grpc.py | 4 + .../enums/flight_placeholder_field_pb2.py | 182 + .../flight_placeholder_field_pb2_grpc.py | 4 + .../enums/frequency_cap_event_type_pb2.py | 106 + .../frequency_cap_event_type_pb2_grpc.py | 4 + .../v5/proto/enums/frequency_cap_level_pb2.py | 111 + .../enums/frequency_cap_level_pb2_grpc.py | 4 + .../enums/frequency_cap_time_unit_pb2.py | 110 + .../enums/frequency_cap_time_unit_pb2_grpc.py | 4 + .../v5/proto/enums/gender_type_pb2.py | 110 + .../v5/proto/enums/gender_type_pb2_grpc.py | 4 + .../enums/geo_target_constant_status_pb2.py | 105 + .../geo_target_constant_status_pb2_grpc.py | 4 + .../enums/geo_targeting_restriction_pb2.py | 100 + .../geo_targeting_restriction_pb2_grpc.py | 4 + .../v5/proto/enums/geo_targeting_type_pb2.py | 105 + .../enums/geo_targeting_type_pb2_grpc.py | 4 + .../enums/google_ads_field_category_pb2.py | 117 + .../google_ads_field_category_pb2_grpc.py | 4 + .../enums/google_ads_field_data_type_pb2.py | 150 + .../google_ads_field_data_type_pb2_grpc.py | 4 + .../enums/hotel_date_selection_type_pb2.py | 105 + .../hotel_date_selection_type_pb2_grpc.py | 4 + .../enums/hotel_placeholder_field_pb2.py | 197 + .../enums/hotel_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/hotel_price_bucket_pb2.py | 106 + .../enums/hotel_price_bucket_pb2_grpc.py | 4 + .../v5/proto/enums/hotel_rate_type_pb2.py | 115 + .../proto/enums/hotel_rate_type_pb2_grpc.py | 4 + .../v5/proto/enums/income_range_type_pb2.py | 130 + .../proto/enums/income_range_type_pb2_grpc.py | 4 + .../proto/enums/interaction_event_type_pb2.py | 115 + .../enums/interaction_event_type_pb2_grpc.py | 4 + .../v5/proto/enums/interaction_type_pb2.py | 100 + .../proto/enums/interaction_type_pb2_grpc.py | 4 + .../v5/proto/enums/invoice_type_pb2.py | 105 + .../v5/proto/enums/invoice_type_pb2_grpc.py | 4 + .../proto/enums/job_placeholder_field_pb2.py | 182 + .../enums/job_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/keyword_match_type_pb2.py | 110 + .../enums/keyword_match_type_pb2_grpc.py | 4 + .../keyword_plan_competition_level_pb2.py | 115 + ...keyword_plan_competition_level_pb2_grpc.py | 4 + .../keyword_plan_forecast_interval_pb2.py | 110 + ...keyword_plan_forecast_interval_pb2_grpc.py | 4 + .../proto/enums/keyword_plan_network_pb2.py | 105 + .../enums/keyword_plan_network_pb2_grpc.py | 4 + .../v5/proto/enums/label_status_pb2.py | 105 + .../v5/proto/enums/label_status_pb2_grpc.py | 4 + .../legacy_app_install_ad_app_store_pb2.py | 121 + ...egacy_app_install_ad_app_store_pb2_grpc.py | 4 + .../v5/proto/enums/linked_account_type_pb2.py | 110 + .../enums/linked_account_type_pb2_grpc.py | 4 + .../v5/proto/enums/listing_group_type_pb2.py | 105 + .../enums/listing_group_type_pb2_grpc.py | 4 + .../enums/local_placeholder_field_pb2.py | 192 + .../enums/local_placeholder_field_pb2_grpc.py | 4 + ...extension_targeting_criterion_field_pb2.py | 125 + ...sion_targeting_criterion_field_pb2_grpc.py | 4 + .../enums/location_group_radius_units_pb2.py | 105 + .../location_group_radius_units_pb2_grpc.py | 4 + .../enums/location_placeholder_field_pb2.py | 135 + .../location_placeholder_field_pb2_grpc.py | 4 + .../proto/enums/location_source_type_pb2.py | 105 + .../enums/location_source_type_pb2_grpc.py | 4 + .../v5/proto/enums/manager_link_status_pb2.py | 121 + .../enums/manager_link_status_pb2_grpc.py | 4 + .../matching_function_context_type_pb2.py | 105 + ...matching_function_context_type_pb2_grpc.py | 4 + .../enums/matching_function_operator_pb2.py | 120 + .../matching_function_operator_pb2_grpc.py | 4 + .../v5/proto/enums/media_type_pb2.py | 125 + .../v5/proto/enums/media_type_pb2_grpc.py | 4 + .../enums/merchant_center_link_status_pb2.py | 106 + .../merchant_center_link_status_pb2_grpc.py | 4 + .../enums/message_placeholder_field_pb2.py | 120 + .../message_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/mime_type_pb2.py | 155 + .../v5/proto/enums/mime_type_pb2_grpc.py | 4 + .../v5/proto/enums/minute_of_hour_pb2.py | 115 + .../v5/proto/enums/minute_of_hour_pb2_grpc.py | 4 + .../v5/proto/enums/mobile_app_vendor_pb2.py | 105 + .../proto/enums/mobile_app_vendor_pb2_grpc.py | 4 + .../v5/proto/enums/mobile_device_type_pb2.py | 105 + .../enums/mobile_device_type_pb2_grpc.py | 4 + .../v5/proto/enums/month_of_year_pb2.py | 155 + .../v5/proto/enums/month_of_year_pb2_grpc.py | 4 + .../enums/negative_geo_target_type_pb2.py | 105 + .../negative_geo_target_type_pb2_grpc.py | 4 + ...ffline_user_data_job_failure_reason_pb2.py | 106 + ...e_user_data_job_failure_reason_pb2_grpc.py | 4 + .../enums/offline_user_data_job_status_pb2.py | 115 + .../offline_user_data_job_status_pb2_grpc.py | 4 + .../enums/offline_user_data_job_type_pb2.py | 110 + .../offline_user_data_job_type_pb2_grpc.py | 4 + ...rating_system_version_operator_type_pb2.py | 105 + ...g_system_version_operator_type_pb2_grpc.py | 4 + .../proto/enums/optimization_goal_type_pb2.py | 105 + .../enums/optimization_goal_type_pb2_grpc.py | 4 + .../page_one_promoted_strategy_goal_pb2.py | 33 + ...age_one_promoted_strategy_goal_pb2_grpc.py | 4 + .../proto/enums/parental_status_type_pb2.py | 111 + .../enums/parental_status_type_pb2_grpc.py | 4 + .../v5/proto/enums/payment_mode_pb2.py | 115 + .../v5/proto/enums/payment_mode_pb2_grpc.py | 4 + .../v5/proto/enums/placeholder_type_pb2.py | 191 + .../proto/enums/placeholder_type_pb2_grpc.py | 4 + .../v5/proto/enums/placement_type_pb2.py | 120 + .../v5/proto/enums/placement_type_pb2_grpc.py | 4 + .../proto/enums/policy_approval_status_pb2.py | 115 + .../enums/policy_approval_status_pb2_grpc.py | 4 + .../proto/enums/policy_review_status_pb2.py | 115 + .../enums/policy_review_status_pb2_grpc.py | 4 + .../enums/policy_topic_entry_type_pb2.py | 125 + .../enums/policy_topic_entry_type_pb2_grpc.py | 4 + ...dence_destination_mismatch_url_type_pb2.py | 121 + ..._destination_mismatch_url_type_pb2_grpc.py | 4 + ...ence_destination_not_working_device_pb2.py | 111 + ...destination_not_working_device_pb2_grpc.py | 4 + ...tination_not_working_dns_error_type_pb2.py | 106 + ...ion_not_working_dns_error_type_pb2_grpc.py | 4 + .../enums/positive_geo_target_type_pb2.py | 110 + .../positive_geo_target_type_pb2_grpc.py | 4 + .../proto/enums/preferred_content_type_pb2.py | 100 + .../enums/preferred_content_type_pb2_grpc.py | 4 + .../price_extension_price_qualifier_pb2.py | 110 + ...rice_extension_price_qualifier_pb2_grpc.py | 4 + .../enums/price_extension_price_unit_pb2.py | 125 + .../price_extension_price_unit_pb2_grpc.py | 4 + .../proto/enums/price_extension_type_pb2.py | 140 + .../enums/price_extension_type_pb2_grpc.py | 4 + .../enums/price_placeholder_field_pb2.py | 360 + .../enums/price_placeholder_field_pb2_grpc.py | 4 + .../product_bidding_category_level_pb2.py | 120 + ...product_bidding_category_level_pb2_grpc.py | 4 + .../product_bidding_category_status_pb2.py | 105 + ...roduct_bidding_category_status_pb2_grpc.py | 4 + .../enums/product_channel_exclusivity_pb2.py | 105 + .../product_channel_exclusivity_pb2_grpc.py | 4 + .../v5/proto/enums/product_channel_pb2.py | 105 + .../proto/enums/product_channel_pb2_grpc.py | 4 + .../v5/proto/enums/product_condition_pb2.py | 110 + .../proto/enums/product_condition_pb2_grpc.py | 4 + .../product_custom_attribute_index_pb2.py | 121 + ...product_custom_attribute_index_pb2_grpc.py | 4 + .../v5/proto/enums/product_type_level_pb2.py | 120 + .../enums/product_type_level_pb2_grpc.py | 4 + ...omotion_extension_discount_modifier_pb2.py | 101 + ...on_extension_discount_modifier_pb2_grpc.py | 4 + .../enums/promotion_extension_occasion_pb2.py | 282 + .../promotion_extension_occasion_pb2_grpc.py | 4 + .../enums/promotion_placeholder_field_pb2.py | 165 + .../promotion_placeholder_field_pb2_grpc.py | 4 + .../proto/enums/proximity_radius_units_pb2.py | 105 + .../enums/proximity_radius_units_pb2_grpc.py | 4 + .../proto/enums/quality_score_bucket_pb2.py | 110 + .../enums/quality_score_bucket_pb2_grpc.py | 4 + .../proto/enums/reach_plan_ad_length_pb2.py | 110 + .../enums/reach_plan_ad_length_pb2_grpc.py | 4 + .../proto/enums/reach_plan_age_range_pb2.py | 225 + .../enums/reach_plan_age_range_pb2_grpc.py | 4 + .../v5/proto/enums/reach_plan_network_pb2.py | 110 + .../enums/reach_plan_network_pb2_grpc.py | 4 + .../real_estate_placeholder_field_pb2.py | 187 + .../real_estate_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/recommendation_type_pb2.py | 170 + .../enums/recommendation_type_pb2_grpc.py | 4 + .../proto/enums/response_content_type_pb2.py | 100 + .../enums/response_content_type_pb2_grpc.py | 4 + .../search_engine_results_page_type_pb2.py | 110 + ...earch_engine_results_page_type_pb2_grpc.py | 4 + .../proto/enums/search_term_match_type_pb2.py | 121 + .../enums/search_term_match_type_pb2_grpc.py | 4 + .../enums/search_term_targeting_status_pb2.py | 116 + .../search_term_targeting_status_pb2_grpc.py | 4 + .../enums/served_asset_field_type_pb2.py | 120 + .../enums/served_asset_field_type_pb2_grpc.py | 4 + .../v5/proto/enums/shared_set_status_pb2.py | 105 + .../proto/enums/shared_set_status_pb2_grpc.py | 4 + .../v5/proto/enums/shared_set_type_pb2.py | 105 + .../proto/enums/shared_set_type_pb2_grpc.py | 4 + .../simulation_modification_method_pb2.py | 106 + ...simulation_modification_method_pb2_grpc.py | 4 + .../v5/proto/enums/simulation_type_pb2.py | 125 + .../proto/enums/simulation_type_pb2_grpc.py | 4 + .../enums/sitelink_placeholder_field_pb2.py | 130 + .../sitelink_placeholder_field_pb2_grpc.py | 4 + .../ads/google_ads/v5/proto/enums/slot_pb2.py | 130 + .../v5/proto/enums/slot_pb2_grpc.py | 4 + .../v5/proto/enums/spending_limit_type_pb2.py | 100 + .../enums/spending_limit_type_pb2_grpc.py | 4 + ...tructured_snippet_placeholder_field_pb2.py | 105 + ...ured_snippet_placeholder_field_pb2_grpc.py | 4 + .../v5/proto/enums/summary_row_setting_pb2.py | 110 + .../enums/summary_row_setting_pb2_grpc.py | 4 + .../enums/system_managed_entity_source_pb2.py | 100 + .../system_managed_entity_source_pb2_grpc.py | 4 + ...rget_cpa_opt_in_recommendation_goal_pb2.py | 115 + ...cpa_opt_in_recommendation_goal_pb2_grpc.py | 4 + .../target_impression_share_location_pb2.py | 112 + ...rget_impression_share_location_pb2_grpc.py | 4 + .../v5/proto/enums/targeting_dimension_pb2.py | 135 + .../enums/targeting_dimension_pb2_grpc.py | 4 + .../v5/proto/enums/time_type_pb2.py | 105 + .../v5/proto/enums/time_type_pb2_grpc.py | 4 + .../enums/tracking_code_page_format_pb2.py | 106 + .../tracking_code_page_format_pb2_grpc.py | 4 + .../v5/proto/enums/tracking_code_type_pb2.py | 116 + .../enums/tracking_code_type_pb2_grpc.py | 4 + .../enums/travel_placeholder_field_pb2.py | 197 + .../travel_placeholder_field_pb2_grpc.py | 4 + .../enums/user_interest_taxonomy_type_pb2.py | 120 + .../user_interest_taxonomy_type_pb2_grpc.py | 4 + .../enums/user_list_access_status_pb2.py | 105 + .../enums/user_list_access_status_pb2_grpc.py | 4 + .../enums/user_list_closing_reason_pb2.py | 101 + .../user_list_closing_reason_pb2_grpc.py | 4 + .../user_list_combined_rule_operator_pb2.py | 105 + ...er_list_combined_rule_operator_pb2_grpc.py | 4 + .../user_list_crm_data_source_type_pb2.py | 110 + ...user_list_crm_data_source_type_pb2_grpc.py | 4 + .../user_list_date_rule_item_operator_pb2.py | 115 + ...r_list_date_rule_item_operator_pb2_grpc.py | 4 + .../user_list_logical_rule_operator_pb2.py | 110 + ...ser_list_logical_rule_operator_pb2_grpc.py | 4 + .../enums/user_list_membership_status_pb2.py | 107 + .../user_list_membership_status_pb2_grpc.py | 4 + ...user_list_number_rule_item_operator_pb2.py | 125 + ...list_number_rule_item_operator_pb2_grpc.py | 4 + .../user_list_prepopulation_status_pb2.py | 110 + ...user_list_prepopulation_status_pb2_grpc.py | 4 + .../v5/proto/enums/user_list_rule_type_pb2.py | 105 + .../enums/user_list_rule_type_pb2_grpc.py | 4 + .../proto/enums/user_list_size_range_pb2.py | 175 + .../enums/user_list_size_range_pb2_grpc.py | 4 + ...user_list_string_rule_item_operator_pb2.py | 135 + ...list_string_rule_item_operator_pb2_grpc.py | 4 + .../v5/proto/enums/user_list_type_pb2.py | 125 + .../v5/proto/enums/user_list_type_pb2_grpc.py | 4 + .../vanity_pharma_display_url_mode_pb2.py | 105 + ...vanity_pharma_display_url_mode_pb2_grpc.py | 4 + .../v5/proto/enums/vanity_pharma_text_pb2.py | 157 + .../enums/vanity_pharma_text_pb2_grpc.py | 4 + .../enums/webpage_condition_operand_pb2.py | 121 + .../webpage_condition_operand_pb2_grpc.py | 4 + .../enums/webpage_condition_operator_pb2.py | 106 + .../webpage_condition_operator_pb2_grpc.py | 4 + .../google_ads/v5/proto/errors/__init__.py | 0 .../errors/access_invitation_error_pb2.py | 105 + .../access_invitation_error_pb2_grpc.py | 4 + .../account_budget_proposal_error_pb2.py | 215 + .../account_budget_proposal_error_pb2_grpc.py | 4 + .../v5/proto/errors/account_link_error_pb2.py | 100 + .../errors/account_link_error_pb2_grpc.py | 4 + .../proto/errors/ad_customizer_error_pb2.py | 120 + .../errors/ad_customizer_error_pb2_grpc.py | 4 + .../v5/proto/errors/ad_error_pb2.py | 815 + .../v5/proto/errors/ad_error_pb2_grpc.py | 4 + .../v5/proto/errors/ad_group_ad_error_pb2.py | 145 + .../errors/ad_group_ad_error_pb2_grpc.py | 4 + .../errors/ad_group_bid_modifier_error_pb2.py | 105 + .../ad_group_bid_modifier_error_pb2_grpc.py | 4 + .../errors/ad_group_criterion_error_pb2.py | 235 + .../ad_group_criterion_error_pb2_grpc.py | 4 + .../v5/proto/errors/ad_group_error_pb2.py | 160 + .../proto/errors/ad_group_error_pb2_grpc.py | 4 + .../proto/errors/ad_group_feed_error_pb2.py | 130 + .../errors/ad_group_feed_error_pb2_grpc.py | 4 + .../v5/proto/errors/ad_parameter_error_pb2.py | 105 + .../errors/ad_parameter_error_pb2_grpc.py | 4 + .../v5/proto/errors/ad_sharing_error_pb2.py | 110 + .../proto/errors/ad_sharing_error_pb2_grpc.py | 4 + .../v5/proto/errors/adx_error_pb2.py | 100 + .../v5/proto/errors/adx_error_pb2_grpc.py | 4 + .../v5/proto/errors/asset_error_pb2.py | 120 + .../v5/proto/errors/asset_error_pb2_grpc.py | 4 + .../v5/proto/errors/asset_link_error_pb2.py | 115 + .../proto/errors/asset_link_error_pb2_grpc.py | 4 + .../proto/errors/authentication_error_pb2.py | 185 + .../errors/authentication_error_pb2_grpc.py | 4 + .../proto/errors/authorization_error_pb2.py | 155 + .../errors/authorization_error_pb2_grpc.py | 4 + .../v5/proto/errors/batch_job_error_pb2.py | 125 + .../proto/errors/batch_job_error_pb2_grpc.py | 4 + .../v5/proto/errors/bidding_error_pb2.py | 215 + .../v5/proto/errors/bidding_error_pb2_grpc.py | 4 + .../errors/bidding_strategy_error_pb2.py | 120 + .../errors/bidding_strategy_error_pb2_grpc.py | 4 + .../proto/errors/billing_setup_error_pb2.py | 180 + .../errors/billing_setup_error_pb2_grpc.py | 4 + .../proto/errors/campaign_budget_error_pb2.py | 175 + .../errors/campaign_budget_error_pb2_grpc.py | 4 + .../errors/campaign_criterion_error_pb2.py | 150 + .../campaign_criterion_error_pb2_grpc.py | 4 + .../proto/errors/campaign_draft_error_pb2.py | 145 + .../errors/campaign_draft_error_pb2_grpc.py | 4 + .../v5/proto/errors/campaign_error_pb2.py | 295 + .../proto/errors/campaign_error_pb2_grpc.py | 4 + .../errors/campaign_experiment_error_pb2.py | 145 + .../campaign_experiment_error_pb2_grpc.py | 4 + .../proto/errors/campaign_feed_error_pb2.py | 130 + .../errors/campaign_feed_error_pb2_grpc.py | 4 + .../errors/campaign_shared_set_error_pb2.py | 100 + .../campaign_shared_set_error_pb2_grpc.py | 4 + .../proto/errors/change_status_error_pb2.py | 100 + .../errors/change_status_error_pb2_grpc.py | 4 + .../proto/errors/collection_size_error_pb2.py | 105 + .../errors/collection_size_error_pb2_grpc.py | 4 + .../v5/proto/errors/context_error_pb2.py | 105 + .../v5/proto/errors/context_error_pb2_grpc.py | 4 + .../errors/conversion_action_error_pb2.py | 145 + .../conversion_action_error_pb2_grpc.py | 4 + .../conversion_adjustment_upload_error_pb2.py | 151 + ...ersion_adjustment_upload_error_pb2_grpc.py | 4 + .../errors/conversion_upload_error_pb2.py | 200 + .../conversion_upload_error_pb2_grpc.py | 4 + .../v5/proto/errors/country_code_error_pb2.py | 100 + .../errors/country_code_error_pb2_grpc.py | 4 + .../v5/proto/errors/criterion_error_pb2.py | 650 + .../proto/errors/criterion_error_pb2_grpc.py | 4 + .../proto/errors/currency_code_error_pb2.py | 100 + .../errors/currency_code_error_pb2_grpc.py | 4 + .../proto/errors/custom_interest_error_pb2.py | 130 + .../errors/custom_interest_error_pb2_grpc.py | 4 + .../errors/customer_client_link_error_pb2.py | 135 + .../customer_client_link_error_pb2_grpc.py | 4 + .../v5/proto/errors/customer_error_pb2.py | 105 + .../proto/errors/customer_error_pb2_grpc.py | 4 + .../proto/errors/customer_feed_error_pb2.py | 130 + .../errors/customer_feed_error_pb2_grpc.py | 4 + .../errors/customer_manager_link_error_pb2.py | 140 + .../customer_manager_link_error_pb2_grpc.py | 4 + .../v5/proto/errors/database_error_pb2.py | 110 + .../proto/errors/database_error_pb2_grpc.py | 4 + .../v5/proto/errors/date_error_pb2.py | 145 + .../v5/proto/errors/date_error_pb2_grpc.py | 4 + .../v5/proto/errors/date_range_error_pb2.py | 120 + .../proto/errors/date_range_error_pb2_grpc.py | 4 + .../v5/proto/errors/distinct_error_pb2.py | 105 + .../proto/errors/distinct_error_pb2_grpc.py | 4 + .../v5/proto/errors/enum_error_pb2.py | 100 + .../v5/proto/errors/enum_error_pb2_grpc.py | 4 + .../google_ads/v5/proto/errors/errors_pb2.py | 2224 +++ .../v5/proto/errors/errors_pb2_grpc.py | 4 + .../errors/extension_feed_item_error_pb2.py | 320 + .../extension_feed_item_error_pb2_grpc.py | 4 + .../errors/extension_setting_error_pb2.py | 420 + .../extension_setting_error_pb2_grpc.py | 4 + .../feed_attribute_reference_error_pb2.py | 111 + ...feed_attribute_reference_error_pb2_grpc.py | 4 + .../v5/proto/errors/feed_error_pb2.py | 205 + .../v5/proto/errors/feed_error_pb2_grpc.py | 4 + .../v5/proto/errors/feed_item_error_pb2.py | 140 + .../proto/errors/feed_item_error_pb2_grpc.py | 4 + .../errors/feed_item_target_error_pb2.py | 135 + .../errors/feed_item_target_error_pb2_grpc.py | 4 + .../errors/feed_item_validation_error_pb2.py | 581 + .../feed_item_validation_error_pb2_grpc.py | 4 + .../v5/proto/errors/feed_mapping_error_pb2.py | 180 + .../errors/feed_mapping_error_pb2_grpc.py | 4 + .../v5/proto/errors/field_error_pb2.py | 130 + .../v5/proto/errors/field_error_pb2_grpc.py | 4 + .../v5/proto/errors/field_mask_error_pb2.py | 115 + .../proto/errors/field_mask_error_pb2_grpc.py | 4 + .../v5/proto/errors/function_error_pb2.py | 175 + .../proto/errors/function_error_pb2_grpc.py | 4 + .../errors/function_parsing_error_pb2.py | 150 + .../errors/function_parsing_error_pb2_grpc.py | 4 + ...eo_target_constant_suggestion_error_pb2.py | 116 + ...rget_constant_suggestion_error_pb2_grpc.py | 4 + .../v5/proto/errors/header_error_pb2.py | 105 + .../v5/proto/errors/header_error_pb2_grpc.py | 4 + .../v5/proto/errors/id_error_pb2.py | 100 + .../v5/proto/errors/id_error_pb2_grpc.py | 4 + .../v5/proto/errors/image_error_pb2.py | 285 + .../v5/proto/errors/image_error_pb2_grpc.py | 4 + .../v5/proto/errors/internal_error_pb2.py | 115 + .../proto/errors/internal_error_pb2_grpc.py | 4 + .../v5/proto/errors/invoice_error_pb2.py | 105 + .../v5/proto/errors/invoice_error_pb2_grpc.py | 4 + .../errors/keyword_plan_ad_group_error_pb2.py | 106 + .../keyword_plan_ad_group_error_pb2_grpc.py | 4 + ...keyword_plan_ad_group_keyword_error_pb2.py | 131 + ...rd_plan_ad_group_keyword_error_pb2_grpc.py | 4 + .../errors/keyword_plan_campaign_error_pb2.py | 126 + .../keyword_plan_campaign_error_pb2_grpc.py | 4 + ...keyword_plan_campaign_keyword_error_pb2.py | 101 + ...rd_plan_campaign_keyword_error_pb2_grpc.py | 4 + .../v5/proto/errors/keyword_plan_error_pb2.py | 167 + .../errors/keyword_plan_error_pb2_grpc.py | 4 + .../errors/keyword_plan_idea_error_pb2.py | 106 + .../keyword_plan_idea_error_pb2_grpc.py | 4 + .../v5/proto/errors/label_error_pb2.py | 140 + .../v5/proto/errors/label_error_pb2_grpc.py | 4 + .../proto/errors/language_code_error_pb2.py | 105 + .../errors/language_code_error_pb2_grpc.py | 4 + .../proto/errors/list_operation_error_pb2.py | 105 + .../errors/list_operation_error_pb2_grpc.py | 4 + .../v5/proto/errors/manager_link_error_pb2.py | 180 + .../errors/manager_link_error_pb2_grpc.py | 4 + .../v5/proto/errors/media_bundle_error_pb2.py | 205 + .../errors/media_bundle_error_pb2_grpc.py | 4 + .../v5/proto/errors/media_file_error_pb2.py | 210 + .../proto/errors/media_file_error_pb2_grpc.py | 4 + .../v5/proto/errors/media_upload_error_pb2.py | 255 + .../errors/media_upload_error_pb2_grpc.py | 4 + .../v5/proto/errors/multiplier_error_pb2.py | 155 + .../proto/errors/multiplier_error_pb2_grpc.py | 4 + .../v5/proto/errors/mutate_error_pb2.py | 135 + .../v5/proto/errors/mutate_error_pb2_grpc.py | 4 + .../errors/new_resource_creation_error_pb2.py | 110 + .../new_resource_creation_error_pb2_grpc.py | 4 + .../proto/errors/not_allowlisted_error_pb2.py | 100 + .../errors/not_allowlisted_error_pb2_grpc.py | 4 + .../v5/proto/errors/not_empty_error_pb2.py | 100 + .../proto/errors/not_empty_error_pb2_grpc.py | 4 + .../v5/proto/errors/null_error_pb2.py | 100 + .../v5/proto/errors/null_error_pb2_grpc.py | 4 + .../errors/offline_user_data_job_error_pb2.py | 230 + .../offline_user_data_job_error_pb2_grpc.py | 4 + .../operation_access_denied_error_pb2.py | 145 + .../operation_access_denied_error_pb2_grpc.py | 4 + .../v5/proto/errors/operator_error_pb2.py | 100 + .../proto/errors/operator_error_pb2_grpc.py | 4 + .../proto/errors/partial_failure_error_pb2.py | 100 + .../errors/partial_failure_error_pb2_grpc.py | 4 + .../errors/payments_account_error_pb2.py | 101 + .../errors/payments_account_error_pb2_grpc.py | 4 + .../proto/errors/policy_finding_error_pb2.py | 105 + .../errors/policy_finding_error_pb2_grpc.py | 4 + .../policy_validation_parameter_error_pb2.py | 111 + ...icy_validation_parameter_error_pb2_grpc.py | 4 + .../errors/policy_violation_error_pb2.py | 100 + .../errors/policy_violation_error_pb2_grpc.py | 4 + .../v5/proto/errors/query_error_pb2.py | 360 + .../v5/proto/errors/query_error_pb2_grpc.py | 4 + .../v5/proto/errors/quota_error_pb2.py | 110 + .../v5/proto/errors/quota_error_pb2_grpc.py | 4 + .../v5/proto/errors/range_error_pb2.py | 105 + .../v5/proto/errors/range_error_pb2_grpc.py | 4 + .../v5/proto/errors/reach_plan_error_pb2.py | 96 + .../proto/errors/reach_plan_error_pb2_grpc.py | 4 + .../proto/errors/recommendation_error_pb2.py | 166 + .../errors/recommendation_error_pb2_grpc.py | 4 + .../v5/proto/errors/region_code_error_pb2.py | 100 + .../errors/region_code_error_pb2_grpc.py | 4 + .../v5/proto/errors/request_error_pb2.py | 205 + .../v5/proto/errors/request_error_pb2_grpc.py | 4 + .../resource_access_denied_error_pb2.py | 100 + .../resource_access_denied_error_pb2_grpc.py | 4 + ...resource_count_limit_exceeded_error_pb2.py | 141 + ...rce_count_limit_exceeded_error_pb2_grpc.py | 4 + .../v5/proto/errors/setting_error_pb2.py | 150 + .../v5/proto/errors/setting_error_pb2_grpc.py | 4 + .../errors/shared_criterion_error_pb2.py | 100 + .../errors/shared_criterion_error_pb2_grpc.py | 4 + .../v5/proto/errors/shared_set_error_pb2.py | 115 + .../proto/errors/shared_set_error_pb2_grpc.py | 4 + .../v5/proto/errors/size_limit_error_pb2.py | 105 + .../proto/errors/size_limit_error_pb2_grpc.py | 4 + .../proto/errors/string_format_error_pb2.py | 105 + .../errors/string_format_error_pb2_grpc.py | 4 + .../proto/errors/string_length_error_pb2.py | 110 + .../errors/string_length_error_pb2_grpc.py | 4 + ...hird_party_app_analytics_link_error_pb2.py | 116 + ...party_app_analytics_link_error_pb2_grpc.py | 4 + .../v5/proto/errors/time_zone_error_pb2.py | 100 + .../proto/errors/time_zone_error_pb2_grpc.py | 4 + .../v5/proto/errors/url_field_error_pb2.py | 355 + .../proto/errors/url_field_error_pb2_grpc.py | 4 + .../v5/proto/errors/user_data_error_pb2.py | 110 + .../proto/errors/user_data_error_pb2_grpc.py | 4 + .../v5/proto/errors/user_list_error_pb2.py | 225 + .../proto/errors/user_list_error_pb2_grpc.py | 4 + .../youtube_video_registration_error_pb2.py | 110 + ...utube_video_registration_error_pb2_grpc.py | 4 + .../google_ads/v5/proto/resources/__init__.py | 0 .../v5/proto/resources/account_budget_pb2.py | 721 + .../resources/account_budget_pb2_grpc.py | 4 + .../resources/account_budget_proposal_pb2.py | 415 + .../account_budget_proposal_pb2_grpc.py | 4 + .../v5/proto/resources/account_link_pb2.py | 377 + .../proto/resources/account_link_pb2_grpc.py | 4 + .../resources/ad_group_ad_asset_view_pb2.py | 250 + .../ad_group_ad_asset_view_pb2_grpc.py | 4 + .../proto/resources/ad_group_ad_label_pb2.py | 109 + .../resources/ad_group_ad_label_pb2_grpc.py | 4 + .../v5/proto/resources/ad_group_ad_pb2.py | 226 + .../proto/resources/ad_group_ad_pb2_grpc.py | 4 + .../resources/ad_group_audience_view_pb2.py | 90 + .../ad_group_audience_view_pb2_grpc.py | 4 + .../resources/ad_group_bid_modifier_pb2.py | 273 + .../ad_group_bid_modifier_pb2_grpc.py | 4 + .../resources/ad_group_criterion_label_pb2.py | 111 + .../ad_group_criterion_label_pb2_grpc.py | 4 + .../proto/resources/ad_group_criterion_pb2.py | 1002 ++ .../resources/ad_group_criterion_pb2_grpc.py | 4 + .../ad_group_criterion_simulation_pb2.py | 228 + .../ad_group_criterion_simulation_pb2_grpc.py | 4 + .../ad_group_extension_setting_pb2.py | 139 + .../ad_group_extension_setting_pb2_grpc.py | 4 + .../v5/proto/resources/ad_group_feed_pb2.py | 147 + .../proto/resources/ad_group_feed_pb2_grpc.py | 4 + .../v5/proto/resources/ad_group_label_pb2.py | 109 + .../resources/ad_group_label_pb2_grpc.py | 4 + .../v5/proto/resources/ad_group_pb2.py | 485 + .../v5/proto/resources/ad_group_pb2_grpc.py | 4 + .../resources/ad_group_simulation_pb2.py | 241 + .../resources/ad_group_simulation_pb2_grpc.py | 4 + .../v5/proto/resources/ad_parameter_pb2.py | 156 + .../proto/resources/ad_parameter_pb2_grpc.py | 4 + .../google_ads/v5/proto/resources/ad_pb2.py | 576 + .../v5/proto/resources/ad_pb2_grpc.py | 4 + .../proto/resources/ad_schedule_view_pb2.py | 87 + .../resources/ad_schedule_view_pb2_grpc.py | 4 + .../v5/proto/resources/age_range_view_pb2.py | 86 + .../resources/age_range_view_pb2_grpc.py | 4 + .../v5/proto/resources/asset_pb2.py | 211 + .../v5/proto/resources/asset_pb2_grpc.py | 4 + .../v5/proto/resources/batch_job_pb2.py | 271 + .../v5/proto/resources/batch_job_pb2_grpc.py | 4 + .../proto/resources/bidding_strategy_pb2.py | 292 + .../resources/bidding_strategy_pb2_grpc.py | 4 + .../v5/proto/resources/billing_setup_pb2.py | 328 + .../proto/resources/billing_setup_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_asset_pb2.py | 149 + .../resources/campaign_asset_pb2_grpc.py | 4 + .../resources/campaign_audience_view_pb2.py | 91 + .../campaign_audience_view_pb2_grpc.py | 4 + .../resources/campaign_bid_modifier_pb2.py | 165 + .../campaign_bid_modifier_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_budget_pb2.py | 384 + .../resources/campaign_budget_pb2_grpc.py | 4 + .../proto/resources/campaign_criterion_pb2.py | 571 + .../resources/campaign_criterion_pb2_grpc.py | 4 + .../campaign_criterion_simulation_pb2.py | 214 + .../campaign_criterion_simulation_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_draft_pb2.py | 175 + .../resources/campaign_draft_pb2_grpc.py | 4 + .../resources/campaign_experiment_pb2.py | 231 + .../resources/campaign_experiment_pb2_grpc.py | 4 + .../campaign_extension_setting_pb2.py | 139 + .../campaign_extension_setting_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_feed_pb2.py | 147 + .../proto/resources/campaign_feed_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_label_pb2.py | 109 + .../resources/campaign_label_pb2_grpc.py | 4 + .../v5/proto/resources/campaign_pb2.py | 1544 ++ .../v5/proto/resources/campaign_pb2_grpc.py | 4 + .../resources/campaign_shared_set_pb2.py | 144 + .../resources/campaign_shared_set_pb2_grpc.py | 4 + .../proto/resources/carrier_constant_pb2.py | 141 + .../resources/carrier_constant_pb2_grpc.py | 4 + .../v5/proto/resources/change_status_pb2.py | 254 + .../proto/resources/change_status_pb2_grpc.py | 4 + .../v5/proto/resources/click_view_pb2.py | 209 + .../v5/proto/resources/click_view_pb2_grpc.py | 4 + .../proto/resources/conversion_action_pb2.py | 639 + .../resources/conversion_action_pb2_grpc.py | 4 + .../proto/resources/currency_constant_pb2.py | 160 + .../resources/currency_constant_pb2_grpc.py | 4 + .../v5/proto/resources/custom_interest_pb2.py | 220 + .../resources/custom_interest_pb2_grpc.py | 4 + .../resources/customer_client_link_pb2.py | 132 + .../customer_client_link_pb2_grpc.py | 4 + .../v5/proto/resources/customer_client_pb2.py | 196 + .../resources/customer_client_pb2_grpc.py | 4 + .../customer_extension_setting_pb2.py | 125 + .../customer_extension_setting_pb2_grpc.py | 4 + .../v5/proto/resources/customer_feed_pb2.py | 136 + .../proto/resources/customer_feed_pb2_grpc.py | 4 + .../v5/proto/resources/customer_label_pb2.py | 115 + .../resources/customer_label_pb2_grpc.py | 4 + .../resources/customer_manager_link_pb2.py | 121 + .../customer_manager_link_pb2_grpc.py | 4 + .../customer_negative_criterion_pb2.py | 209 + .../customer_negative_criterion_pb2_grpc.py | 4 + .../v5/proto/resources/customer_pb2.py | 568 + .../v5/proto/resources/customer_pb2_grpc.py | 4 + .../resources/detail_placement_view_pb2.py | 151 + .../detail_placement_view_pb2_grpc.py | 4 + .../resources/display_keyword_view_pb2.py | 87 + .../display_keyword_view_pb2_grpc.py | 4 + .../v5/proto/resources/distance_view_pb2.py | 122 + .../proto/resources/distance_view_pb2_grpc.py | 4 + .../v5/proto/resources/domain_category_pb2.py | 248 + .../resources/domain_category_pb2_grpc.py | 4 + ...dynamic_search_ads_search_term_view_pb2.py | 220 + ...ic_search_ads_search_term_view_pb2_grpc.py | 4 + .../expanded_landing_page_view_pb2.py | 100 + .../expanded_landing_page_view_pb2_grpc.py | 4 + .../resources/extension_feed_item_pb2.py | 387 + .../resources/extension_feed_item_pb2_grpc.py | 4 + .../v5/proto/resources/feed_item_pb2.py | 603 + .../v5/proto/resources/feed_item_pb2_grpc.py | 4 + .../proto/resources/feed_item_target_pb2.py | 231 + .../resources/feed_item_target_pb2_grpc.py | 4 + .../v5/proto/resources/feed_mapping_pb2.py | 556 + .../proto/resources/feed_mapping_pb2_grpc.py | 4 + .../google_ads/v5/proto/resources/feed_pb2.py | 618 + .../v5/proto/resources/feed_pb2_grpc.py | 4 + .../resources/feed_placeholder_view_pb2.py | 99 + .../feed_placeholder_view_pb2_grpc.py | 4 + .../v5/proto/resources/gender_view_pb2.py | 86 + .../proto/resources/gender_view_pb2_grpc.py | 4 + .../resources/geo_target_constant_pb2.py | 210 + .../resources/geo_target_constant_pb2_grpc.py | 4 + .../v5/proto/resources/geographic_view_pb2.py | 120 + .../resources/geographic_view_pb2_grpc.py | 4 + .../proto/resources/google_ads_field_pb2.py | 292 + .../resources/google_ads_field_pb2_grpc.py | 4 + .../resources/group_placement_view_pb2.py | 137 + .../group_placement_view_pb2_grpc.py | 4 + .../proto/resources/hotel_group_view_pb2.py | 86 + .../resources/hotel_group_view_pb2_grpc.py | 4 + .../resources/hotel_performance_view_pb2.py | 86 + .../hotel_performance_view_pb2_grpc.py | 4 + .../proto/resources/income_range_view_pb2.py | 86 + .../resources/income_range_view_pb2_grpc.py | 4 + .../v5/proto/resources/invoice_pb2.py | 468 + .../v5/proto/resources/invoice_pb2_grpc.py | 4 + .../keyword_plan_ad_group_keyword_pb2.py | 157 + .../keyword_plan_ad_group_keyword_pb2_grpc.py | 4 + .../resources/keyword_plan_ad_group_pb2.py | 133 + .../keyword_plan_ad_group_pb2_grpc.py | 4 + .../keyword_plan_campaign_keyword_pb2.py | 145 + .../keyword_plan_campaign_keyword_pb2_grpc.py | 4 + .../resources/keyword_plan_campaign_pb2.py | 216 + .../keyword_plan_campaign_pb2_grpc.py | 4 + .../v5/proto/resources/keyword_plan_pb2.py | 197 + .../proto/resources/keyword_plan_pb2_grpc.py | 4 + .../v5/proto/resources/keyword_view_pb2.py | 86 + .../proto/resources/keyword_view_pb2_grpc.py | 4 + .../v5/proto/resources/label_pb2.py | 132 + .../v5/proto/resources/label_pb2_grpc.py | 4 + .../proto/resources/landing_page_view_pb2.py | 100 + .../resources/landing_page_view_pb2_grpc.py | 4 + .../proto/resources/language_constant_pb2.py | 160 + .../resources/language_constant_pb2_grpc.py | 4 + .../v5/proto/resources/location_view_pb2.py | 87 + .../proto/resources/location_view_pb2_grpc.py | 4 + .../resources/managed_placement_view_pb2.py | 87 + .../managed_placement_view_pb2_grpc.py | 4 + .../v5/proto/resources/media_file_pb2.py | 587 + .../v5/proto/resources/media_file_pb2_grpc.py | 4 + .../resources/merchant_center_link_pb2.py | 136 + .../merchant_center_link_pb2_grpc.py | 4 + .../mobile_app_category_constant_pb2.py | 122 + .../mobile_app_category_constant_pb2_grpc.py | 4 + .../resources/mobile_device_constant_pb2.py | 170 + .../mobile_device_constant_pb2_grpc.py | 4 + .../resources/offline_user_data_job_pb2.py | 186 + .../offline_user_data_job_pb2_grpc.py | 4 + .../operating_system_version_constant_pb2.py | 175 + ...rating_system_version_constant_pb2_grpc.py | 4 + .../paid_organic_search_term_view_pb2.py | 101 + .../paid_organic_search_term_view_pb2_grpc.py | 4 + .../resources/parental_status_view_pb2.py | 87 + .../parental_status_view_pb2_grpc.py | 4 + .../proto/resources/payments_account_pb2.py | 160 + .../resources/payments_account_pb2_grpc.py | 4 + .../product_bidding_category_constant_pb2.py | 173 + ...duct_bidding_category_constant_pb2_grpc.py | 4 + .../proto/resources/product_group_view_pb2.py | 86 + .../resources/product_group_view_pb2_grpc.py | 4 + .../v5/proto/resources/recommendation_pb2.py | 1518 ++ .../resources/recommendation_pb2_grpc.py | 4 + .../proto/resources/remarketing_action_pb2.py | 138 + .../resources/remarketing_action_pb2_grpc.py | 4 + .../proto/resources/search_term_view_pb2.py | 124 + .../resources/search_term_view_pb2_grpc.py | 4 + .../proto/resources/shared_criterion_pb2.py | 228 + .../resources/shared_criterion_pb2_grpc.py | 4 + .../v5/proto/resources/shared_set_pb2.py | 188 + .../v5/proto/resources/shared_set_pb2_grpc.py | 4 + .../shopping_performance_view_pb2.py | 91 + .../shopping_performance_view_pb2_grpc.py | 4 + .../third_party_app_analytics_link_pb2.py | 103 + ...third_party_app_analytics_link_pb2_grpc.py | 4 + .../v5/proto/resources/topic_constant_pb2.py | 139 + .../resources/topic_constant_pb2_grpc.py | 4 + .../v5/proto/resources/topic_view_pb2.py | 86 + .../v5/proto/resources/topic_view_pb2_grpc.py | 4 + .../v5/proto/resources/user_interest_pb2.py | 156 + .../proto/resources/user_interest_pb2_grpc.py | 4 + .../v5/proto/resources/user_list_pb2.py | 382 + .../v5/proto/resources/user_list_pb2_grpc.py | 4 + .../proto/resources/user_location_view_pb2.py | 114 + .../resources/user_location_view_pb2_grpc.py | 4 + .../v5/proto/resources/video_pb2.py | 131 + .../v5/proto/resources/video_pb2_grpc.py | 4 + .../google_ads/v5/proto/services/__init__.py | 0 .../account_budget_proposal_service_pb2.py | 384 + ...ccount_budget_proposal_service_pb2_grpc.py | 149 + .../services/account_budget_service_pb2.py | 113 + .../account_budget_service_pb2_grpc.py | 82 + .../services/account_link_service_pb2.py | 478 + .../services/account_link_service_pb2_grpc.py | 142 + .../ad_group_ad_asset_view_service_pb2.py | 114 + ...ad_group_ad_asset_view_service_pb2_grpc.py | 76 + .../services/ad_group_ad_label_service_pb2.py | 390 + .../ad_group_ad_label_service_pb2_grpc.py | 110 + .../proto/services/ad_group_ad_service_pb2.py | 448 + .../services/ad_group_ad_service_pb2_grpc.py | 109 + .../ad_group_audience_view_service_pb2.py | 114 + ...ad_group_audience_view_service_pb2_grpc.py | 76 + .../ad_group_bid_modifier_service_pb2.py | 444 + .../ad_group_bid_modifier_service_pb2_grpc.py | 110 + .../ad_group_criterion_label_service_pb2.py | 393 + ..._group_criterion_label_service_pb2_grpc.py | 110 + .../ad_group_criterion_service_pb2.py | 460 + .../ad_group_criterion_service_pb2_grpc.py | 109 + ..._group_criterion_simulation_service_pb2.py | 114 + ...p_criterion_simulation_service_pb2_grpc.py | 76 + .../ad_group_extension_setting_service_pb2.py | 420 + ...roup_extension_setting_service_pb2_grpc.py | 110 + .../services/ad_group_feed_service_pb2.py | 440 + .../ad_group_feed_service_pb2_grpc.py | 110 + .../services/ad_group_label_service_pb2.py | 389 + .../ad_group_label_service_pb2_grpc.py | 110 + .../v5/proto/services/ad_group_service_pb2.py | 440 + .../services/ad_group_service_pb2_grpc.py | 109 + .../ad_group_simulation_service_pb2.py | 114 + .../ad_group_simulation_service_pb2_grpc.py | 76 + .../services/ad_parameter_service_pb2.py | 415 + .../services/ad_parameter_service_pb2_grpc.py | 110 + .../services/ad_schedule_view_service_pb2.py | 112 + .../ad_schedule_view_service_pb2_grpc.py | 76 + .../v5/proto/services/ad_service_pb2.py | 373 + .../v5/proto/services/ad_service_pb2_grpc.py | 110 + .../services/age_range_view_service_pb2.py | 112 + .../age_range_view_service_pb2_grpc.py | 76 + .../v5/proto/services/asset_service_pb2.py | 365 + .../proto/services/asset_service_pb2_grpc.py | 115 + .../proto/services/batch_job_service_pb2.py | 763 + .../services/batch_job_service_pb2_grpc.py | 214 + .../services/bidding_strategy_service_pb2.py | 416 + .../bidding_strategy_service_pb2_grpc.py | 110 + .../services/billing_setup_service_pb2.py | 354 + .../billing_setup_service_pb2_grpc.py | 133 + .../services/campaign_asset_service_pb2.py | 389 + .../campaign_asset_service_pb2_grpc.py | 109 + .../campaign_audience_view_service_pb2.py | 114 + ...campaign_audience_view_service_pb2_grpc.py | 76 + .../campaign_bid_modifier_service_pb2.py | 419 + .../campaign_bid_modifier_service_pb2_grpc.py | 110 + .../services/campaign_budget_service_pb2.py | 441 + .../campaign_budget_service_pb2_grpc.py | 110 + .../campaign_criterion_service_pb2.py | 442 + .../campaign_criterion_service_pb2_grpc.py | 109 + ...mpaign_criterion_simulation_service_pb2.py | 114 + ...n_criterion_simulation_service_pb2_grpc.py | 76 + .../services/campaign_draft_service_pb2.py | 647 + .../campaign_draft_service_pb2_grpc.py | 187 + .../campaign_experiment_service_pb2.py | 950 ++ .../campaign_experiment_service_pb2_grpc.py | 322 + .../campaign_extension_setting_service_pb2.py | 420 + ...aign_extension_setting_service_pb2_grpc.py | 110 + .../services/campaign_feed_service_pb2.py | 440 + .../campaign_feed_service_pb2_grpc.py | 110 + .../services/campaign_label_service_pb2.py | 390 + .../campaign_label_service_pb2_grpc.py | 110 + .../v5/proto/services/campaign_service_pb2.py | 440 + .../services/campaign_service_pb2_grpc.py | 109 + .../campaign_shared_set_service_pb2.py | 392 + .../campaign_shared_set_service_pb2_grpc.py | 109 + .../services/carrier_constant_service_pb2.py | 112 + .../carrier_constant_service_pb2_grpc.py | 76 + .../services/change_status_service_pb2.py | 112 + .../change_status_service_pb2_grpc.py | 76 + .../proto/services/click_view_service_pb2.py | 112 + .../services/click_view_service_pb2_grpc.py | 76 + .../services/conversion_action_service_pb2.py | 419 + .../conversion_action_service_pb2_grpc.py | 110 + ...onversion_adjustment_upload_service_pb2.py | 635 + ...sion_adjustment_upload_service_pb2_grpc.py | 69 + .../services/conversion_upload_service_pb2.py | 973 ++ .../conversion_upload_service_pb2_grpc.py | 102 + .../services/currency_constant_service_pb2.py | 113 + .../currency_constant_service_pb2_grpc.py | 70 + .../services/custom_interest_service_pb2.py | 375 + .../custom_interest_service_pb2_grpc.py | 109 + .../customer_client_link_service_pb2.py | 368 + .../customer_client_link_service_pb2_grpc.py | 103 + .../services/customer_client_service_pb2.py | 112 + .../customer_client_service_pb2_grpc.py | 76 + .../customer_extension_setting_service_pb2.py | 419 + ...omer_extension_setting_service_pb2_grpc.py | 110 + .../services/customer_feed_service_pb2.py | 440 + .../customer_feed_service_pb2_grpc.py | 110 + .../services/customer_label_service_pb2.py | 390 + .../customer_label_service_pb2_grpc.py | 110 + .../customer_manager_link_service_pb2.py | 492 + .../customer_manager_link_service_pb2_grpc.py | 140 + ...customer_negative_criterion_service_pb2.py | 392 + ...mer_negative_criterion_service_pb2_grpc.py | 109 + .../v5/proto/services/customer_service_pb2.py | 627 + .../services/customer_service_pb2_grpc.py | 176 + .../detail_placement_view_service_pb2.py | 114 + .../detail_placement_view_service_pb2_grpc.py | 76 + .../display_keyword_view_service_pb2.py | 114 + .../display_keyword_view_service_pb2_grpc.py | 76 + .../services/distance_view_service_pb2.py | 112 + .../distance_view_service_pb2_grpc.py | 76 + .../services/domain_category_service_pb2.py | 112 + .../domain_category_service_pb2_grpc.py | 76 + ...search_ads_search_term_view_service_pb2.py | 114 + ...h_ads_search_term_view_service_pb2_grpc.py | 76 + .../expanded_landing_page_view_service_pb2.py | 114 + ...nded_landing_page_view_service_pb2_grpc.py | 76 + .../extension_feed_item_service_pb2.py | 443 + .../extension_feed_item_service_pb2_grpc.py | 110 + .../proto/services/feed_item_service_pb2.py | 440 + .../services/feed_item_service_pb2_grpc.py | 110 + .../services/feed_item_target_service_pb2.py | 354 + .../feed_item_target_service_pb2_grpc.py | 109 + .../services/feed_mapping_service_pb2.py | 389 + .../services/feed_mapping_service_pb2_grpc.py | 110 + .../feed_placeholder_view_service_pb2.py | 114 + .../feed_placeholder_view_service_pb2_grpc.py | 76 + .../v5/proto/services/feed_service_pb2.py | 440 + .../proto/services/feed_service_pb2_grpc.py | 110 + .../proto/services/gender_view_service_pb2.py | 112 + .../services/gender_view_service_pb2_grpc.py | 76 + .../geo_target_constant_service_pb2.py | 492 + .../geo_target_constant_service_pb2_grpc.py | 109 + .../services/geographic_view_service_pb2.py | 112 + .../geographic_view_service_pb2_grpc.py | 76 + .../services/google_ads_field_service_pb2.py | 267 + .../google_ads_field_service_pb2_grpc.py | 109 + .../proto/services/google_ads_service_pb2.py | 3114 ++++ .../services/google_ads_service_pb2_grpc.py | 191 + .../group_placement_view_service_pb2.py | 114 + .../group_placement_view_service_pb2_grpc.py | 76 + .../services/hotel_group_view_service_pb2.py | 112 + .../hotel_group_view_service_pb2_grpc.py | 76 + .../hotel_performance_view_service_pb2.py | 114 + ...hotel_performance_view_service_pb2_grpc.py | 76 + .../services/income_range_view_service_pb2.py | 112 + .../income_range_view_service_pb2_grpc.py | 76 + .../v5/proto/services/invoice_service_pb2.py | 196 + .../services/invoice_service_pb2_grpc.py | 75 + ...yword_plan_ad_group_keyword_service_pb2.py | 419 + ..._plan_ad_group_keyword_service_pb2_grpc.py | 122 + .../keyword_plan_ad_group_service_pb2.py | 421 + .../keyword_plan_ad_group_service_pb2_grpc.py | 110 + ...yword_plan_campaign_keyword_service_pb2.py | 418 + ..._plan_campaign_keyword_service_pb2_grpc.py | 119 + .../keyword_plan_campaign_service_pb2.py | 419 + .../keyword_plan_campaign_service_pb2_grpc.py | 110 + .../services/keyword_plan_idea_service_pb2.py | 580 + .../keyword_plan_idea_service_pb2_grpc.py | 75 + .../services/keyword_plan_service_pb2.py | 1525 ++ .../services/keyword_plan_service_pb2_grpc.py | 253 + .../services/keyword_view_service_pb2.py | 112 + .../services/keyword_view_service_pb2_grpc.py | 76 + .../v5/proto/services/label_service_pb2.py | 437 + .../proto/services/label_service_pb2_grpc.py | 103 + .../services/landing_page_view_service_pb2.py | 112 + .../landing_page_view_service_pb2_grpc.py | 76 + .../services/language_constant_service_pb2.py | 113 + .../language_constant_service_pb2_grpc.py | 76 + .../services/location_view_service_pb2.py | 112 + .../location_view_service_pb2_grpc.py | 76 + .../managed_placement_view_service_pb2.py | 114 + ...managed_placement_view_service_pb2_grpc.py | 76 + .../proto/services/media_file_service_pb2.py | 400 + .../services/media_file_service_pb2_grpc.py | 109 + .../merchant_center_link_service_pb2.py | 475 + .../merchant_center_link_service_pb2_grpc.py | 145 + ...obile_app_category_constant_service_pb2.py | 114 + ..._app_category_constant_service_pb2_grpc.py | 70 + .../mobile_device_constant_service_pb2.py | 113 + ...mobile_device_constant_service_pb2_grpc.py | 76 + .../offline_user_data_job_service_pb2.py | 520 + .../offline_user_data_job_service_pb2_grpc.py | 179 + ...ing_system_version_constant_service_pb2.py | 113 + ...ystem_version_constant_service_pb2_grpc.py | 76 + ...id_organic_search_term_view_service_pb2.py | 114 + ...ganic_search_term_view_service_pb2_grpc.py | 76 + .../parental_status_view_service_pb2.py | 114 + .../parental_status_view_service_pb2_grpc.py | 76 + .../services/payments_account_service_pb2.py | 161 + .../payments_account_service_pb2_grpc.py | 80 + ...t_bidding_category_constant_service_pb2.py | 114 + ...ding_category_constant_service_pb2_grpc.py | 76 + .../product_group_view_service_pb2.py | 114 + .../product_group_view_service_pb2_grpc.py | 76 + .../proto/services/reach_plan_service_pb2.py | 1526 ++ .../services/reach_plan_service_pb2_grpc.py | 189 + .../services/recommendation_service_pb2.py | 1231 ++ .../recommendation_service_pb2_grpc.py | 142 + .../remarketing_action_service_pb2.py | 404 + .../remarketing_action_service_pb2_grpc.py | 109 + .../services/search_term_view_service_pb2.py | 112 + .../search_term_view_service_pb2_grpc.py | 76 + .../services/shared_criterion_service_pb2.py | 390 + .../shared_criterion_service_pb2_grpc.py | 109 + .../proto/services/shared_set_service_pb2.py | 440 + .../services/shared_set_service_pb2_grpc.py | 109 + .../shopping_performance_view_service_pb2.py | 114 + ...pping_performance_view_service_pb2_grpc.py | 76 + ...rd_party_app_analytics_link_service_pb2.py | 209 + ...rty_app_analytics_link_service_pb2_grpc.py | 107 + .../services/topic_constant_service_pb2.py | 112 + .../topic_constant_service_pb2_grpc.py | 76 + .../proto/services/topic_view_service_pb2.py | 112 + .../services/topic_view_service_pb2_grpc.py | 76 + .../proto/services/user_data_service_pb2.py | 276 + .../services/user_data_service_pb2_grpc.py | 78 + .../services/user_interest_service_pb2.py | 112 + .../user_interest_service_pb2_grpc.py | 76 + .../proto/services/user_list_service_pb2.py | 415 + .../services/user_list_service_pb2_grpc.py | 109 + .../user_location_view_service_pb2.py | 114 + .../user_location_view_service_pb2_grpc.py | 76 + .../v5/proto/services/video_service_pb2.py | 112 + .../proto/services/video_service_pb2_grpc.py | 76 + google/ads/google_ads/v5/services/__init__.py | 0 .../account_budget_proposal_service_client.py | 319 + ...t_budget_proposal_service_client_config.py | 36 + .../services/account_budget_service_client.py | 242 + .../account_budget_service_client_config.py | 31 + .../services/account_link_service_client.py | 376 + .../account_link_service_client_config.py | 41 + .../ad_group_ad_asset_view_service_client.py | 238 + ...oup_ad_asset_view_service_client_config.py | 31 + .../ad_group_ad_label_service_client.py | 310 + ...ad_group_ad_label_service_client_config.py | 36 + .../v5/services/ad_group_ad_service_client.py | 313 + .../ad_group_ad_service_client_config.py | 36 + .../ad_group_audience_view_service_client.py | 238 + ...oup_audience_view_service_client_config.py | 31 + .../ad_group_bid_modifier_service_client.py | 314 + ...roup_bid_modifier_service_client_config.py | 36 + ...ad_group_criterion_label_service_client.py | 310 + ...p_criterion_label_service_client_config.py | 36 + .../ad_group_criterion_service_client.py | 313 + ...d_group_criterion_service_client_config.py | 36 + ...oup_criterion_simulation_service_client.py | 238 + ...terion_simulation_service_client_config.py | 31 + ..._group_extension_setting_service_client.py | 312 + ...extension_setting_service_client_config.py | 36 + .../services/ad_group_feed_service_client.py | 314 + .../ad_group_feed_service_client_config.py | 36 + .../services/ad_group_label_service_client.py | 310 + .../ad_group_label_service_client_config.py | 36 + .../v5/services/ad_group_service_client.py | 313 + .../ad_group_service_client_config.py | 36 + .../ad_group_simulation_service_client.py | 238 + ..._group_simulation_service_client_config.py | 31 + .../services/ad_parameter_service_client.py | 310 + .../ad_parameter_service_client_config.py | 36 + .../ad_schedule_view_service_client.py | 238 + .../ad_schedule_view_service_client_config.py | 31 + .../v5/services/ad_service_client.py | 304 + .../v5/services/ad_service_client_config.py | 36 + .../services/age_range_view_service_client.py | 238 + .../age_range_view_service_client_config.py | 31 + .../v5/services/asset_service_client.py | 307 + .../services/asset_service_client_config.py | 36 + .../v5/services/batch_job_service_client.py | 521 + .../batch_job_service_client_config.py | 51 + .../bidding_strategy_service_client.py | 310 + .../bidding_strategy_service_client_config.py | 36 + .../services/billing_setup_service_client.py | 309 + .../billing_setup_service_client_config.py | 36 + .../services/campaign_asset_service_client.py | 309 + .../campaign_asset_service_client_config.py | 36 + .../campaign_audience_view_service_client.py | 238 + ...ign_audience_view_service_client_config.py | 31 + .../campaign_bid_modifier_service_client.py | 310 + ...aign_bid_modifier_service_client_config.py | 36 + .../campaign_budget_service_client.py | 314 + .../campaign_budget_service_client_config.py | 36 + .../campaign_criterion_service_client.py | 313 + ...ampaign_criterion_service_client_config.py | 36 + ...ign_criterion_simulation_service_client.py | 238 + ...terion_simulation_service_client_config.py | 31 + .../services/campaign_draft_service_client.py | 463 + .../campaign_draft_service_client_config.py | 46 + .../campaign_experiment_service_client.py | 665 + ...mpaign_experiment_service_client_config.py | 61 + ...mpaign_extension_setting_service_client.py | 312 + ...extension_setting_service_client_config.py | 36 + .../services/campaign_feed_service_client.py | 314 + .../campaign_feed_service_client_config.py | 36 + .../services/campaign_label_service_client.py | 310 + .../campaign_label_service_client_config.py | 36 + .../v5/services/campaign_service_client.py | 313 + .../campaign_service_client_config.py | 36 + .../campaign_shared_set_service_client.py | 309 + ...mpaign_shared_set_service_client_config.py | 36 + .../carrier_constant_service_client.py | 237 + .../carrier_constant_service_client_config.py | 31 + .../services/change_status_service_client.py | 238 + .../change_status_service_client_config.py | 31 + .../v5/services/click_view_service_client.py | 238 + .../click_view_service_client_config.py | 31 + .../conversion_action_service_client.py | 310 + ...conversion_action_service_client_config.py | 36 + ...ersion_adjustment_upload_service_client.py | 246 + ...adjustment_upload_service_client_config.py | 31 + .../conversion_upload_service_client.py | 320 + ...conversion_upload_service_client_config.py | 36 + .../currency_constant_service_client.py | 237 + ...currency_constant_service_client_config.py | 31 + .../custom_interest_service_client.py | 303 + .../custom_interest_service_client_config.py | 36 + .../customer_client_link_service_client.py | 299 + ...tomer_client_link_service_client_config.py | 36 + .../customer_client_service_client.py | 238 + .../customer_client_service_client_config.py | 31 + ...stomer_extension_setting_service_client.py | 312 + ...extension_setting_service_client_config.py | 36 + .../services/customer_feed_service_client.py | 314 + .../customer_feed_service_client_config.py | 36 + .../services/customer_label_service_client.py | 310 + .../customer_label_service_client_config.py | 36 + .../customer_manager_link_service_client.py | 368 + ...omer_manager_link_service_client_config.py | 41 + ...tomer_negative_criterion_service_client.py | 309 + ...egative_criterion_service_client_config.py | 36 + .../v5/services/customer_service_client.py | 423 + .../customer_service_client_config.py | 46 + .../detail_placement_view_service_client.py | 238 + ...il_placement_view_service_client_config.py | 31 + .../display_keyword_view_service_client.py | 238 + ...play_keyword_view_service_client_config.py | 31 + .../services/distance_view_service_client.py | 238 + .../distance_view_service_client_config.py | 31 + .../domain_category_service_client.py | 238 + .../domain_category_service_client_config.py | 31 + ...rch_ads_search_term_view_service_client.py | 238 + ..._search_term_view_service_client_config.py | 31 + google/ads/google_ads/v5/services/enums.py | 12294 ++++++++++++++++ ...panded_landing_page_view_service_client.py | 238 + ...landing_page_view_service_client_config.py | 31 + .../extension_feed_item_service_client.py | 315 + ...tension_feed_item_service_client_config.py | 36 + .../v5/services/feed_item_service_client.py | 314 + .../feed_item_service_client_config.py | 36 + .../feed_item_target_service_client.py | 299 + .../feed_item_target_service_client_config.py | 36 + .../services/feed_mapping_service_client.py | 310 + .../feed_mapping_service_client_config.py | 36 + .../feed_placeholder_view_service_client.py | 238 + ..._placeholder_view_service_client_config.py | 31 + .../v5/services/feed_service_client.py | 314 + .../v5/services/feed_service_client_config.py | 36 + .../v5/services/gender_view_service_client.py | 238 + .../gender_view_service_client_config.py | 31 + .../geo_target_constant_service_client.py | 318 + ...o_target_constant_service_client_config.py | 36 + .../geographic_view_service_client.py | 238 + .../geographic_view_service_client_config.py | 31 + .../google_ads_field_service_client.py | 301 + .../google_ads_field_service_client_config.py | 36 + .../v5/services/google_ads_service_client.py | 454 + .../google_ads_service_client_config.py | 41 + .../group_placement_view_service_client.py | 238 + ...up_placement_view_service_client_config.py | 31 + .../hotel_group_view_service_client.py | 238 + .../hotel_group_view_service_client_config.py | 31 + .../hotel_performance_view_service_client.py | 237 + ..._performance_view_service_client_config.py | 31 + .../income_range_view_service_client.py | 238 + ...income_range_view_service_client_config.py | 31 + .../v5/services/invoice_service_client.py | 239 + .../services/invoice_service_client_config.py | 31 + ...rd_plan_ad_group_keyword_service_client.py | 318 + ..._ad_group_keyword_service_client_config.py | 36 + .../keyword_plan_ad_group_service_client.py | 310 + ...ord_plan_ad_group_service_client_config.py | 36 + ...rd_plan_campaign_keyword_service_client.py | 316 + ..._campaign_keyword_service_client_config.py | 36 + .../keyword_plan_campaign_service_client.py | 310 + ...ord_plan_campaign_service_client_config.py | 36 + .../keyword_plan_idea_service_client.py | 303 + ...keyword_plan_idea_service_client_config.py | 31 + .../services/keyword_plan_service_client.py | 542 + .../keyword_plan_service_client_config.py | 56 + .../services/keyword_view_service_client.py | 238 + .../keyword_view_service_client_config.py | 31 + .../v5/services/label_service_client.py | 313 + .../services/label_service_client_config.py | 36 + .../landing_page_view_service_client.py | 238 + ...landing_page_view_service_client_config.py | 31 + .../language_constant_service_client.py | 237 + ...language_constant_service_client_config.py | 31 + .../services/location_view_service_client.py | 238 + .../location_view_service_client_config.py | 31 + .../managed_placement_view_service_client.py | 238 + ...ed_placement_view_service_client_config.py | 31 + .../v5/services/media_file_service_client.py | 313 + .../media_file_service_client_config.py | 36 + .../merchant_center_link_service_client.py | 358 + ...chant_center_link_service_client_config.py | 41 + ...le_app_category_constant_service_client.py | 237 + ...category_constant_service_client_config.py | 31 + .../mobile_device_constant_service_client.py | 237 + ...e_device_constant_service_client_config.py | 31 + .../offline_user_data_job_service_client.py | 433 + ...ine_user_data_job_service_client_config.py | 46 + ..._system_version_constant_service_client.py | 237 + ..._version_constant_service_client_config.py | 31 + ...organic_search_term_view_service_client.py | 238 + ..._search_term_view_service_client_config.py | 31 + .../parental_status_view_service_client.py | 238 + ...ental_status_view_service_client_config.py | 31 + .../payments_account_service_client.py | 232 + .../payments_account_service_client_config.py | 31 + ...idding_category_constant_service_client.py | 237 + ...category_constant_service_client_config.py | 31 + .../product_group_view_service_client.py | 238 + ...roduct_group_view_service_client_config.py | 31 + .../v5/services/reach_plan_service_client.py | 474 + .../reach_plan_service_client_config.py | 46 + .../services/recommendation_service_client.py | 376 + .../recommendation_service_client_config.py | 41 + .../remarketing_action_service_client.py | 309 + ...emarketing_action_service_client_config.py | 36 + .../search_term_view_service_client.py | 238 + .../search_term_view_service_client_config.py | 31 + .../shared_criterion_service_client.py | 309 + .../shared_criterion_service_client_config.py | 36 + .../v5/services/shared_set_service_client.py | 313 + .../shared_set_service_client_config.py | 36 + ...hopping_performance_view_service_client.py | 237 + ..._performance_view_service_client_config.py | 31 + ...party_app_analytics_link_service_client.py | 297 + ...pp_analytics_link_service_client_config.py | 36 + .../services/topic_constant_service_client.py | 237 + .../topic_constant_service_client_config.py | 31 + .../v5/services/topic_view_service_client.py | 238 + .../topic_view_service_client_config.py | 31 + .../v5/services/transports/__init__.py | 0 ..._budget_proposal_service_grpc_transport.py | 141 + .../account_budget_service_grpc_transport.py | 127 + .../account_link_service_grpc_transport.py | 156 + ...up_ad_asset_view_service_grpc_transport.py | 127 + ...d_group_ad_label_service_grpc_transport.py | 141 + .../ad_group_ad_service_grpc_transport.py | 140 + ...up_audience_view_service_grpc_transport.py | 127 + ...oup_bid_modifier_service_grpc_transport.py | 141 + ..._criterion_label_service_grpc_transport.py | 141 + ..._group_criterion_service_grpc_transport.py | 140 + ...erion_simulation_service_grpc_transport.py | 127 + ...xtension_setting_service_grpc_transport.py | 141 + .../ad_group_feed_service_grpc_transport.py | 141 + .../ad_group_label_service_grpc_transport.py | 141 + .../ad_group_service_grpc_transport.py | 140 + ...group_simulation_service_grpc_transport.py | 127 + .../ad_parameter_service_grpc_transport.py | 141 + ...ad_schedule_view_service_grpc_transport.py | 127 + .../transports/ad_service_grpc_transport.py | 141 + .../age_range_view_service_grpc_transport.py | 127 + .../asset_service_grpc_transport.py | 140 + .../batch_job_service_grpc_transport.py | 189 + ...bidding_strategy_service_grpc_transport.py | 141 + .../billing_setup_service_grpc_transport.py | 140 + .../campaign_asset_service_grpc_transport.py | 140 + ...gn_audience_view_service_grpc_transport.py | 127 + ...ign_bid_modifier_service_grpc_transport.py | 141 + .../campaign_budget_service_grpc_transport.py | 141 + ...mpaign_criterion_service_grpc_transport.py | 140 + ...erion_simulation_service_grpc_transport.py | 127 + .../campaign_draft_service_grpc_transport.py | 182 + ...paign_experiment_service_grpc_transport.py | 229 + ...xtension_setting_service_grpc_transport.py | 141 + .../campaign_feed_service_grpc_transport.py | 141 + .../campaign_label_service_grpc_transport.py | 141 + .../campaign_service_grpc_transport.py | 140 + ...paign_shared_set_service_grpc_transport.py | 140 + ...carrier_constant_service_grpc_transport.py | 127 + .../change_status_service_grpc_transport.py | 127 + .../click_view_service_grpc_transport.py | 127 + ...onversion_action_service_grpc_transport.py | 141 + ...djustment_upload_service_grpc_transport.py | 127 + ...onversion_upload_service_grpc_transport.py | 140 + ...urrency_constant_service_grpc_transport.py | 127 + .../custom_interest_service_grpc_transport.py | 140 + ...omer_client_link_service_grpc_transport.py | 140 + .../customer_client_service_grpc_transport.py | 127 + ...xtension_setting_service_grpc_transport.py | 141 + .../customer_feed_service_grpc_transport.py | 141 + .../customer_label_service_grpc_transport.py | 141 + ...mer_manager_link_service_grpc_transport.py | 157 + ...gative_criterion_service_grpc_transport.py | 140 + .../customer_service_grpc_transport.py | 167 + ...l_placement_view_service_grpc_transport.py | 127 + ...lay_keyword_view_service_grpc_transport.py | 127 + .../distance_view_service_grpc_transport.py | 127 + .../domain_category_service_grpc_transport.py | 127 + ...search_term_view_service_grpc_transport.py | 127 + ...anding_page_view_service_grpc_transport.py | 127 + ...ension_feed_item_service_grpc_transport.py | 141 + .../feed_item_service_grpc_transport.py | 141 + ...feed_item_target_service_grpc_transport.py | 140 + .../feed_mapping_service_grpc_transport.py | 141 + ...placeholder_view_service_grpc_transport.py | 127 + .../transports/feed_service_grpc_transport.py | 141 + .../gender_view_service_grpc_transport.py | 127 + ..._target_constant_service_grpc_transport.py | 140 + .../geographic_view_service_grpc_transport.py | 127 + ...google_ads_field_service_grpc_transport.py | 140 + .../google_ads_service_grpc_transport.py | 204 + ...p_placement_view_service_grpc_transport.py | 127 + ...hotel_group_view_service_grpc_transport.py | 127 + ...performance_view_service_grpc_transport.py | 127 + ...ncome_range_view_service_grpc_transport.py | 127 + .../invoice_service_grpc_transport.py | 127 + ...ad_group_keyword_service_grpc_transport.py | 141 + ...rd_plan_ad_group_service_grpc_transport.py | 141 + ...campaign_keyword_service_grpc_transport.py | 141 + ...rd_plan_campaign_service_grpc_transport.py | 141 + ...eyword_plan_idea_service_grpc_transport.py | 127 + .../keyword_plan_service_grpc_transport.py | 204 + .../keyword_view_service_grpc_transport.py | 127 + .../label_service_grpc_transport.py | 140 + ...anding_page_view_service_grpc_transport.py | 127 + ...anguage_constant_service_grpc_transport.py | 127 + .../location_view_service_grpc_transport.py | 127 + ...d_placement_view_service_grpc_transport.py | 127 + .../media_file_service_grpc_transport.py | 140 + ...hant_center_link_service_grpc_transport.py | 153 + ...ategory_constant_service_grpc_transport.py | 127 + ..._device_constant_service_grpc_transport.py | 127 + ...ne_user_data_job_service_grpc_transport.py | 174 + ...version_constant_service_grpc_transport.py | 127 + ...search_term_view_service_grpc_transport.py | 127 + ...ntal_status_view_service_grpc_transport.py | 127 + ...payments_account_service_grpc_transport.py | 129 + ...ategory_constant_service_grpc_transport.py | 127 + ...oduct_group_view_service_grpc_transport.py | 127 + .../reach_plan_service_grpc_transport.py | 169 + .../recommendation_service_grpc_transport.py | 153 + ...marketing_action_service_grpc_transport.py | 140 + ...search_term_view_service_grpc_transport.py | 127 + ...shared_criterion_service_grpc_transport.py | 140 + .../shared_set_service_grpc_transport.py | 140 + ...performance_view_service_grpc_transport.py | 127 + ...p_analytics_link_service_grpc_transport.py | 141 + .../topic_constant_service_grpc_transport.py | 127 + .../topic_view_service_grpc_transport.py | 127 + .../user_data_service_grpc_transport.py | 127 + .../user_interest_service_grpc_transport.py | 127 + .../user_list_service_grpc_transport.py | 140 + ...er_location_view_service_grpc_transport.py | 127 + .../video_service_grpc_transport.py | 127 + .../v5/services/user_data_service_client.py | 249 + .../user_data_service_client_config.py | 31 + .../services/user_interest_service_client.py | 238 + .../user_interest_service_client_config.py | 31 + .../v5/services/user_list_service_client.py | 309 + .../user_list_service_client_config.py | 36 + .../user_location_view_service_client.py | 238 + ...ser_location_view_service_client_config.py | 31 + .../v5/services/video_service_client.py | 238 + .../services/video_service_client_config.py | 31 + google/ads/google_ads/v5/types.py | 1855 +++ setup.py | 56 +- tests/client_test.py | 472 +- tests/config_test.py | 325 +- .../exception_interceptor_test.py | 67 +- tests/interceptors/interceptor_test.py | 62 +- .../interceptors/logging_interceptor_test.py | 254 +- .../interceptors/metadata_interceptor_test.py | 89 +- tests/oauth2_test.py | 75 +- tests/util_test.py | 13 +- 1645 files changed, 224973 insertions(+), 4737 deletions(-) create mode 100644 examples/account_management/get_account_hierarchy.py create mode 100644 examples/campaign_management/graduate_campaign_experiment.py create mode 100755 examples/error_handling/handle_expanded_text_ad_policy_violations.py create mode 100755 examples/error_handling/handle_keyword_policy_violations.py create mode 100755 examples/extensions/add_sitelinks_using_feeds.py create mode 100755 examples/planning/get_ad_group_criterion_cpc_bid_simulations.py create mode 100755 examples/planning/get_campaign_criterion_bid_modifier_simulations.py create mode 100755 examples/remarketing/add_customer_match_user_list.py mode change 100644 => 100755 examples/shopping_ads/add_listing_scope.py create mode 100644 google/ads/google_ads/v5/__init__.py create mode 100644 google/ads/google_ads/v5/proto/__init__.py create mode 100644 google/ads/google_ads/v5/proto/common/__init__.py create mode 100644 google/ads/google_ads/v5/proto/common/ad_asset_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/ad_asset_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/ad_type_infos_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/ad_type_infos_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/asset_types_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/asset_types_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/bidding_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/bidding_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/click_location_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/click_location_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/criteria_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/criteria_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/custom_parameter_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/custom_parameter_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/dates_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/dates_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/extensions_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/extensions_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/feed_common_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/feed_common_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/final_app_url_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/final_app_url_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/frequency_cap_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/frequency_cap_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/matching_function_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/matching_function_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/metrics_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/metrics_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/offline_user_data_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/offline_user_data_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/policy_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/policy_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/real_time_bidding_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/real_time_bidding_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/segments_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/segments_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/simulation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/simulation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/tag_snippet_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/tag_snippet_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/targeting_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/targeting_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/text_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/text_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/url_collection_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/url_collection_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/user_lists_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/user_lists_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/common/value_pb2.py create mode 100644 google/ads/google_ads/v5/proto/common/value_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/__init__.py create mode 100644 google/ads/google_ads/v5/proto/enums/access_reason_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/access_reason_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/access_role_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/access_role_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_budget_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_link_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/account_link_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_ad_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_ad_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_criterion_approval_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_criterion_approval_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_criterion_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_criterion_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_group_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_network_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_network_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_serving_optimization_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_serving_optimization_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_strength_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_strength_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/ad_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/advertising_channel_sub_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/advertising_channel_sub_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/advertising_channel_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/advertising_channel_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/affiliate_location_feed_relationship_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/affiliate_location_feed_relationship_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/affiliate_location_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/affiliate_location_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/age_range_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/age_range_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_campaign_app_store_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_campaign_app_store_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_campaign_bidding_strategy_goal_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_campaign_bidding_strategy_goal_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_payment_model_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_payment_model_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_store_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_store_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_url_operating_system_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/app_url_operating_system_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_field_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_field_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_link_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_link_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_performance_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_performance_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/asset_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/attribution_model_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/attribution_model_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/batch_job_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/batch_job_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/bid_modifier_source_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/bid_modifier_source_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_source_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_source_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_strategy_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_strategy_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_strategy_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/bidding_strategy_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/billing_setup_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/billing_setup_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_period_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_period_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/budget_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/campaign_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/change_status_operation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/change_status_operation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/click_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/click_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/content_label_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/content_label_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_category_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_category_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_counting_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_counting_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_action_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_adjustment_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_adjustment_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_attribution_event_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_attribution_event_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_lag_bucket_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_lag_bucket_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_or_adjustment_lag_bucket_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/conversion_or_adjustment_lag_bucket_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_category_channel_availability_mode_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_category_channel_availability_mode_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_category_locale_availability_mode_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_category_locale_availability_mode_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_system_serving_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_system_serving_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/criterion_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_member_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_member_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_interest_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/day_of_week_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/day_of_week_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/device_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/device_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/distance_bucket_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/distance_bucket_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/extension_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/extension_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_link_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_link_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_origin_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_origin_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/feed_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/gender_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/gender_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_targeting_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/geo_targeting_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/google_ads_field_category_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/google_ads_field_category_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/google_ads_field_data_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/google_ads_field_data_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_date_selection_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_date_selection_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_price_bucket_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_price_bucket_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_rate_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/hotel_rate_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/income_range_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/income_range_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/interaction_event_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/interaction_event_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/interaction_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/interaction_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/invoice_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/invoice_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_match_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_match_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_competition_level_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_competition_level_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_forecast_interval_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_forecast_interval_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_network_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/keyword_plan_network_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/label_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/label_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/linked_account_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/linked_account_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/listing_group_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/listing_group_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/local_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/local_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_extension_targeting_criterion_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_extension_targeting_criterion_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_group_radius_units_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_group_radius_units_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_source_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/location_source_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/manager_link_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/manager_link_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/media_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/media_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/mime_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/mime_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/mobile_device_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/mobile_device_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/month_of_year_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/month_of_year_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/negative_geo_target_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/negative_geo_target_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_failure_reason_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_failure_reason_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/offline_user_data_job_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/operating_system_version_operator_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/operating_system_version_operator_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/optimization_goal_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/optimization_goal_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/page_one_promoted_strategy_goal_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/page_one_promoted_strategy_goal_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/parental_status_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/parental_status_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/payment_mode_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/payment_mode_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/placeholder_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/placeholder_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/placement_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/placement_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_review_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_review_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_extension_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_channel_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_channel_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_condition_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_condition_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_type_level_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/product_type_level_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_extension_discount_modifier_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_extension_discount_modifier_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_extension_occasion_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_extension_occasion_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/promotion_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/proximity_radius_units_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/proximity_radius_units_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/quality_score_bucket_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/quality_score_bucket_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_network_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/reach_plan_network_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/real_estate_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/real_estate_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/recommendation_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/recommendation_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/response_content_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/response_content_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_engine_results_page_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_engine_results_page_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_term_match_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_term_match_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_term_targeting_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/search_term_targeting_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/served_asset_field_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/served_asset_field_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/shared_set_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/shared_set_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/shared_set_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/shared_set_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/simulation_modification_method_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/simulation_modification_method_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/simulation_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/simulation_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/sitelink_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/sitelink_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/slot_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/slot_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/spending_limit_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/spending_limit_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/structured_snippet_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/structured_snippet_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/summary_row_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/summary_row_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/system_managed_entity_source_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/system_managed_entity_source_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/target_cpa_opt_in_recommendation_goal_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/target_cpa_opt_in_recommendation_goal_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/target_impression_share_location_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/target_impression_share_location_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/targeting_dimension_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/targeting_dimension_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/time_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/time_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/tracking_code_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/tracking_code_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/travel_placeholder_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/travel_placeholder_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_interest_taxonomy_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_interest_taxonomy_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_access_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_access_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_closing_reason_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_closing_reason_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_combined_rule_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_combined_rule_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_crm_data_source_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_crm_data_source_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_date_rule_item_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_date_rule_item_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_logical_rule_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_logical_rule_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_membership_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_membership_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_number_rule_item_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_number_rule_item_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_prepopulation_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_prepopulation_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_rule_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_rule_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_size_range_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_size_range_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_type_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/user_list_type_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/vanity_pharma_text_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/vanity_pharma_text_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/webpage_condition_operand_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/webpage_condition_operand_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/enums/webpage_condition_operator_pb2.py create mode 100644 google/ads/google_ads/v5/proto/enums/webpage_condition_operator_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/__init__.py create mode 100644 google/ads/google_ads/v5/proto/errors/access_invitation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/access_invitation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/account_budget_proposal_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/account_budget_proposal_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/account_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/account_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_customizer_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_customizer_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_ad_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_ad_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_bid_modifier_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_bid_modifier_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_criterion_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_criterion_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/adx_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/adx_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/asset_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/asset_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/asset_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/asset_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/authentication_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/authentication_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/authorization_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/authorization_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/batch_job_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/batch_job_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/bidding_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/bidding_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/bidding_strategy_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/bidding_strategy_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/billing_setup_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/billing_setup_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/change_status_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/change_status_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/collection_size_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/collection_size_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/context_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/context_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/country_code_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/country_code_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/criterion_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/criterion_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/currency_code_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/currency_code_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/database_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/database_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/date_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/date_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/date_range_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/date_range_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/distinct_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/distinct_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/enum_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/enum_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/errors_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/errors_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/field_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/field_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/field_mask_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/field_mask_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/function_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/function_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/header_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/header_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/id_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/id_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/image_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/image_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/internal_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/internal_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/invoice_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/invoice_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/label_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/label_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/language_code_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/language_code_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/list_operation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/list_operation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/manager_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/manager_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_file_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_file_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_upload_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/media_upload_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/multiplier_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/multiplier_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/mutate_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/mutate_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/not_empty_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/not_empty_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/null_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/null_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/operator_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/operator_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/payments_account_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/payments_account_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/query_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/query_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/quota_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/quota_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/range_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/range_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/recommendation_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/recommendation_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/region_code_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/region_code_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/request_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/request_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/resource_access_denied_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/resource_access_denied_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/resource_count_limit_exceeded_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/resource_count_limit_exceeded_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/setting_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/setting_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/shared_set_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/shared_set_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/size_limit_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/size_limit_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/string_format_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/string_format_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/string_length_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/string_length_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/time_zone_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/time_zone_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/url_field_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/url_field_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/user_data_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/user_data_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/user_list_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/user_list_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2.py create mode 100644 google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/__init__.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_budget_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_budget_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_budget_proposal_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_budget_proposal_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_link_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/account_link_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_asset_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_asset_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_feed_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_feed_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_parameter_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_parameter_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/age_range_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/age_range_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/asset_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/asset_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/batch_job_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/batch_job_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/bidding_strategy_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/bidding_strategy_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/billing_setup_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/billing_setup_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_asset_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_asset_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_audience_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_audience_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_bid_modifier_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_bid_modifier_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_budget_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_budget_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_criterion_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_criterion_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_draft_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_draft_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_experiment_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_experiment_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_feed_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_feed_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/carrier_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/carrier_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/change_status_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/change_status_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/click_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/click_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/conversion_action_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/conversion_action_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/currency_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/currency_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/custom_interest_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/custom_interest_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_client_link_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_client_link_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_client_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_client_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_feed_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_feed_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_manager_link_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_manager_link_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_negative_criterion_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_negative_criterion_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/customer_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/distance_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/distance_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/domain_category_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/domain_category_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_item_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_item_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_item_target_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_item_target_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_mapping_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_mapping_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/gender_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/gender_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/geographic_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/geographic_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/google_ads_field_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/google_ads_field_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/group_placement_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/group_placement_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/income_range_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/income_range_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/invoice_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/invoice_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_keyword_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_keyword_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_keyword_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_keyword_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_plan_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/keyword_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/label_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/label_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/landing_page_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/landing_page_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/language_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/language_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/location_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/location_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/media_file_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/media_file_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/mobile_device_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/mobile_device_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/offline_user_data_job_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/offline_user_data_job_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/operating_system_version_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/operating_system_version_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/paid_organic_search_term_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/paid_organic_search_term_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/parental_status_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/parental_status_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/payments_account_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/payments_account_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/product_group_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/product_group_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/recommendation_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/recommendation_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/remarketing_action_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/remarketing_action_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/search_term_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/search_term_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/shared_criterion_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/shared_criterion_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/shared_set_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/shared_set_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/topic_constant_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/topic_constant_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/topic_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/topic_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_interest_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_interest_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_list_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_list_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_location_view_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/user_location_view_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/resources/video_pb2.py create mode 100644 google/ads/google_ads/v5/proto/resources/video_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/__init__.py create mode 100644 google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/account_budget_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/account_budget_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/account_link_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/account_link_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_asset_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_asset_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_simulation_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_group_simulation_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_parameter_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_parameter_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_schedule_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_schedule_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/ad_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/age_range_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/age_range_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/asset_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/asset_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/batch_job_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/batch_job_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/billing_setup_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/billing_setup_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/change_status_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/change_status_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/click_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/click_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_action_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_action_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/currency_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/currency_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/custom_interest_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/custom_interest_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_client_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_client_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_feed_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_feed_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/customer_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/distance_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/distance_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/domain_category_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/domain_category_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_item_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_item_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/feed_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/gender_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/gender_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/geographic_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/geographic_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/google_ads_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/google_ads_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/income_range_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/income_range_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/invoice_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/invoice_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_keyword_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_keyword_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/keyword_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/label_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/label_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/language_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/language_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/location_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/location_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/media_file_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/media_file_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/paid_organic_search_term_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/paid_organic_search_term_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/parental_status_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/parental_status_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/payments_account_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/payments_account_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/product_group_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/product_group_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/reach_plan_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/reach_plan_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/recommendation_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/recommendation_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/search_term_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/search_term_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/shared_set_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/shared_set_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/topic_constant_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/topic_constant_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/topic_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/topic_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/user_data_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/user_data_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/user_interest_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/user_interest_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/user_list_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/user_list_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/user_location_view_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/user_location_view_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/proto/services/video_service_pb2.py create mode 100644 google/ads/google_ads/v5/proto/services/video_service_pb2_grpc.py create mode 100644 google/ads/google_ads/v5/services/__init__.py create mode 100644 google/ads/google_ads/v5/services/account_budget_proposal_service_client.py create mode 100644 google/ads/google_ads/v5/services/account_budget_proposal_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/account_budget_service_client.py create mode 100644 google/ads/google_ads/v5/services/account_budget_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/account_link_service_client.py create mode 100644 google/ads/google_ads/v5/services/account_link_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_label_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_ad_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_audience_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_audience_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_label_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_extension_setting_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_extension_setting_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_feed_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_feed_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_label_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_group_simulation_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_group_simulation_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_parameter_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_parameter_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_schedule_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_schedule_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/ad_service_client.py create mode 100644 google/ads/google_ads/v5/services/ad_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/age_range_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/age_range_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/asset_service_client.py create mode 100644 google/ads/google_ads/v5/services/asset_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/batch_job_service_client.py create mode 100644 google/ads/google_ads/v5/services/batch_job_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/bidding_strategy_service_client.py create mode 100644 google/ads/google_ads/v5/services/bidding_strategy_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/billing_setup_service_client.py create mode 100644 google/ads/google_ads/v5/services/billing_setup_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_asset_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_asset_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_audience_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_audience_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_bid_modifier_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_bid_modifier_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_budget_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_budget_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_criterion_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_criterion_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_draft_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_draft_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_experiment_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_experiment_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_extension_setting_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_extension_setting_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_feed_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_feed_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_label_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/campaign_shared_set_service_client.py create mode 100644 google/ads/google_ads/v5/services/campaign_shared_set_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/carrier_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/carrier_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/change_status_service_client.py create mode 100644 google/ads/google_ads/v5/services/change_status_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/click_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/click_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/conversion_action_service_client.py create mode 100644 google/ads/google_ads/v5/services/conversion_action_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client.py create mode 100644 google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/conversion_upload_service_client.py create mode 100644 google/ads/google_ads/v5/services/conversion_upload_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/currency_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/currency_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/custom_interest_service_client.py create mode 100644 google/ads/google_ads/v5/services/custom_interest_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_client_link_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_client_link_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_client_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_client_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_extension_setting_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_extension_setting_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_feed_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_feed_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_label_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_manager_link_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_manager_link_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_negative_criterion_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_negative_criterion_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/customer_service_client.py create mode 100644 google/ads/google_ads/v5/services/customer_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/detail_placement_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/detail_placement_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/display_keyword_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/display_keyword_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/distance_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/distance_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/domain_category_service_client.py create mode 100644 google/ads/google_ads/v5/services/domain_category_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/enums.py create mode 100644 google/ads/google_ads/v5/services/expanded_landing_page_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/expanded_landing_page_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/extension_feed_item_service_client.py create mode 100644 google/ads/google_ads/v5/services/extension_feed_item_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/feed_item_service_client.py create mode 100644 google/ads/google_ads/v5/services/feed_item_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/feed_item_target_service_client.py create mode 100644 google/ads/google_ads/v5/services/feed_item_target_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/feed_mapping_service_client.py create mode 100644 google/ads/google_ads/v5/services/feed_mapping_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/feed_placeholder_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/feed_placeholder_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/feed_service_client.py create mode 100644 google/ads/google_ads/v5/services/feed_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/gender_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/gender_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/geo_target_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/geo_target_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/geographic_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/geographic_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/google_ads_field_service_client.py create mode 100644 google/ads/google_ads/v5/services/google_ads_field_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/google_ads_service_client.py create mode 100644 google/ads/google_ads/v5/services/google_ads_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/group_placement_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/group_placement_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/hotel_group_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/hotel_group_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/hotel_performance_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/hotel_performance_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/income_range_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/income_range_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/invoice_service_client.py create mode 100644 google/ads/google_ads/v5/services/invoice_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_campaign_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_campaign_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_idea_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_idea_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_plan_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/keyword_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/keyword_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/label_service_client.py create mode 100644 google/ads/google_ads/v5/services/label_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/landing_page_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/landing_page_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/language_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/language_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/location_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/location_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/managed_placement_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/managed_placement_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/media_file_service_client.py create mode 100644 google/ads/google_ads/v5/services/media_file_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/merchant_center_link_service_client.py create mode 100644 google/ads/google_ads/v5/services/merchant_center_link_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/mobile_app_category_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/mobile_app_category_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/mobile_device_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/mobile_device_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/offline_user_data_job_service_client.py create mode 100644 google/ads/google_ads/v5/services/offline_user_data_job_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/operating_system_version_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/operating_system_version_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/parental_status_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/parental_status_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/payments_account_service_client.py create mode 100644 google/ads/google_ads/v5/services/payments_account_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/product_bidding_category_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/product_bidding_category_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/product_group_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/product_group_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/reach_plan_service_client.py create mode 100644 google/ads/google_ads/v5/services/reach_plan_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/recommendation_service_client.py create mode 100644 google/ads/google_ads/v5/services/recommendation_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/remarketing_action_service_client.py create mode 100644 google/ads/google_ads/v5/services/remarketing_action_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/search_term_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/search_term_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/shared_criterion_service_client.py create mode 100644 google/ads/google_ads/v5/services/shared_criterion_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/shared_set_service_client.py create mode 100644 google/ads/google_ads/v5/services/shared_set_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/shopping_performance_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/shopping_performance_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client.py create mode 100644 google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/topic_constant_service_client.py create mode 100644 google/ads/google_ads/v5/services/topic_constant_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/topic_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/topic_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/transports/__init__.py create mode 100644 google/ads/google_ads/v5/services/transports/account_budget_proposal_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/account_budget_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/account_link_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_ad_asset_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_ad_label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_ad_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_audience_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_bid_modifier_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_criterion_label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_criterion_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_criterion_simulation_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_extension_setting_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_feed_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_group_simulation_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_parameter_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_schedule_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/ad_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/age_range_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/asset_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/batch_job_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/bidding_strategy_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/billing_setup_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_asset_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_audience_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_bid_modifier_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_budget_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_criterion_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_criterion_simulation_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_draft_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_experiment_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_extension_setting_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_feed_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/campaign_shared_set_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/carrier_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/change_status_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/click_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/conversion_action_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/conversion_adjustment_upload_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/conversion_upload_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/currency_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/custom_interest_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_client_link_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_client_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_extension_setting_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_feed_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_manager_link_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_negative_criterion_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/customer_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/detail_placement_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/display_keyword_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/distance_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/domain_category_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/dynamic_search_ads_search_term_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/expanded_landing_page_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/extension_feed_item_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/feed_item_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/feed_item_target_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/feed_mapping_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/feed_placeholder_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/feed_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/gender_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/geo_target_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/geographic_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/google_ads_field_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/google_ads_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/group_placement_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/hotel_group_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/hotel_performance_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/income_range_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/invoice_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_keyword_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_campaign_keyword_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_campaign_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_idea_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_plan_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/keyword_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/label_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/landing_page_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/language_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/location_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/managed_placement_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/media_file_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/merchant_center_link_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/mobile_app_category_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/mobile_device_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/offline_user_data_job_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/operating_system_version_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/paid_organic_search_term_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/parental_status_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/payments_account_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/product_bidding_category_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/product_group_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/reach_plan_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/recommendation_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/remarketing_action_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/search_term_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/shared_criterion_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/shared_set_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/shopping_performance_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/third_party_app_analytics_link_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/topic_constant_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/topic_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/user_data_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/user_interest_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/user_list_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/user_location_view_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/transports/video_service_grpc_transport.py create mode 100644 google/ads/google_ads/v5/services/user_data_service_client.py create mode 100644 google/ads/google_ads/v5/services/user_data_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/user_interest_service_client.py create mode 100644 google/ads/google_ads/v5/services/user_interest_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/user_list_service_client.py create mode 100644 google/ads/google_ads/v5/services/user_list_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/user_location_view_service_client.py create mode 100644 google/ads/google_ads/v5/services/user_location_view_service_client_config.py create mode 100644 google/ads/google_ads/v5/services/video_service_client.py create mode 100644 google/ads/google_ads/v5/services/video_service_client_config.py create mode 100644 google/ads/google_ads/v5/types.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 939e5341e..a76d66ff1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,3 +26,31 @@ information on using pull requests. This project follows [Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). + +## Code Style + +This library conforms to [PEP 8](https://www.python.org/dev/peps/pep-0008/) +style guidelines and enforces an 80 character line width. It's recommended +that any contributor run the auto-formatter [`black`](https://github.com/psf/black), +version 19.10b0 on the non-generated codebase whenever making changes. To get +started, first install the appropriate version of `black`: + +``` +python -m pip install black==19.10b0 +``` + +You can manually run the formatter on all non-generated code with the following +command: + +``` +python -m black -l 80 -t py37 --exclude "/(v[0-9]+|\.eggs|\.git|_cache|\.nox|\.tox|\.venv|\.svn|_build|buck-out|build|dist)/" . +``` + +Alternatively, if you intend to contribute regularly, it might be easier to +append this script to the `.git/hooks/pre-commit` file: + +``` +FILES=$(git diff --cached --name-only --diff-filter=ACMR "*.py" | grep -v "google/ads/google_ads/v.*") +echo "${FILES}" | xargs python -m black -l 80 -t py37 +echo "${FILES}" | xargs git add +``` diff --git a/ChangeLog b/ChangeLog index 8ed104e9c..304de06d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +* 7.0.0 +- Google Ads v5_0 release +- Updates to examples to support addition of field presence on certain + resources, changing from accessing wrapper types to accessing primitives. + * 6.0.0 - Google Ads v4_0 release - Deprecate v1_0 diff --git a/examples/account_management/create_customer.py b/examples/account_management/create_customer.py index 771e6a1e3..579e2847e 100755 --- a/examples/account_management/create_customer.py +++ b/examples/account_management/create_customer.py @@ -29,52 +29,68 @@ def main(client, manager_customer_id): - customer_service = client.get_service('CustomerService', version='v4') - customer = client.get_type('Customer', version='v4') - today = datetime.today().strftime('%Y%m%d %H:%M:%S') - customer.descriptive_name.value = ('Account created with ' - 'CustomerService on %s' % today) + customer_service = client.get_service("CustomerService", version="v5") + customer = client.get_type("Customer", version="v5") + today = datetime.today().strftime("%Y%m%d %H:%M:%S") + customer.descriptive_name = ( + "Account created with " "CustomerService on %s" % today + ) # For a list of valid currency codes and time zones see this documentation: # https://developers.google.com/adwords/api/docs/appendix/codes-formats - customer.currency_code.value = 'USD' - customer.time_zone.value = 'America/New_York' + customer.currency_code = "USD" + customer.time_zone = "America/New_York" # The below values are optional. For more information about URL # options see: https://support.google.com/google-ads/answer/6305348 - customer.tracking_url_template.value = '{lpurl}?device={device}' - customer.final_url_suffix.value = ('keyword={keyword}&matchtype={matchtype}' - '&adgroupid={adgroupid}') - customer.has_partners_badge.value = False + customer.tracking_url_template = "{lpurl}?device={device}" + customer.final_url_suffix = ( + "keyword={keyword}&matchtype={matchtype}" "&adgroupid={adgroupid}" + ) + customer.has_partners_badge = False try: response = customer_service.create_customer_client( - manager_customer_id, customer) - print(('Customer created with resource name "%s" under manager account ' - 'with customer ID "%s"') % - (response.resource_name, manager_customer_id)) + manager_customer_id, customer + ) + print( + ( + 'Customer created with resource name "%s" under manager account ' + 'with customer ID "%s"' + ) + % (response.resource_name, manager_customer_id) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Creates a new client under the given manager.')) + description=("Creates a new client under the given manager.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-m', '--manager_customer_id', type=str, - required=True, help='A Google Ads customer ID for the ' - 'manager account under which the new customer will ' - 'be created.') + parser.add_argument( + "-m", + "--manager_customer_id", + type=str, + required=True, + help="A Google Ads customer ID for the " + "manager account under which the new customer will " + "be created.", + ) args = parser.parse_args() main(google_ads_client, args.manager_customer_id) diff --git a/examples/account_management/get_account_changes.py b/examples/account_management/get_account_changes.py index ac006c2c0..44aaa68ed 100755 --- a/examples/account_management/get_account_changes.py +++ b/examples/account_management/get_account_changes.py @@ -28,12 +28,12 @@ def resource_name_for_resource_type(resource_type, row): - """Return the resource name for the resource type. + """Return the resource name for the resource type. Each returned row contains all possible changed fields. This function returns the resource name of the changed field based on the resource type. The changed field's parent is also populated but is not used. - + Args: resource_type: the string equivalent of the resource type row: a single row returned from the service @@ -41,78 +41,100 @@ def resource_name_for_resource_type(resource_type, row): Returns: The resource name of the field that changed. """ - resource_name = '' # default for UNSPECIFIED or UNKNOWN - if resource_type == 'AD_GROUP': - resource_name = row.change_status.ad_group.value - elif resource_type == 'AD_GROUP_AD': - resource_name = row.change_status.ad_group_ad.value - elif resource_type == 'AD_GROUP_CRITERION': - resource_name = row.change_status.ad_group_criterion.value - elif resource_type == 'CAMPAIGN': - resource_name = row.change_status.campaign.value - elif resource_type == 'CAMPAIGN_CRITERION': - resource_name = row.change_status.campaign_criterion.value - return resource_name + resource_name = "" # default for UNSPECIFIED or UNKNOWN + if resource_type == "AD_GROUP": + resource_name = row.change_status.ad_group + elif resource_type == "AD_GROUP_AD": + resource_name = row.change_status.ad_group_ad + elif resource_type == "AD_GROUP_CRITERION": + resource_name = row.change_status.ad_group_criterion + elif resource_type == "CAMPAIGN": + resource_name = row.change_status.campaign + elif resource_type == "CAMPAIGN_CRITERION": + resource_name = row.change_status.campaign_criterion + return resource_name def main(client, customer_id): - ads_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT change_status.resource_name, ' - 'change_status.last_change_date_time, ' - 'change_status.resource_type, ' - 'change_status.campaign, ' - 'change_status.ad_group, ' - 'change_status.resource_status, ' - 'change_status.ad_group_ad, ' - 'change_status.ad_group_criterion, ' - 'change_status.campaign_criterion ' - 'FROM change_status ' - 'WHERE change_status.last_change_date_time DURING LAST_7_DAYS ' - 'ORDER BY change_status.last_change_date_time') - - response = ads_service.search(customer_id, query=query, - page_size=ADS_PAGE_SIZE) - - resource_type_enum = (client.get_type( - 'ChangeStatusResourceTypeEnum', version='v4').ChangeStatusResourceType) - change_status_operation_enum = (client.get_type( - 'ChangeStatusOperationEnum', version='v4').ChangeStatusOperation) - - try: - for row in response: - resource_type = (resource_type_enum.Name(row.change_status - .resource_type)) - resource_status = (change_status_operation_enum - .Name(row.change_status.resource_status)) - print ('On "%s", change status "%s" shows a resource type of "%s" ' - 'with resource name "%s" was "%s".' - % (row.change_status.last_change_date_time.value, - row.change_status.resource_name, - resource_type, - resource_name_for_resource_type(resource_type, row), - resource_status)) - except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) - for error in ex.failure.errors: - print('\tError with message "%s".' % error.message) - if error.location: - for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) - sys.exit(1) - - -if __name__ == '__main__': - # GoogleAdsClient will read a google-ads.yaml configuration file in the - # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) - - parser = argparse.ArgumentParser( - description=('Displays account changes that occurred in the last 7 days.')) - # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - args = parser.parse_args() - - main(google_ads_client, args.customer_id) + ads_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT change_status.resource_name, " + "change_status.last_change_date_time, " + "change_status.resource_type, " + "change_status.campaign, " + "change_status.ad_group, " + "change_status.resource_status, " + "change_status.ad_group_ad, " + "change_status.ad_group_criterion, " + "change_status.campaign_criterion " + "FROM change_status " + "WHERE change_status.last_change_date_time DURING LAST_7_DAYS " + "ORDER BY change_status.last_change_date_time" + ) + + response = ads_service.search( + customer_id, query=query, page_size=ADS_PAGE_SIZE + ) + + resource_type_enum = client.get_type( + "ChangeStatusResourceTypeEnum", version="v5" + ).ChangeStatusResourceType + change_status_operation_enum = client.get_type( + "ChangeStatusOperationEnum", version="v5" + ).ChangeStatusOperation + + try: + for row in response: + resource_type = resource_type_enum.Name( + row.change_status.resource_type + ) + resource_status = change_status_operation_enum.Name( + row.change_status.resource_status + ) + print( + 'On "%s", change status "%s" shows a resource type of "%s" ' + 'with resource name "%s" was "%s".' + % ( + row.change_status.last_change_date_time.value, + row.change_status.resource_name, + resource_type, + resource_name_for_resource_type(resource_type, row), + resource_status, + ) + ) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print("\t\tOn field: %s" % field_path_element.field_name) + sys.exit(1) + + +if __name__ == "__main__": + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) + + parser = argparse.ArgumentParser( + description=( + "Displays account changes that occurred in the last 7 days." + ) + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id) diff --git a/examples/account_management/get_account_hierarchy.py b/examples/account_management/get_account_hierarchy.py new file mode 100644 index 000000000..a632a2d54 --- /dev/null +++ b/examples/account_management/get_account_hierarchy.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Gets the account hierarchy of the given MCC and login customer ID. + +If you don't specify manager ID and login customer ID, the example will instead +print the hierarchies of all accessible customer accounts for your +authenticated Google account. Note that if the list of accessible customers for +your authenticated Google account includes accounts within the same hierarchy, +this example will retrieve and print the overlapping portions of the hierarchy +for each accessible customer. +""" + +import argparse +import sys + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, login_customer_id=None): + """Gets the account hierarchy of the given MCC and login customer ID. + + Args: + client: The Google Ads client. + login_customer_id: Optional manager account ID. If none provided, this + method will instead list the accounts accessible from the + authenticated Google Ads account. + """ + + # Gets instances of the GoogleAdsService and CustomerService clients. + google_ads_service = client.get_service("GoogleAdsService", version="v5") + customer_service = client.get_service("CustomerService", version="v5") + + # A collection of customer IDs to handle. + seed_customer_ids = [] + + # Creates a query that retrieves all child accounts of the manager + # specified in search calls below. + query = """SELECT + customer_client.client_customer, + customer_client.level, + customer_client.manager, + customer_client.descriptive_name, + customer_client.currency_code, + customer_client.time_zone, + customer_client.id + FROM + customer_client + WHERE + customer_client.level <= 1""" + + try: + # If a Manager ID was provided in the customerId parameter, it will be + # the only ID in the list. Otherwise, we will issue a request for all + # customers accessible by this authenticated Google account. + if login_customer_id is not None: + seed_customer_ids = [login_customer_id] + else: + print( + "No manager ID is specified. The example will print the " + "hierarchies of all accessible customer IDs." + ) + + customer_resource_names = ( + customer_service.list_accessible_customers().resource_names + ) + + for customer_resource_name in customer_resource_names: + customer = customer_service.get_customer(customer_resource_name) + print(customer.id) + seed_customer_ids.append(customer.id) + + for seed_customer_id in seed_customer_ids: + # Performs a breadth-first search to build a Dictionary that maps + # managers to their child accounts (customerIdsToChildAccounts). + unprocessed_customer_ids = [seed_customer_id] + customer_ids_to_child_accounts = dict() + root_customer_client = None + + while unprocessed_customer_ids: + customer_id = unprocessed_customer_ids.pop(0) + response = google_ads_service.search(str(customer_id), query) + + # Iterates over all rows in all pages to get all customer + # clients under the specified customer's hierarchy. + for google_ads_row in response: + customer_client = google_ads_row.customer_client + + # The customer client that with level 0 is the specified + # customer. + if customer_client.level.value == 0: + if root_customer_client is None: + root_customer_client = customer_client + continue + + # For all level-1 (direct child) accounts that are a + # manager account, the above query will be run against them + # to create a Dictionary of managers mapped to their child + # accounts for printing the hierarchy afterwards. + if customer_id not in customer_ids_to_child_accounts: + customer_ids_to_child_accounts[customer_id] = [] + + customer_ids_to_child_accounts[customer_id].append( + customer_client + ) + + if customer_client.manager.value: + # A customer can be managed by multiple managers, so to + # prevent visiting the same customer many times, we + # need to check if it's already in the Dictionary. + if ( + customer_client.id.value + not in customer_ids_to_child_accounts + and customer_client.level.value == 1 + ): + unprocessed_customer_ids.append( + customer_client.id.value + ) + + if root_customer_client is not None: + print( + "The hierarchy of customer ID " + f"{root_customer_client.id.value} is printed below:" + ) + print_account_hierarchy( + root_customer_client, customer_ids_to_child_accounts, 0 + ) + else: + print( + f"Customer ID {login_customer_id} is likely a test " + "account, so its customer client information cannot be " + "retrieved." + ) + + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def print_account_hierarchy( + customer_client, customer_ids_to_child_accounts, depth +): + """Prints the specified account's hierarchy using recursion. + + Args: + customer_client: The customer cliant whose info will be printed; its + child accounts will be processed if it's a manager. + customer_ids_to_child_accounts: A dictionary mapping customer IDs to + child accounts. + depth: The current integer depth we are printing from in the account + hierarchy. + """ + if depth == 0: + print("Customer ID (Descriptive Name, Currency Code, Time Zone)") + + customer_id = str(customer_client.id.value) + print("-" * (depth * 2), end="") + print( + f"{customer_id} ({customer_client.descriptive_name.value}, " + f"{customer_client.currency_code.value}, " + f"{customer_client.time_zone.value})" + ) + + # Recursively call this function for all child accounts of customer_client. + if customer_id in customer_ids_to_child_accounts: + for child_account in customer_ids_to_child_accounts[customer_id]: + print_account_hierarchy( + child_account, customer_ids_to_child_accounts, depth + 1 + ) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="This example gets the account hierarchy of the specified " + "manager account and login customer ID." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-l", + "--login_customer_id", + "--manager_customer_id", + type=str, + required=False, + help="Optional manager " + "account ID. If none provided, the example will " + "instead list the accounts accessible from the " + "authenticated Google Ads account.", + ) + args = parser.parse_args() + main(google_ads_client, args.login_customer_id) diff --git a/examples/account_management/get_account_information.py b/examples/account_management/get_account_information.py index 15b2f39bd..d49a3c4c8 100755 --- a/examples/account_management/get_account_information.py +++ b/examples/account_management/get_account_information.py @@ -25,42 +25,53 @@ def main(client, customer_id): - customer_service = client.get_service('CustomerService', version='v4') + customer_service = client.get_service("CustomerService", version="v5") resource_name = customer_service.customer_path(customer_id) try: customer = customer_service.get_customer(resource_name=resource_name) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Customer ID: %d' % customer.id.value) - print('\tDescriptive name: %s' % customer.descriptive_name.value) - print('\tCurrency code: %s' % customer.currency_code.value) - print('\tTime zone: %s' % customer.time_zone.value) - print('\tTracking URL template: %s' % customer.tracking_url_template.value) - print('\tAuto tagging enabled: %s' % customer.auto_tagging_enabled) + print("Customer ID: %d" % customer.id) + print("\tDescriptive name: %s" % customer.descriptive_name) + print("\tCurrency code: %s" % customer.currency_code) + print("\tTime zone: %s" % customer.time_zone) + print("\tTracking URL template: %s" % customer.tracking_url_template) + print("\tAuto tagging enabled: %s" % customer.auto_tagging_enabled) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Displays basic information about the specified ' - 'customer\'s advertising account.')) + description=( + "Displays basic information about the specified " + "customer's advertising account." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/account_management/link_manager_to_client.py b/examples/account_management/link_manager_to_client.py index a372f97b3..7ac8a5d71 100755 --- a/examples/account_management/link_manager_to_client.py +++ b/examples/account_management/link_manager_to_client.py @@ -35,36 +35,43 @@ def main(client, customer_id, manager_customer_id): # Extend an invitation to the client while authenticating as the manager. client_link_operation = client.get_type( - 'CustomerClientLinkOperation', version='v4') + "CustomerClientLinkOperation", version="v5" + ) client_link = client_link_operation.create - client_link.client_customer.value = 'customers/{}'.format(customer_id) - client_link.status = client.get_type( - 'ManagerLinkStatusEnum').PENDING + client_link.client_customer.value = "customers/{}".format(customer_id) + client_link.status = client.get_type("ManagerLinkStatusEnum").PENDING customer_client_link_service = client.get_service( - 'CustomerClientLinkService', version='v4') + "CustomerClientLinkService", version="v5" + ) response = customer_client_link_service.mutate_customer_client_link( - manager_customer_id, client_link_operation) + manager_customer_id, client_link_operation + ) resource_name = response.results[0].resource_name - print('Extended an invitation from customer #{} to customer #{} with ' - 'client link resource_name #{}'.format( - manager_customer_id, customer_id, resource_name)) + print( + "Extended an invitation from customer #{} to customer #{} with " + "client link resource_name #{}".format( + manager_customer_id, customer_id, resource_name + ) + ) # Find the manager_link_id of the link we just created, so we can construct # the resource name for the link from the client side. Note that since we # are filtering by resource_name, a unique identifier, only one # customer_client_link resource will be returned in the response - query = ''' + query = """ SELECT customer_client_link.manager_link_id FROM customer_client_link WHERE customer_client_link.resource_name = "{}" - '''.format(resource_name) + """.format( + resource_name + ) - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") response = ga_service.search(manager_customer_id, query=query) # Since the google_ads_service.search method returns an iterator we need @@ -74,38 +81,54 @@ def main(client, customer_id, manager_customer_id): manager_link_id = row.customer_client_link.manager_link_id manager_link_operation = client.get_type( - 'CustomerManagerLinkOperation', version='v4') + "CustomerManagerLinkOperation", version="v5" + ) manager_link = manager_link_operation.update - manager_link.resource_name.value = ( - 'customers/{}/customerManagerLinks/{}~{}'.format( - customer_id, manager_customer_id, manager_link_id)) + manager_link.resource_name = "customers/{}/customerManagerLinks/{}~{}".format( + customer_id, manager_customer_id, manager_link_id + ) - manager_link.status = client.get_type('ManagerLinkStatusEnum', version='v4') + manager_link.status = client.get_type("ManagerLinkStatusEnum", version="v5") field_mask = protobuf_helpers.field_mask(None, manager_link) manager_link_operation.update_mask.CopyFrom(field_mask) - manager_link_service = client.get_service('ManagerLinkService', - version='v4') + manager_link_service = client.get_service( + "ManagerLinkService", version="v5" + ) response = manager_link_service.mutate_manager_links( - manager_customer_id, [manager_link_operation]) + manager_customer_id, [manager_link_operation] + ) resource_name = response.results[0].resource_name - print('Client accepted invitation with resource_name: #{}'.format( - resource_name)) + print( + "Client accepted invitation with resource_name: #{}".format( + resource_name + ) + ) -if __name__ == '__main__': + +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description= ('Links and existing manager customer to an existing' - 'client customer')) + description=( + "Links and existing manager customer to an existing" + "client customer" + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The customer ID.') - parser.add_argument('-m', '--manager_customer_id', type=str, - required=True, help='The manager customer ID.') + parser.add_argument( + "-c", "--customer_id", type=str, required=True, help="The customer ID." + ) + parser.add_argument( + "-m", + "--manager_customer_id", + type=str, + required=True, + help="The manager customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.manager_customer_id) diff --git a/examples/account_management/list_accessible_customers.py b/examples/account_management/list_accessible_customers.py index 265873028..10ac51a70 100755 --- a/examples/account_management/list_accessible_customers.py +++ b/examples/account_management/list_accessible_customers.py @@ -27,31 +27,34 @@ def main(client): - customer_service = client.get_service('CustomerService', version='v4') + customer_service = client.get_service("CustomerService", version="v5") try: accessible_customers = customer_service.list_accessible_customers() result_total = len(accessible_customers.resource_names) - print('Total results: %i' % result_total) + print("Total results: %i" % result_total) resource_names = accessible_customers.resource_names for resource_name in resource_names: print('Customer resource name: "%s"' % resource_name) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) main(google_ads_client) diff --git a/examples/advanced_operations/add_ad_group_bid_modifier.py b/examples/advanced_operations/add_ad_group_bid_modifier.py index 531ff044c..bef8925e3 100755 --- a/examples/advanced_operations/add_ad_group_bid_modifier.py +++ b/examples/advanced_operations/add_ad_group_bid_modifier.py @@ -25,64 +25,91 @@ def main(client, customer_id, ad_group_id, bid_modifier_value): - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_bm_service = client.get_service('AdGroupBidModifierService', - version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_bm_service = client.get_service( + "AdGroupBidModifierService", version="v5" + ) # Create ad group bid modifier for mobile devices with the specified ad # group ID and bid modifier value. ad_group_bid_modifier_operation = client.get_type( - 'AdGroupBidModifierOperation') + "AdGroupBidModifierOperation" + ) ad_group_bid_modifier = ad_group_bid_modifier_operation.create # Set the ad group. - ad_group_bid_modifier.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + ad_group_bid_modifier.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Set the bid modifier. - ad_group_bid_modifier.bid_modifier.value = bid_modifier_value + ad_group_bid_modifier.bid_modifier = bid_modifier_value # Sets the device. - ad_group_bid_modifier.device.type = client.get_type('DeviceEnum', - version='v4').MOBILE + ad_group_bid_modifier.device.type = client.get_type( + "DeviceEnum", version="v5" + ).MOBILE # Add the ad group bid modifier. try: - ad_group_bm_response = ( - ad_group_bm_service.mutate_ad_group_bid_modifiers( - customer_id, [ad_group_bid_modifier_operation])) + ad_group_bm_response = ad_group_bm_service.mutate_ad_group_bid_modifiers( + customer_id, [ad_group_bid_modifier_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created ad group bid modifier: %s.' - % ad_group_bm_response.results[0].resource_name) + print( + "Created ad group bid modifier: %s." + % ad_group_bm_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds an ad group bid modifier to the specified ad group ' - 'ID, for the given customer ID.')) + description=( + "Adds an ad group bid modifier to the specified ad group " + "ID, for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-b', '--bid_modifier_value', type=float, - required=False, default=1.5, - help='The bid modifier value.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-b", + "--bid_modifier_value", + type=float, + required=False, + default=1.5, + help="The bid modifier value.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.bid_modifier_value) + main( + google_ads_client, + args.customer_id, + args.ad_group_id, + args.bid_modifier_value, + ) diff --git a/examples/advanced_operations/add_app_campaign.py b/examples/advanced_operations/add_app_campaign.py index 988181f4e..d41e85ed7 100755 --- a/examples/advanced_operations/add_app_campaign.py +++ b/examples/advanced_operations/add_app_campaign.py @@ -38,27 +38,32 @@ def main(client, customer_id): budget_resource_name = _create_budget(client, customer_id) # Creates the campaign. - campaign_resource_name = _create_campaign(client, customer_id, - budget_resource_name) + campaign_resource_name = _create_campaign( + client, customer_id, budget_resource_name + ) # Sets campaign targeting. - _set_campaign_targeting_criteria(client, customer_id, - campaign_resource_name) + _set_campaign_targeting_criteria( + client, customer_id, campaign_resource_name + ) # Creates an Ad Group. - ad_group_resource_name = _create_ad_group(client, customer_id, - campaign_resource_name) + ad_group_resource_name = _create_ad_group( + client, customer_id, campaign_resource_name + ) # Creates an App Ad. _create_app_ad(client, customer_id, ad_group_resource_name) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) @@ -73,24 +78,28 @@ def _create_budget(client, customer_id): A resource_name str for the newly created Budget. """ # Retrieves a new campaign budget operation object. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) # Creates a campaign budget. campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = f'Interplanetary Cruise #{uuid4()}' - campaign_budget.amount_micros.value = 50000000 + campaign_budget.name = f"Interplanetary Cruise #{uuid4()}" + campaign_budget.amount_micros = 50000000 campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', version='v4').STANDARD + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD # An App campaign cannot use a shared campaign budget. # explicitly_shared must be set to false. - campaign_budget.explicitly_shared.value = False + campaign_budget.explicitly_shared = False # Retrieves the campaign budget service. - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) # Submits the campaign budget operation to add the campaign budget. response = campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation]) + customer_id, [campaign_budget_operation] + ) resource_name = response.results[0].resource_name print(f'Created campaign budget with resource_name: "{resource_name}"') return resource_name @@ -107,23 +116,24 @@ def _create_campaign(client, customer_id, budget_resource_name): Returns: A resource_name str for the newly created app campaign. """ - campaign_service = client.get_service('CampaignService', version='v4') - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = f'Interplanetary Cruise App #{uuid4()}' - campaign.campaign_budget.value = budget_resource_name + campaign.name = f"Interplanetary Cruise App #{uuid4()}" + campaign.campaign_budget = budget_resource_name # Recommendation: Set the campaign to PAUSED when creating it to # prevent the ads from immediately serving. Set to ENABLED once you've # added targeting and the ads are ready to serve. - campaign.status = client.get_type( - 'CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # All App campaigns have an advertising_channel_type of # MULTI_CHANNEL to reflect the fact that ads from these campaigns are # eligible to appear on multiple channels. campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', version='v4').MULTI_CHANNEL + "AdvertisingChannelTypeEnum", version="v5" + ).MULTI_CHANNEL campaign.advertising_channel_sub_type = client.get_type( - 'AdvertisingChannelSubTypeEnum', version='v4').APP_CAMPAIGN + "AdvertisingChannelSubTypeEnum", version="v5" + ).APP_CAMPAIGN # Sets the target CPA to $1 / app install. # # campaign_bidding_strategy is a 'oneof' message so setting target_cpa @@ -131,43 +141,43 @@ def _create_campaign(client, customer_id, budget_resource_name): # manual_cpc, commission, maximize_conversions, etc. # See https://developers.google.com/google-ads/api/reference/rpc # under current version / resources / Campaign - campaign.target_cpa.target_cpa_micros.value = 1000000 + campaign.target_cpa.target_cpa_micros = 1000000 # Sets the App Campaign Settings. - campaign.app_campaign_setting.app_id.value = ( - 'com.google.android.apps.adwords') + campaign.app_campaign_setting.app_id = "com.google.android.apps.adwords" campaign.app_campaign_setting.app_store = client.get_type( - 'AppCampaignAppStoreEnum', version='v4').GOOGLE_APP_STORE + "AppCampaignAppStoreEnum", version="v5" + ).GOOGLE_APP_STORE # Optimize this campaign for getting new users for your app. - campaign.app_campaign_setting.bidding_strategy_goal_type = (client - .get_type('AppCampaignBiddingStrategyGoalTypeEnum', - version='v4').OPTIMIZE_INSTALLS_TARGET_INSTALL_COST) + campaign.app_campaign_setting.bidding_strategy_goal_type = client.get_type( + "AppCampaignBiddingStrategyGoalTypeEnum", version="v5" + ).OPTIMIZE_INSTALLS_TARGET_INSTALL_COST # Optional fields - campaign.start_date.value = (datetime.now() + - timedelta(1)).strftime('%Y%m%d') - campaign.end_date.value = (datetime.now() + - timedelta(365)).strftime('%Y%m%d') + campaign.start_date = (datetime.now() + timedelta(1)).strftime("%Y%m%d") + campaign.end_date = (datetime.now() + timedelta(365)).strftime("%Y%m%d") # Optional: If you select the # OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST goal type, then also # specify your in-app conversion types so the Google Ads API can focus # your campaign on people who are most likely to complete the # corresponding in-app actions. # selective_optimization1 = (client.get_type('StringValue', - # version='v4')) - # selective_optimization1.value = ( + # version='v5')) + # selective_optimization1 = ( # 'INSERT_CONVERSION_ACTION_RESOURCE_NAME_HERE') # campaign.selective_optimization.conversion_actions.extend( # [selective_optimization1]) # Submits the campaign operation and print the results. - campaign_response = campaign_service.mutate_campaigns(customer_id, - [campaign_operation]) + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation] + ) resource_name = campaign_response.results[0].resource_name print(f'Created App campaign with resource name: "{resource_name}".') return resource_name -def _set_campaign_targeting_criteria(client, customer_id, - campaign_resource_name): +def _set_campaign_targeting_criteria( + client, customer_id, campaign_resource_name +): """Sets campaign targeting criteria for a given campaign. Both location and language targeting are illustrated. @@ -178,15 +188,16 @@ def _set_campaign_targeting_criteria(client, customer_id, campaign_resource_name: the campaign to apply targeting to """ campaign_criterion_service = client.get_service( - 'CampaignCriterionService', version='v4') + "CampaignCriterionService", version="v5" + ) geo_target_constant_service = client.get_service( - 'GeoTargetConstantService', version='v4') + "GeoTargetConstantService", version="v5" + ) language_constant_service = client.get_service( - 'LanguageConstantService', version='v4') - location_type = client.get_type( - 'CriterionTypeEnum', version='v4').LOCATION - language_type = client.get_type( - 'CriterionTypeEnum', version='v4').LANGUAGE + "LanguageConstantService", version="v5" + ) + location_type = client.get_type("CriterionTypeEnum", version="v5").LOCATION + language_type = client.get_type("CriterionTypeEnum", version="v5").LANGUAGE campaign_criterion_operations = [] # Creates the location campaign criteria. @@ -194,34 +205,39 @@ def _set_campaign_targeting_criteria(client, customer_id, # GeoTargetConstantService.suggest_geo_target_constants() and directly # apply GeoTargetConstant.resource_name here. An example can be found # in targeting/get_geo_target_constant_by_names.py. - for location_id in ['21137', # California - '2484']: # Mexico + for location_id in ["21137", "2484"]: # California # Mexico campaign_criterion_operation = client.get_type( - 'CampaignCriterionOperation', version='v4') + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_resource_name + campaign_criterion.campaign = campaign_resource_name campaign_criterion.type = location_type - campaign_criterion.location.geo_target_constant.value = ( - geo_target_constant_service.geo_target_constant_path(location_id)) + campaign_criterion.location.geo_target_constant = geo_target_constant_service.geo_target_constant_path( + location_id + ) campaign_criterion_operations.append(campaign_criterion_operation) # Creates the language campaign criteria. - for language_id in ['1000', # English - '1003']: # Spanish + for language_id in ["1000", "1003"]: # English # Spanish campaign_criterion_operation = client.get_type( - 'CampaignCriterionOperation', version='v4') + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_resource_name + campaign_criterion.campaign = campaign_resource_name campaign_criterion.type = language_type - campaign_criterion.language.language_constant.value = ( - language_constant_service.language_constant_path(language_id)) + campaign_criterion.language.language_constant = language_constant_service.language_constant_path( + language_id + ) campaign_criterion_operations.append(campaign_criterion_operation) - # Submits the criteria operations. + # Submits the criteria operations. for row in campaign_criterion_service.mutate_campaign_criteria( - customer_id, campaign_criterion_operations).results: - print('Created Campaign Criteria with resource name: ' - f'"{row.resource_name}".') + customer_id, campaign_criterion_operations + ).results: + print( + "Created Campaign Criteria with resource name: " + f'"{row.resource_name}".' + ) def _create_ad_group(client, customer_id, campaign_resource_name): @@ -235,22 +251,22 @@ def _create_ad_group(client, customer_id, campaign_resource_name): Returns: A resource_name str for the newly created ad group. """ - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") # Creates the ad group. # Note that the ad group type must not be set. # Since the advertising_channel_sub_type is APP_CAMPAIGN, # 1- you cannot override bid settings at the ad group level. # 2- you cannot add ad group criteria. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.create - ad_group.name.value = f'Earth to Mars cruises {uuid4()}' - ad_group.status = client.get_type( - 'AdGroupStatusEnum', version='v4').ENABLED - ad_group.campaign.value = campaign_resource_name + ad_group.name = f"Earth to Mars cruises {uuid4()}" + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + ad_group.campaign = campaign_resource_name ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) ad_group_resource_name = ad_group_response.results[0].resource_name print(f'Ad Group created with resource name: "{ad_group_resource_name}".') @@ -266,49 +282,66 @@ def _create_app_ad(client, customer_id, ad_group_resource_name): ad_group_resource_name: the ad group where the ad will be added. """ # Creates the ad group ad. - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create ad_group_ad.status = client.get_type( - 'AdGroupAdStatusEnum', version='v4').ENABLED - ad_group_ad.ad_group.value = ad_group_resource_name + "AdGroupAdStatusEnum", version="v5" + ).ENABLED + ad_group_ad.ad_group = ad_group_resource_name # ad_data is a 'oneof' message so setting app_ad # is mutually exclusive with ad data fields such as # text_ad, gmail_ad, etc. - ad_group_ad.ad.app_ad.headlines.extend([ - _create_ad_text_asset(client, 'A cool puzzle game'), - _create_ad_text_asset(client, 'Remove connected blocks')]) - ad_group_ad.ad.app_ad.descriptions.extend([ - _create_ad_text_asset(client, '3 difficulty levels'), - _create_ad_text_asset(client, '4 colorful fun skins')]) + ad_group_ad.ad.app_ad.headlines.extend( + [ + _create_ad_text_asset(client, "A cool puzzle game"), + _create_ad_text_asset(client, "Remove connected blocks"), + ] + ) + ad_group_ad.ad.app_ad.descriptions.extend( + [ + _create_ad_text_asset(client, "3 difficulty levels"), + _create_ad_text_asset(client, "4 colorful fun skins"), + ] + ) # Optional: You can set up to 20 image assets for your campaign. # ad_group_ad.ad.app_ad.images.extend( # [INSERT_AD_IMAGE_RESOURCE_NAME(s)_HERE]) ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) ad_group_ad_resource_name = ad_group_ad_response.results[0].resource_name - print('Ad Group App Ad created with resource name:' - f'"{ad_group_ad_resource_name}".') + print( + "Ad Group App Ad created with resource name:" + f'"{ad_group_ad_resource_name}".' + ) def _create_ad_text_asset(client, text): - ad_text_asset = client.get_type('AdTextAsset', version='v4') - ad_text_asset.text.value = text + ad_text_asset = client.get_type("AdTextAsset", version="v5") + ad_text_asset.text = text return ad_text_asset -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds a App Ad campaign under the specified ' - 'customer ID.')) + description=( + "Adds a App Ad campaign under the specified " "customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/advanced_operations/add_dynamic_page_feed.py b/examples/advanced_operations/add_dynamic_page_feed.py index 3767619f1..a9253ef50 100755 --- a/examples/advanced_operations/add_dynamic_page_feed.py +++ b/examples/advanced_operations/add_dynamic_page_feed.py @@ -47,7 +47,7 @@ def main(client, customer_id, campaign_id, ad_group_id): campaign_id: a campaign ID str. ad_group_id: an ad group ID str. """ - dsa_page_url_label = 'discounts' + dsa_page_url_label = "discounts" try: # Get the page feed resource name. This code example creates a new feed, @@ -62,24 +62,30 @@ def main(client, customer_id, campaign_id, ad_group_id): create_feed_items(client, customer_id, feed_details, dsa_page_url_label) # Associate the page feed with the campaign. - update_campaign_dsa_setting(client, customer_id, campaign_id, - feed_details) - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_resource_name = ad_group_service.ad_group_path(customer_id, - ad_group_id) + update_campaign_dsa_setting( + client, customer_id, campaign_id, feed_details + ) + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_resource_name = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Optional: Target web pages matching the feed's label in the ad group. - add_dsa_targeting(client, customer_id, ad_group_resource_name, - dsa_page_url_label) + add_dsa_targeting( + client, customer_id, ad_group_resource_name, dsa_page_url_label + ) except GoogleAdsException as ex: - print('Request with ID "{}" failed with status "{}" and includes the ' - 'following errors:'.format(ex.request_id, ex.error.code().name)) + print( + 'Request with ID "{}" failed with status "{}" and includes the ' + "following errors:".format(ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format( - field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) @@ -94,26 +100,29 @@ def create_feed(client, customer_id): A FeedDetails instance with information about the newly created feed. """ # Retrieve a new feed operation object. - feed_operation = client.get_type('FeedOperation', version='v4') + feed_operation = client.get_type("FeedOperation", version="v5") # Create a new feed. feed = feed_operation.create - feed.name.value = 'DSA Feed #{}'.format(uuid.uuid4()) - feed.origin = client.get_type('FeedOriginEnum', version='v4').USER + feed.name.value = "DSA Feed #{}".format(uuid.uuid4()) + feed.origin = client.get_type("FeedOriginEnum", version="v5").USER - feed_attribute_type_enum = client.get_type('FeedAttributeTypeEnum', - version='v4') + feed_attribute_type_enum = client.get_type( + "FeedAttributeTypeEnum", version="v5" + ) # Create the feed's attributes. - feed_attribute_url = feed.attributes.add() + feed_attribute_url = client.get_type("FeedAttribute", version="v5") feed_attribute_url.type = feed_attribute_type_enum.URL_LIST - feed_attribute_url.name.value = 'Page URL' + feed_attribute_url.name.value = "Page URL" + feed.attributes.append(feed_attribute_url) - feed_attribute_label = feed.attributes.add() + feed_attribute_label = client.get_type("FeedAttribute", version="v5") feed_attribute_label.type = feed_attribute_type_enum.STRING_LIST - feed_attribute_label.name.value = 'Label' + feed_attribute_label.name.value = "Label" + feed.attributes.append(feed_attribute_label) # Retrieve the feed service. - feed_service = client.get_service('FeedService', version='v4') + feed_service = client.get_service("FeedService", version="v5") # Send the feed operation and add the feed. response = feed_service.mutate_feeds(customer_id, [feed_operation]) @@ -132,7 +141,7 @@ def get_feed_details(client, customer_id, resource_name): A FeedDetails instance with information about the feed that was retrieved in the search request. """ - query = ''' + query = """ SELECT feed.attributes FROM @@ -140,9 +149,11 @@ def get_feed_details(client, customer_id, resource_name): WHERE feed.resource_name = "{}" LIMIT 1 - '''.format(resource_name) + """.format( + resource_name + ) - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") response = ga_service.search(customer_id, query=query) # Maps specific fields in each row in the response to a dict. This would @@ -150,11 +161,13 @@ def get_feed_details(client, customer_id, resource_name): # only one row will be returned. for row in response: attribute_lookup = { - attribute.name.value: - attribute.id.value for attribute in row.feed.attributes} + attribute.name.value: attribute.id.value + for attribute in row.feed.attributes + } - return FeedDetails(resource_name, attribute_lookup['Page URL'], - attribute_lookup['Label']) + return FeedDetails( + resource_name, attribute_lookup["Page URL"], attribute_lookup["Label"] + ) def create_feed_mapping(client, customer_id, feed_details): @@ -166,35 +179,43 @@ def create_feed_mapping(client, customer_id, feed_details): feed_details: a FeedDetails instance with feed attribute information """ # Retrieve a new feed mapping operation object. - feed_mapping_operation = client.get_type('FeedMappingOperation', - version='v4') + feed_mapping_operation = client.get_type( + "FeedMappingOperation", version="v5" + ) # Create a new feed mapping. feed_mapping = feed_mapping_operation.create feed_mapping.criterion_type = client.get_type( - 'FeedMappingCriterionTypeEnum', version='v4').DSA_PAGE_FEED + "FeedMappingCriterionTypeEnum", version="v5" + ).DSA_PAGE_FEED feed_mapping.feed.value = feed_details.resource_name - dsa_page_feed_field_enum = client.get_type('DsaPageFeedCriterionFieldEnum', - version='v4') + dsa_page_feed_field_enum = client.get_type( + "DsaPageFeedCriterionFieldEnum", version="v5" + ) - url_field_mapping = feed_mapping.attribute_field_mappings.add() + url_field_mapping = client.get_type("AttributeFieldMapping", version="v5") url_field_mapping.feed_attribute_id.value = feed_details.url_attribute_id url_field_mapping.dsa_page_feed_field = dsa_page_feed_field_enum.PAGE_URL + feed_mapping.attribute_field_mappings.append(url_field_mapping) - label_field_mapping = feed_mapping.attribute_field_mappings.add() + label_field_mapping = client.get_type("AttributeFieldMapping", version="v5") label_field_mapping.feed_attribute_id.value = ( - feed_details.label_attribute_id) + feed_details.label_attribute_id + ) label_field_mapping.dsa_page_feed_field = dsa_page_feed_field_enum.LABEL + feed_mapping.attribute_field_mappings.append(label_field_mapping) # Retrieve the feed mapping service. - feed_mapping_service = client.get_service('FeedMappingService', - version='v4') + feed_mapping_service = client.get_service( + "FeedMappingService", version="v5" + ) # Submit the feed mapping operation and add the feed mapping. response = feed_mapping_service.mutate_feed_mappings( - customer_id, [feed_mapping_operation]) + customer_id, [feed_mapping_operation] + ) resource_name = response.results[0].resource_name # Display the results. - print('Feed mapping created with resource_name: # {}'.format(resource_name)) + print("Feed mapping created with resource_name: # {}".format(resource_name)) def create_feed_items(client, customer_id, feed_details, label): @@ -208,26 +229,38 @@ def create_feed_items(client, customer_id, feed_details, label): """ # See https://support.google.com/adwords/answer/7166527 for page feed URL # recommendations and rules. - urls = ["http://www.example.com/discounts/rental-cars", + urls = [ + "http://www.example.com/discounts/rental-cars", "http://www.example.com/discounts/hotel-deals", - "http://www.example.com/discounts/flight-deals"] + "http://www.example.com/discounts/flight-deals", + ] def map_feed_urls(url): - feed_item_operation = client.get_type('FeedItemOperation', version='v4') + feed_item_operation = client.get_type("FeedItemOperation", version="v5") feed_item = feed_item_operation.create feed_item.feed.value = feed_details.resource_name - url_attribute_value = feed_item.attribute_values.add() + url_attribute_value = client.get_type( + "FeedItemAttributeValue", version="v5" + ) url_attribute_value.feed_attribute_id.value = ( - feed_details.url_attribute_id) - url_string_val = url_attribute_value.string_values.add() + feed_details.url_attribute_id + ) + url_string_val = client.get_type("StringValue", version="v5") url_string_val.value = url + url_attribute_value.string_values.append(url_string_val) + feed_item.attribute_values.append(url_attribute_value) - label_attribute_value = feed_item.attribute_values.add() + label_attribute_value = client.get_type( + "FeedItemAttributeValue", version="v5" + ) label_attribute_value.feed_attribute_id.value = ( - feed_details.label_attribute_id) - label_string_val = label_attribute_value.string_values.add() + feed_details.label_attribute_id + ) + label_string_val = client.get_type("StringValue", version="v5") label_string_val.value = label + label_attribute_value.string_values.append(label_string_val) + feed_item.attribute_values.append(label_attribute_value) return feed_item_operation @@ -235,15 +268,19 @@ def map_feed_urls(url): feed_item_operations = list(map(map_feed_urls, urls)) # Retrieve the feed item service. - feed_item_service = client.get_service('FeedItemService', version='v4') + feed_item_service = client.get_service("FeedItemService", version="v5") # Submit the feed item operations and add the feed items. - response = feed_item_service.mutate_feed_items(customer_id, - feed_item_operations) + response = feed_item_service.mutate_feed_items( + customer_id, feed_item_operations + ) # Display the results. for feed_item in response.results: - print('Created feed item with resource_name: # {}'.format( - feed_item.resource_name)) + print( + "Created feed item with resource_name: # {}".format( + feed_item.resource_name + ) + ) def update_campaign_dsa_setting(client, customer_id, campaign_id, feed_details): @@ -255,53 +292,73 @@ def update_campaign_dsa_setting(client, customer_id, campaign_id, feed_details): campaign_id: a campaign ID str; feed_details: a FeedDetails instance with feed attribute information. """ - query = ''' + query = """ SELECT - campaign.id, - campaign.name, - campaign.dynamic_search_ads_setting.domain_name + campaign.id, + campaign.name, + campaign.dynamic_search_ads_setting.domain_name, + campaign.dynamic_search_ads_setting.language_code, + campaign.dynamic_search_ads_setting.use_supplied_urls_only FROM - campaign + campaign WHERE - campaign.id = {} + campaign.id = {} LIMIT 1 - '''.format(campaign_id) + """.format( + campaign_id + ) - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") results = ga_service.search(customer_id, query=query) + campaign = None for row in results: campaign = row.campaign if not campaign: - raise ValueError('Campaign with id #{} not found'.format(campaign_id)) + raise ValueError("Campaign with id #{} not found".format(campaign_id)) if not campaign.dynamic_search_ads_setting.domain_name: raise ValueError( - 'Campaign id #{} is not set up for Dynamic Search Ads.'.format( - campaign_id)) + "Campaign id #{} is not set up for Dynamic Search Ads.".format( + campaign_id + ) + ) # Retrieve a new campaign operation - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") # Copy the retrieved campaign onto the new campaign operation. campaign_operation.update.CopyFrom(campaign) updated_campaign = campaign_operation.update - feed = updated_campaign.dynamic_search_ads_setting.feeds.add() # Use a page feed to specify precisely which URLs to use with your Dynamic # Search ads. - feed.value = feed_details.resource_name - field_mask = protobuf_helpers.field_mask(campaign, updated_campaign) + updated_campaign.dynamic_search_ads_setting.feeds.append( + feed_details.resource_name + ) + # Normally we would pass in "campaign" as the first parameter to generate + # a field mask that represents the difference between the original campaign + # object and the updated one, which would be a list containing + # "resource_name" and "dynamic_search_ads_setting.feeds." + + # However, for DSA campaigns, the API currently requires "domain_name" and + # "language_code" fields to be present in the update request, regardless of + # whether they are being updated or not. This behavior is not consistent + # with the rest of the API. As a workaround, we pass None instead, to + # generate a field mask that contains these two fields, even though they are + # not being explicitly changed. + field_mask = protobuf_helpers.field_mask(None, updated_campaign) campaign_operation.update_mask.CopyFrom(field_mask) # Retrieve the campaign service. - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Submit the campaign operation and update the campaign. - response = campaign_service.mutate_campaigns(customer_id, - [campaign_operation]) + response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation] + ) resource_name = response.results[0].resource_name # Display the results. - print('Updated campaign #{}'.format(resource_name)) + print("Updated campaign #{}".format(resource_name)) def add_dsa_targeting(client, customer_id, ad_group_resource_name, label): @@ -315,47 +372,64 @@ def add_dsa_targeting(client, customer_id, ad_group_resource_name, label): """ # Retrieve a new ad group criterion operation object. ad_group_criterion_operation = client.get_type( - 'AdGroupCriterionOperation', version='v4') + "AdGroupCriterionOperation", version="v5" + ) # Create a new ad group criterion. ad_group_criterion = ad_group_criterion_operation.create - ad_group_criterion.ad_group.value = ad_group_resource_name + ad_group_criterion.ad_group = ad_group_resource_name # Set the custom bid for this criterion. - ad_group_criterion.cpc_bid_micros.value = 1500000 - ad_group_criterion.webpage.criterion_name.value = 'Test criterion' + ad_group_criterion.cpc_bid_micros = 1500000 + ad_group_criterion.webpage.criterion_name = "Test criterion" # Add a condition for label=specified_label_name webpage_criterion_info = ad_group_criterion.webpage.conditions.add() - webpage_criterion_info.argument.value = label + webpage_criterion_info.argument = label webpage_criterion_info.operand = client.get_type( - 'WebpageConditionOperandEnum', version='v4').CUSTOM_LABEL + "WebpageConditionOperandEnum", version="v5" + ).CUSTOM_LABEL # Retrieve the ad group criterion service. - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) response = ad_group_criterion_service.mutate_ad_group_criteria( - customer_id, [ad_group_criterion_operation]) + customer_id, [ad_group_criterion_operation] + ) resource_name = response.results[0].resource_name # Display the results. - print('Created ad group criterion with resource_name: # {}'.format( - resource_name)) + print( + "Created ad group criterion with resource_name: # {}".format( + resource_name + ) + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description= ('Adds a page feed with URLs for a Dynamic Search Ads ' - 'Campaign.')) + description=( + "Adds a page feed with URLs for a Dynamic Search Ads " "Campaign." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - args.ad_group_id) + main( + google_ads_client, args.customer_id, args.campaign_id, args.ad_group_id + ) diff --git a/examples/advanced_operations/add_dynamic_search_ads.py b/examples/advanced_operations/add_dynamic_search_ads.py index 6c1d3d811..7e82e0cc8 100755 --- a/examples/advanced_operations/add_dynamic_search_ads.py +++ b/examples/advanced_operations/add_dynamic_search_ads.py @@ -36,20 +36,24 @@ def main(client, customer_id): """ try: budget_resource_name = create_budget(client, customer_id) - campaign_resource_name = create_campaign(client, customer_id, - budget_resource_name) - ad_group_resource_name = create_ad_group(client, customer_id, - campaign_resource_name) + campaign_resource_name = create_campaign( + client, customer_id, budget_resource_name + ) + ad_group_resource_name = create_ad_group( + client, customer_id, campaign_resource_name + ) create_expanded_dsa(client, customer_id, ad_group_resource_name) add_webpage_criterion(client, customer_id, ad_group_resource_name) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) @@ -64,21 +68,25 @@ def create_budget(client, customer_id): A resource_name str for the newly created Budget. """ # Creates a campaign budget operation. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) # Issues a mutate request to add campaign budgets. campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = f'Interplanetary Cruise #{uuid4()}' - campaign_budget.amount_micros.value = 50000000 + campaign_budget.name = f"Interplanetary Cruise #{uuid4()}" + campaign_budget.amount_micros = 50000000 campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', version='v4').STANDARD + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD # Retrieve the campaign budget service. - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) # Submit the campaign budget operation to add the campaign budget. response = campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation]) + customer_id, [campaign_budget_operation] + ) resource_name = response.results[0].resource_name print(f'Created campaign budget with resource_name: "{resource_name}"') @@ -98,34 +106,36 @@ def create_campaign(client, customer_id, budget_resource_name): A resource_name str for the newly created Campaign. """ # Retrieve a new campaign operation object. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = f'Interplanetary Cruise #{uuid4()}' + campaign.name = f"Interplanetary Cruise #{uuid4()}" campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to prevent the # ads from immediately serving. Set to ENABLED once you've added targeting # and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', - version='v4').PAUSED - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = budget_resource_name + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = budget_resource_name # Required: Enable the campaign for DSAs by setting the campaign's dynamic # search ads setting domain name and language. - campaign.dynamic_search_ads_setting.domain_name.value = 'example.com' - campaign.dynamic_search_ads_setting.language_code.value = 'en' + campaign.dynamic_search_ads_setting.domain_name = "example.com" + campaign.dynamic_search_ads_setting.language_code = "en" # Optional: Sets the start and end dates for the campaign, beginning one day # from now and ending a month from now. - campaign.start_date.value = datetime.now().strftime('%Y%m%d') - campaign.end_date.value = ( - datetime.now() + timedelta(days=365)).strftime('%Y%m%d') + campaign.start_date = (datetime.now() + timedelta(days=1)).strftime( + "%Y%m%d" + ) + campaign.end_date = (datetime.now() + timedelta(days=30)).strftime("%Y%m%d") # Retrieve the campaign service. - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Issues a mutate request to add campaign. response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) resource_name = response.results[0].resource_name print(f'Created campaign with resource_name: "{resource_name}"') @@ -145,28 +155,31 @@ def create_ad_group(client, customer_id, campaign_resource_name): A resource_name str for the newly created Ad Group. """ # Retrieve a new ad group operation object. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") # Create an ad group. ad_group = ad_group_operation.create # Required: set the ad group's type to Dynamic Search Ads. - ad_group.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_DYNAMIC_ADS - ad_group.name.value = f'Earth to Mars Cruises {uuid4()}' - ad_group.campaign.value = campaign_resource_name - ad_group.status = client.get_type('AdGroupStatusEnum', version='v4').PAUSED + ad_group.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_DYNAMIC_ADS + ad_group.name = f"Earth to Mars Cruises {uuid4()}" + ad_group.campaign = campaign_resource_name + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").PAUSED # Recommended: set a tracking URL template for your ad group if you want to # use URL tracking software. - ad_group.tracking_url_template.value = ( - 'http://tracker.example.com/traveltracker/{escapedlpurl}') + ad_group.tracking_url_template = ( + "http://tracker.example.com/traveltracker/{escapedlpurl}" + ) # Optional: Set the ad group bid value. - ad_group.cpc_bid_micros.value = 10000000 + ad_group.cpc_bid_micros = 10000000 # Retrieve the ad group service. - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") # Issues a mutate request to add the ad group. - response = ad_group_service.mutate_ad_groups(customer_id, - [ad_group_operation]) + response = ad_group_service.mutate_ad_groups( + customer_id, [ad_group_operation] + ) resource_name = response.results[0].resource_name print(f'Created Ad Group with resource_name: "{resource_name}"') @@ -183,25 +196,26 @@ def create_expanded_dsa(client, customer_id, ad_group_resource_name): ad_group_resource_name: a resource_name str for an Ad Group. """ # Retrieve a new ad group ad operation object. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") # Create and expanded dynamic search ad. This ad will have its headline, # display URL and final URL auto-generated at serving time according to # domain name specific information provided by DynamicSearchAdSetting at # the campaign level. ad_group_ad = ad_group_ad_operation.create # Optional: set the ad status. - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED # Set the ad description. - ad_group_ad.ad.expanded_dynamic_search_ad.description.value = ( - 'Buy tickets now!') - ad_group_ad.ad_group.value = ad_group_resource_name + ad_group_ad.ad.expanded_dynamic_search_ad.description = "Buy tickets now!" + ad_group_ad.ad_group = ad_group_resource_name # Retrieve the ad group ad service. - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") # Submit the ad group ad operation to add the ad group ad. - response = ad_group_ad_service.mutate_ad_group_ads(customer_id, - [ad_group_ad_operation]) + response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation] + ) resource_name = response.results[0].resource_name print(f'Created Ad Group Ad with resource_name: "{resource_name}"') @@ -217,49 +231,67 @@ def add_webpage_criterion(client, customer_id, ad_group_resource_name): """ # Retrieve a new ad group criterion operation. ad_group_criterion_operation = client.get_type( - 'AdGroupCriterionOperation', version='v4') + "AdGroupCriterionOperation", version="v5" + ) # Create an ad group criterion for special offers for Mars Cruise. criterion = ad_group_criterion_operation.create - criterion.ad_group.value = ad_group_resource_name + criterion.ad_group = ad_group_resource_name # Optional: set custom bid amount. - criterion.cpc_bid_micros.value = 10000000 + criterion.cpc_bid_micros = 10000000 # Optional: set the status. criterion.status = client.get_type( - 'AdGroupCriterionStatusEnum', version='v4').PAUSED + "AdGroupCriterionStatusEnum", version="v5" + ).PAUSED # Sets the criterion to match a specific page URL and title. - criterion.webpage.criterion_name.value = 'Special Offers' - webpage_info_url = criterion.webpage.conditions.add() + criterion.webpage.criterion_name = "Special Offers" + webpage_info_url = client.get_type("WebpageConditionInfo", version="v5") webpage_info_url.operand = client.get_type( - 'WebpageConditionOperandEnum', version='v4').URL - webpage_info_url.argument.value = '/specialoffers' - webpage_info_page_title = criterion.webpage.conditions.add() + "WebpageConditionOperandEnum", version="v5" + ).URL + webpage_info_url.argument = "/specialoffers" + criterion.webpage.conditions.append(webpage_info_url) + + webpage_info_page_title = client.get_type( + "WebpageConditionInfo", version="v5" + ) webpage_info_page_title.operand = client.get_type( - 'WebpageConditionOperandEnum', version='v4').PAGE_TITLE - webpage_info_page_title.argument.value = 'Special Offer' + "WebpageConditionOperandEnum", version="v5" + ).PAGE_TITLE + webpage_info_page_title.argument = "Special Offer" + criterion.webpage.conditions.append(webpage_info_page_title) # Retrieve the ad group criterion service. - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) # Issues a mutate request to add the ad group criterion. response = ad_group_criterion_service.mutate_ad_group_criteria( - customer_id, [ad_group_criterion_operation]) + customer_id, [ad_group_criterion_operation] + ) resource_name = response.results[0].resource_name print(f'Created Ad Group Criterion with resource_name: "{resource_name}"') -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( description=( - 'Adds a dynamic search ad under the specified customer ID.')) + "Adds a dynamic search ad under the specified customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py b/examples/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py index ff00ad640..9f9e38d6f 100755 --- a/examples/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py +++ b/examples/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py @@ -22,88 +22,110 @@ def main(client, customer_id, ad_group_id): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_service = client.get_service("AdGroupService", version="v5") # Create ad group ad. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create - ad_group_ad.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED + ad_group_ad.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED # Set expanded text ad info - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com/cruise/space/' - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com/locations/mars/' - - ad_group_ad.ad.expanded_text_ad.description.value = ( - 'Low-gravity fun for everyone!') - ad_group_ad.ad.expanded_text_ad.headline_part1.value = ( - 'Luxury cruise to Mars') - ad_group_ad.ad.expanded_text_ad.headline_part2.value = ( - 'Visit the Red Planet in Style.') + ad_group_ad.ad.final_urls.extend( + [ + "http://www.example.com/cruise/space/", + "http://www.example.com/locations/mars/", + ] + ) + + ad_group_ad.ad.expanded_text_ad.description = ( + "Low-gravity fun for everyone!" + ) + ad_group_ad.ad.expanded_text_ad.headline_part1 = "Luxury cruise to Mars" + ad_group_ad.ad.expanded_text_ad.headline_part2 = ( + "Visit the Red Planet in Style." + ) # Specify a tracking URL for 3rd party tracking provider. You may specify # one at customer, campaign, ad group, ad, criterion, or feed item levels. - ad_group_ad.ad.tracking_url_template.value = ( - 'http://tracker.example.com/?season={_season}&promocode={_promocode}&' - 'u={lpurl}' + ad_group_ad.ad.tracking_url_template = ( + "http://tracker.example.com/?season={_season}&promocode={_promocode}&" + "u={lpurl}" ) # Since your tracking URL has two custom parameters, provide their values # too. This can be provided at campaign, ad group, ad, criterion, or feed # item levels. param_1 = ad_group_ad.ad.url_custom_parameters.add() - param_1.key.value = 'season' - param_1.value.value = 'easter123' + param_1.key = "season" + param_1.value = "easter123" param_2 = ad_group_ad.ad.url_custom_parameters.add() - param_2.key.value = 'promocode' - param_2.value.value = 'nj123' + param_2.key = "promocode" + param_2.value = "nj123" # Specify a list of final mobile URLs. This field cannot be set if URL field # is set, or finalUrls is unset. This may be specified at ad, criterion, and # feed item levels. - final_mobile_url = ad_group_ad.ad.final_mobile_urls.add() - final_mobile_url.value = 'http://mobile.example.com/cruise/space/' - final_mobile_url = ad_group_ad.ad.final_mobile_urls.add() - final_mobile_url.value = 'http://mobile.example.com/locations/mars/' + ad_group_ad.ad.final_mobile_urls.extend( + [ + "http://mobile.example.com/cruise/space/", + "http://mobile.example.com/locations/mars/", + ] + ) # Add the ad group ad. try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created expanded text ad %s.' - % ad_group_ad_response.results[0].resource_name) + print( + "Created expanded text ad %s." + % ad_group_ad_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds an expanded text ad to the specified ad group ID, ' - 'for the given customer ID.')) + description=( + "Adds an expanded text ad to the specified ad group ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/advanced_operations/add_gmail_ad.py b/examples/advanced_operations/add_gmail_ad.py index 4d09c64a9..4d7c82f03 100755 --- a/examples/advanced_operations/add_gmail_ad.py +++ b/examples/advanced_operations/add_gmail_ad.py @@ -27,81 +27,91 @@ from google.ads.google_ads.client import GoogleAdsClient from google.ads.google_ads.errors import GoogleAdsException -LOGO_URL = 'https://goo.gl/mtt54n' -MARKETING_IMG_URL = 'http://goo.gl/3b9Wfh' +LOGO_URL = "https://goo.gl/mtt54n" +MARKETING_IMG_URL = "http://goo.gl/3b9Wfh" def main(client, customer_id, ad_group_id): logo_img_bytes, logo_img_content_type = get_image(LOGO_URL) marketing_img_bytes, marketing_img_content_type = get_image( - MARKETING_IMG_URL) + MARKETING_IMG_URL + ) - if logo_img_content_type != 'image/png': - raise ValueError('Logo image has invalid content-type.') + if logo_img_content_type != "image/png": + raise ValueError("Logo image has invalid content-type.") - if marketing_img_content_type != 'image/jpeg': - raise ValueError('Marketing image has invalid content-type.') + if marketing_img_content_type != "image/jpeg": + raise ValueError("Marketing image has invalid content-type.") - media_file_logo_op = client.get_type('MediaFileOperation', version='v4') + media_file_logo_op = client.get_type("MediaFileOperation", version="v5") media_file_logo = media_file_logo_op.create - media_file_logo.type = client.get_type('MediaTypeEnum', version='v4').IMAGE - media_file_logo.image.data.value = logo_img_bytes - media_file_logo.mime_type = client.get_type('MimeTypeEnum', - version='v4').IMAGE_PNG - - media_file_marketing_op = client.get_type('MediaFileOperation', - version='v4') + media_file_logo.type = client.get_type("MediaTypeEnum", version="v5").IMAGE + media_file_logo.image.data = logo_img_bytes + media_file_logo.mime_type = client.get_type( + "MimeTypeEnum", version="v5" + ).IMAGE_PNG + + media_file_marketing_op = client.get_type( + "MediaFileOperation", version="v5" + ) media_file_marketing = media_file_marketing_op.create - media_file_marketing.type = client.get_type('MediaTypeEnum', - version='v4').IMAGE - media_file_marketing.image.data.value = marketing_img_bytes - media_file_marketing.mime_type = client.get_type('MimeTypeEnum', - version='v4').IMAGE_JPEG - - media_file_service = client.get_service('MediaFileService', - version='v4') + media_file_marketing.type = client.get_type( + "MediaTypeEnum", version="v5" + ).IMAGE + media_file_marketing.image.data = marketing_img_bytes + media_file_marketing.mime_type = client.get_type( + "MimeTypeEnum", version="v5" + ).IMAGE_JPEG + + media_file_service = client.get_service("MediaFileService", version="v5") image_response = media_file_service.mutate_media_files( - customer_id, [media_file_logo_op, media_file_marketing_op]) + customer_id, [media_file_logo_op, media_file_marketing_op] + ) - image_resource_names = list(map(lambda response: response.resource_name, - image_response.results)) + image_resource_names = list( + map(lambda response: response.resource_name, image_response.results) + ) - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_ad_op = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_ad_op = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_op.create gmail_ad = ad_group_ad.ad.gmail_ad - gmail_ad.teaser.headline.value = 'Dream' - gmail_ad.teaser.description.value = 'Create your own adventure.' - gmail_ad.teaser.business_name.value = 'Interplanetary Ships' - gmail_ad.teaser.logo_image.value = image_resource_names[0] - gmail_ad.marketing_image.value = image_resource_names[1] - gmail_ad.marketing_image_headline.value = 'Travel' - gmail_ad.marketing_image_description.value = 'Take to the skies!' - - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com' - ad_group_ad.ad.name.value = 'Gmail Ad #{}'.format(str(uuid4())) - - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED - ad_group_ad.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + gmail_ad.teaser.headline = "Dream" + gmail_ad.teaser.description = "Create your own adventure." + gmail_ad.teaser.business_name = "Interplanetary Ships" + gmail_ad.teaser.logo_image = image_resource_names[0] + gmail_ad.marketing_image = image_resource_names[1] + gmail_ad.marketing_image_headline = "Travel" + gmail_ad.marketing_image_description = "Take to the skies!" + + ad_group_ad.ad.final_urls.append("http://www.example.com") + ad_group_ad.ad.name = "Gmail Ad #{}".format(str(uuid4())) + + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + ad_group_ad.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) try: add_gmail_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_op]) + customer_id, [ad_group_ad_op] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print(f'Created gmail ad {add_gmail_ad_response.results[0].resource_name}.') + print(f"Created gmail ad {add_gmail_ad_response.results[0].resource_name}.") def get_image(url): @@ -115,22 +125,31 @@ def get_image(url): """ response = requests.get(url) headers = response.headers - return response.content, headers['content-type'] + return response.content, headers["content-type"] -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds a gmail ad to the specified ad group ID, ' - 'for the given customer ID.')) + description=( + "Adds a gmail ad to the specified ad group ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/advanced_operations/add_sitelink.py b/examples/advanced_operations/add_sitelink.py index e6f0d8425..25df175f4 100755 --- a/examples/advanced_operations/add_sitelink.py +++ b/examples/advanced_operations/add_sitelink.py @@ -24,44 +24,54 @@ def main(client, customer_id): # Create an extension setting. - feed_service = client.get_service('ExtensionFeedItemService', version='v4') + feed_service = client.get_service("ExtensionFeedItemService", version="v5") - extension_feed_item_operation = client.get_type('ExtensionFeedItemOperation', version='v4') + extension_feed_item_operation = client.get_type( + "ExtensionFeedItemOperation", version="v5" + ) extension_feed_item = extension_feed_item_operation.create - extension_feed_item.sitelink_feed_item.link_text.value = 'Text' - extension_feed_item.sitelink_feed_item.line1.value = 'Line 1 Value' - extension_feed_item.sitelink_feed_item.line2.value = 'Line 2 Value' + extension_feed_item.sitelink_feed_item.link_text.value = "Text" + extension_feed_item.sitelink_feed_item.line1.value = "Line 1 Value" + extension_feed_item.sitelink_feed_item.line2.value = "Line 2 Value" final_url = extension_feed_item.sitelink_feed_item.final_urls.add() - final_url.value = 'www.example.com' + final_url.value = "www.example.com" # Add extension try: - feed_response = ( - feed_service.mutate_extension_feed_items(customer_id, [extension_feed_item_operation]) + feed_response = feed_service.mutate_extension_feed_items( + customer_id, [extension_feed_item_operation] ) except GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created Sitelink %s.' % feed_response.results[0].resource_name) + print("Created Sitelink %s." % feed_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Creates sitelink for the specified customer id') + description="Creates sitelink for the specified customer id" + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id) \ No newline at end of file + main(google_ads_client, args.customer_id) diff --git a/examples/advanced_operations/add_smart_display_ad.py b/examples/advanced_operations/add_smart_display_ad.py index 18bb5fb30..6a1731e06 100755 --- a/examples/advanced_operations/add_smart_display_ad.py +++ b/examples/advanced_operations/add_smart_display_ad.py @@ -31,266 +31,320 @@ import argparse import datetime +import requests import sys from uuid import uuid4 -import google.ads.google_ads.client -import requests +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException -_DATE_FORMAT = '%Y%m%d' -_MARKETING_IMAGE_URL = 'https://goo.gl/3b9Wfh' +_DATE_FORMAT = "%Y%m%d" +_MARKETING_IMAGE_URL = "https://goo.gl/3b9Wfh" _MARKETING_IMAGE_WIDTH = 600 _MARKETING_IMAGE_HEIGHT = 315 -_SQUARE_MARKETING_IMAGE_URL = 'https://goo.gl/mtt54n' +_SQUARE_MARKETING_IMAGE_URL = "https://goo.gl/mtt54n" _SQUARE_MARKETING_IMAGE_SIZE = 512 -def main(client, customer_id, marketing_image_asset_resource_name=None, - square_marketing_image_asset_resource_name=None): +def main( + client, + customer_id, + marketing_image_asset_id=None, + square_marketing_image_asset_id=None, +): budget_resource_name = _create_budget(client, customer_id) print(f'Created budget with resource name "{budget_resource_name}".') campaign_resource_name = _create_smart_display_campaign( - client, customer_id, budget_resource_name) - print('Created smart display campaign with resource name ' - f'"{campaign_resource_name}".') + client, customer_id, budget_resource_name + ) + print( + "Created smart display campaign with resource name " + f'"{campaign_resource_name}".' + ) ad_group_resource_name = _create_ad_group( - client, customer_id, campaign_resource_name) + client, customer_id, campaign_resource_name + ) print(f'Created ad group with resource name "{ad_group_resource_name}"') - if marketing_image_asset_resource_name: - print('Using existing marketing image asset with resource name ' - f'"{marketing_image_asset_resource_name}".') + if marketing_image_asset_id: + print( + "Using existing marketing image asset with resource name " + f'"{marketing_image_asset_id}".' + ) else: - marketing_image_asset_resource_name = _upload_image_asset( - client, customer_id, _MARKETING_IMAGE_URL, _MARKETING_IMAGE_WIDTH, - _MARKETING_IMAGE_HEIGHT) - print('Created marketing image asset with resource name ' - f'"{marketing_image_asset_resource_name}".') - - if square_marketing_image_asset_resource_name: - print('Using existing square marketing image asset with resource name ' - f'"{square_marketing_image_asset_resource_name}".') + marketing_image_asset_id = _upload_image_asset( + client, + customer_id, + _MARKETING_IMAGE_URL, + _MARKETING_IMAGE_WIDTH, + _MARKETING_IMAGE_HEIGHT, + ) + print( + "Created marketing image asset with resource name " + f'"{marketing_image_asset_id}".' + ) + + if square_marketing_image_asset_id: + print( + "Using existing square marketing image asset with resource name " + f'"{square_marketing_image_asset_id}".' + ) else: - square_marketing_image_asset_resource_name = _upload_image_asset( - client, customer_id, _SQUARE_MARKETING_IMAGE_URL, - _SQUARE_MARKETING_IMAGE_SIZE, _SQUARE_MARKETING_IMAGE_SIZE) - print('Created square marketing image asset with resource name ' - f'"{square_marketing_image_asset_resource_name}".') + square_marketing_image_asset_id = _upload_image_asset( + client, + customer_id, + _SQUARE_MARKETING_IMAGE_URL, + _SQUARE_MARKETING_IMAGE_SIZE, + _SQUARE_MARKETING_IMAGE_SIZE, + ) + print( + "Created square marketing image asset with resource name " + f'"{square_marketing_image_asset_id}".' + ) responsive_display_ad_resource_name = _create_responsive_display_ad( - client, customer_id, ad_group_resource_name, - marketing_image_asset_resource_name, - square_marketing_image_asset_resource_name) - print('Created responsive display ad with resource name ' - f'"{responsive_display_ad_resource_name}".') + client, + customer_id, + ad_group_resource_name, + marketing_image_asset_id, + square_marketing_image_asset_id, + ) + + print( + "Created responsive display ad with resource name " + f'"{responsive_display_ad_resource_name}".' + ) def _create_budget(client, customer_id): campaign_budget_operation = client.get_type( - 'CampaignBudgetOperation', version='v4') + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = f'Interplanetary Cruise Budget #{uuid4()}' + campaign_budget.name = f"Interplanetary Cruise Budget #{uuid4()}" campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum').STANDARD - campaign_budget.amount_micros.value = 500000 + "BudgetDeliveryMethodEnum" + ).STANDARD + campaign_budget.amount_micros = 500000 campaign_budget_service = client.get_service( - 'CampaignBudgetService', version='v4') + "CampaignBudgetService", version="v5" + ) try: - campaign_budget_response = ( - campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation])) - except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') - for error in ex.failure.errors: - print(f'\tError with message "{error.message}".') - if error.location: - for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) - - return campaign_budget_response.results[0].resource_name + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) + return campaign_budget_response.results[0].resource_name + except GoogleAdsException as ex: + _handle_google_ads_exception(ex) def _create_smart_display_campaign(client, customer_id, budget_resource_name): - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = f'Smart Display Campaign #{uuid4()}' + campaign.name = f"Smart Display Campaign #{uuid4()}" advertising_channel_type_enum = client.get_type( - 'AdvertisingChannelTypeEnum', version='v4') + "AdvertisingChannelTypeEnum", version="v5" + ) campaign.advertising_channel_type = advertising_channel_type_enum.DISPLAY advertising_channel_sub_type_enum = client.get_type( - 'AdvertisingChannelSubTypeEnum', version='v4') + "AdvertisingChannelSubTypeEnum", version="v5" + ) # Smart Display campaign requires the advertising_channel_sub_type as # "DISPLAY_SMART_CAMPAIGN". campaign.advertising_channel_sub_type = ( - advertising_channel_sub_type_enum.DISPLAY_SMART_CAMPAIGN) - campaign_status_enum = client.get_type('CampaignStatusEnum', version='v4') + advertising_channel_sub_type_enum.DISPLAY_SMART_CAMPAIGN + ) + campaign_status_enum = client.get_type("CampaignStatusEnum", version="v5") campaign.status = campaign_status_enum.PAUSED # Smart Display campaign requires the TargetCpa bidding strategy. - campaign.target_cpa.target_cpa_micros.value = 5000000 - campaign.campaign_budget.value = budget_resource_name + campaign.target_cpa.target_cpa_micros = 5000000 + campaign.campaign_budget = budget_resource_name # Optional: Set the start and end date. start_date = datetime.date.today() + datetime.timedelta(days=1) - campaign.start_date.value = start_date.strftime(_DATE_FORMAT) + campaign.start_date = start_date.strftime(_DATE_FORMAT) end_date = start_date + datetime.timedelta(days=365) - campaign.end_date.value = end_date.strftime(_DATE_FORMAT) + campaign.end_date = end_date.strftime(_DATE_FORMAT) - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) - except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') - for error in ex.failure.errors: - print(f'\tError with message "{error.message}".') - if error.location: - for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) - - return campaign_response.results[0].resource_name + customer_id, [campaign_operation] + ) + return campaign_response.results[0].resource_name + except GoogleAdsException as ex: + _handle_google_ads_exception(ex) def _create_ad_group(client, customer_id, campaign_resource_name): - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.create - ad_group.name.value = f'Earth to Mars Cruises #{uuid4()}' - ad_group_status_enum = client.get_type('AdGroupStatusEnum', version='v4') + ad_group.name = f"Earth to Mars Cruises #{uuid4()}" + ad_group_status_enum = client.get_type("AdGroupStatusEnum", version="v5") ad_group.status = ad_group_status_enum.PAUSED - ad_group.campaign.value = campaign_resource_name + ad_group.campaign = campaign_resource_name - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) - except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') - for error in ex.failure.errors: - print(f'\tError with message "{error.message}".') - if error.location: - for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) - - return ad_group_response.results[0].resource_name - - -def _upload_image_asset(client, customer_id, image_url, image_width, - image_height): + customer_id, [ad_group_operation] + ) + return ad_group_response.results[0].resource_name + except GoogleAdsException as ex: + _handle_google_ads_exception(ex) + + +def _upload_image_asset( + client, customer_id, image_url, image_width, image_height +): # Download image from URL image_content = requests.get(image_url).content - asset_operation = client.get_type('AssetOperation', version='v4') + asset_operation = client.get_type("AssetOperation", version="v5") asset = asset_operation.create # Optional: Provide a unique friendly name to identify your asset. If you # specify the name field, then both the asset name and the image being # uploaded should be unique, and should not match another ACTIVE asset in # this customer account. - # asset.name.value = f'Jupiter Trip #{uuid4()}' - asset_type_enum = client.get_type('AssetTypeEnum', version='v4') + # asset.name = f'Jupiter Trip #{uuid4()}' + asset_type_enum = client.get_type("AssetTypeEnum", version="v5") asset.type = asset_type_enum.IMAGE image_asset = asset.image_asset - image_asset.data.value = image_content - image_asset.file_size.value = len(image_content) - image_asset.mime_type = client.get_type('MimeTypeEnum').IMAGE_JPEG - image_asset.full_size.width_pixels.value = image_width - image_asset.full_size.height_pixels.value = image_height - image_asset.full_size.url.value = image_url + image_asset.data = image_content + image_asset.file_size = len(image_content) + image_asset.mime_type = client.get_type("MimeTypeEnum").IMAGE_JPEG + image_asset.full_size.width_pixels = image_width + image_asset.full_size.height_pixels = image_height + image_asset.full_size.url = image_url - asset_service = client.get_service('AssetService', version='v4') + asset_service = client.get_service("AssetService", version="v5") + content_type_enum = client.get_type("ResponseContentTypeEnum", version="v5") try: - mutate_asset_response = ( - asset_service.mutate_assets(customer_id, [asset_operation])) - return mutate_asset_response.results[0].resource_name - except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') - for error in ex.failure.errors: - print(f'\tError with message "{error.message}".') - if error.location: - for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) - - -def _create_responsive_display_ad(client, customer_id, ad_group_resource_name, - marketing_image_asset_resource_name, - square_marketing_image_asset_resource_name): - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + mutate_asset_response = asset_service.mutate_assets( + customer_id, + [asset_operation], + # Setting this parameter tells the API to return the Asset + # object in the response, allowing us to easily retrieve + # its ID. + response_content_type=content_type_enum.MUTABLE_RESOURCE, + ) + return mutate_asset_response.results[0].asset.id + except GoogleAdsException as ex: + _handle_google_ads_exception(ex) + + +def _create_responsive_display_ad( + client, + customer_id, + ad_group_resource_name, + marketing_image_asset_id, + square_marketing_image_asset_id, +): + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create - ad_group_ad.ad_group.value = ad_group_resource_name + ad_group_ad.ad_group = ad_group_resource_name ad_group_ad.status = client.get_type( - 'AdGroupAdStatusEnum', version='v4').PAUSED + "AdGroupAdStatusEnum", version="v5" + ).PAUSED ad = ad_group_ad.ad - final_url = ad.final_urls.add() - final_url.value = 'https://www.example.com' + ad.final_urls.append("https://www.example.com") responsive_display_ad = ad.responsive_display_ad headline = responsive_display_ad.headlines.add() - headline.text.value = 'Travel' - responsive_display_ad.long_headline.text.value = 'Travel the World' + headline.text = "Travel" + responsive_display_ad.long_headline.text = "Travel the World" description = responsive_display_ad.descriptions.add() - description.text.value = 'Take to the air!' - responsive_display_ad.business_name.value = 'Google' + description.text = "Take to the air!" + responsive_display_ad.business_name = "Google" + + asset_service = client.get_service("AssetService", version="v5") marketing_image = responsive_display_ad.marketing_images.add() - marketing_image.asset.value = marketing_image_asset_resource_name + marketing_image.asset = asset_service.asset_path( + customer_id, marketing_image_asset_id + ) square_marketing_image = responsive_display_ad.square_marketing_images.add() - square_marketing_image.asset.value = ( - square_marketing_image_asset_resource_name) - responsive_display_ad.call_to_action_text.value = 'Shop Now' - responsive_display_ad.price_prefix.value = 'as low as' - responsive_display_ad.promo_text.value = 'Free shipping!' + square_marketing_image.asset = asset_service.asset_path( + customer_id, square_marketing_image_asset_id + ) + responsive_display_ad.call_to_action_text = "Shop Now" + responsive_display_ad.price_prefix = "as low as" + responsive_display_ad.promo_text = "Free shipping!" - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) - except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') - for error in ex.failure.errors: - print(f'\tError with message "{error.message}".') - if error.location: - for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) - - return ad_group_ad_response.results[0].resource_name - - -if __name__ == '__main__': + customer_id, [ad_group_ad_operation] + ) + except GoogleAdsException as ex: + _handle_google_ads_exception(ex) + + +def _handle_google_ads_exception(exception): + """Prints the details of a GoogleAdsException object. + + Args: + exception: an instance of GoogleAdsException. + """ + print( + f'Request with ID "{exception.request_id}" failed with status ' + f'"{exception.error.code().name}" and includes the following errors:' + ) + for error in exception.failure.errors: + print(f'\tError with message "{error.message}".') + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Creates a Smart Display campaign, and an ad group that ' - 'are then used to create a responsive display ad.')) + description=( + "Creates a Smart Display campaign, and an ad group that " + "are then used to create a responsive display ad." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, required=True, - help='The Google Ads customer ID.') parser.add_argument( - '-m', '--marketing_image_resource_name', type=str, required=False, - help=('The resource name for an image asset to be used as a marketing ' - 'image.')) + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-m", + "--marketing_image_asset_id", + type=str, + required=False, + help=("The ID for an image asset to be used as a marketing image."), + ) parser.add_argument( - '-s', '--square_marketing_image_resource_name', type=str, - required=False, help=('The resource name for an image asset to be used ' - 'as a square marketing image.')) + "-s", + "--square_marketing_image_asset_id", + type=str, + required=False, + help=( + "The resource name for an image asset to be used as a square " + "marketing image." + ), + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, - args.marketing_image_resource_name, - args.square_marketing_image_resource_name) + main( + google_ads_client, + args.customer_id, + args.marketing_image_asset_id, + args.square_marketing_image_asset_id, + ) diff --git a/examples/advanced_operations/create_and_attach_shared_keyword_set.py b/examples/advanced_operations/create_and_attach_shared_keyword_set.py index 59363e7af..e9da0d94b 100755 --- a/examples/advanced_operations/create_and_attach_shared_keyword_set.py +++ b/examples/advanced_operations/create_and_attach_shared_keyword_set.py @@ -26,105 +26,139 @@ def main(client, customer_id, campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') - shared_set_service = client.get_service('SharedSetService', version='v4') - shared_criterion_service = client.get_service('SharedCriterionService', - version='v4') - campaign_shared_set_service = client.get_service('CampaignSharedSetService', - version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + shared_set_service = client.get_service("SharedSetService", version="v5") + shared_criterion_service = client.get_service( + "SharedCriterionService", version="v5" + ) + campaign_shared_set_service = client.get_service( + "CampaignSharedSetService", version="v5" + ) # Create shared negative keyword set. - shared_set_operation = client.get_type('SharedSetOperation', version='v4') + shared_set_operation = client.get_type("SharedSetOperation", version="v5") shared_set = shared_set_operation.create - shared_set.name.value = 'API Negative keyword list - %s' % uuid.uuid4() - shared_set.type = client.get_type('SharedSetTypeEnum', - version='v4').NEGATIVE_KEYWORDS + shared_set.name = "API Negative keyword list - %s" % uuid.uuid4() + shared_set.type = client.get_type( + "SharedSetTypeEnum", version="v5" + ).NEGATIVE_KEYWORDS try: - shared_set_resource_name = shared_set_service.mutate_shared_sets( - customer_id, [shared_set_operation]).results[0].resource_name + shared_set_resource_name = ( + shared_set_service.mutate_shared_sets( + customer_id, [shared_set_operation] + ) + .results[0] + .resource_name + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) print('Created shared set "%s".' % shared_set_resource_name) # Keywords to create a shared set of. - keywords = ['mars cruise', 'mars hotels'] + keywords = ["mars cruise", "mars hotels"] shared_criteria_operations = [] for keyword in keywords: - shared_criterion_operation = client.get_type('SharedCriterionOperation', - version='v4') + shared_criterion_operation = client.get_type( + "SharedCriterionOperation", version="v5" + ) shared_criterion = shared_criterion_operation.create keyword_info = shared_criterion.keyword - keyword_info.text.value = keyword - keyword_info.match_type = client.get_type('KeywordMatchTypeEnum', - version='v4').BROAD - shared_criterion.shared_set.value = shared_set_resource_name + keyword_info.text = keyword + keyword_info.match_type = client.get_type( + "KeywordMatchTypeEnum", version="v5" + ).BROAD + shared_criterion.shared_set = shared_set_resource_name shared_criteria_operations.append(shared_criterion_operation) try: response = shared_criterion_service.mutate_shared_criteria( - customer_id, shared_criteria_operations) + customer_id, shared_criteria_operations + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) for shared_criterion in response.results: print('Created shared criterion "%s".' % shared_criterion.resource_name) - campaign_set_operation = client.get_type('CampaignSharedSetOperation', - version='v4') + campaign_set_operation = client.get_type( + "CampaignSharedSetOperation", version="v5" + ) campaign_set = campaign_set_operation.create - campaign_set.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) - campaign_set.shared_set.value = shared_set_resource_name + campaign_set.campaign = campaign_service.campaign_path( + customer_id, campaign_id + ) + campaign_set.shared_set = shared_set_resource_name try: campaign_shared_set_resource_name = ( campaign_shared_set_service.mutate_campaign_shared_sets( - customer_id, [campaign_set_operation]).results[0].resource_name) + customer_id, [campaign_set_operation] + ) + .results[0] + .resource_name + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created campaign shared set "%s".' - % campaign_shared_set_resource_name) + print( + 'Created campaign shared set "%s".' % campaign_shared_set_resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds a list of negative broad match keywords to the ' - 'provided campaign, for the specified customer.')) + description=( + "Adds a list of negative broad match keywords to the " + "provided campaign, for the specified customer." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/advanced_operations/find_and_remove_criteria_from_shared_set.py b/examples/advanced_operations/find_and_remove_criteria_from_shared_set.py index 477079aae..9c4c9bd39 100755 --- a/examples/advanced_operations/find_and_remove_criteria_from_shared_set.py +++ b/examples/advanced_operations/find_and_remove_criteria_from_shared_set.py @@ -26,113 +26,149 @@ def main(client, customer_id, page_size, campaign_id): - ga_service = client.get_service('GoogleAdsService', version='v4') - shared_criterion_service = client.get_service('SharedCriterionService', - version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") + shared_criterion_service = client.get_service( + "SharedCriterionService", version="v5" + ) # First, retrieve all shared sets associated with the campaign. shared_sets_query = ( - 'SELECT shared_set.id, shared_set.name FROM campaign_shared_set ' - f'WHERE campaign.id = {campaign_id}') + "SELECT shared_set.id, shared_set.name FROM campaign_shared_set " + f"WHERE campaign.id = {campaign_id}" + ) try: shared_set_response = ga_service.search( - customer_id, query=shared_sets_query, page_size=page_size) + customer_id, query=shared_sets_query, page_size=page_size + ) shared_set_ids = [] for row in shared_set_response: shared_set = row.shared_set - shared_set_id = str(shared_set.id.value) + shared_set_id = str(shared_set.id) shared_set_ids.append(shared_set_id) - print(f'Campaign shared set ID "{shared_set_id}" and name ' - f'"{shared_set.name.value}" was found.') + print( + f'Campaign shared set ID "{shared_set_id}" and name ' + f'"{shared_set.name}" was found.' + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) # Next, retrieve shared criteria for all found shared sets. shared_criteria_query = ( - 'SELECT shared_criterion.type, shared_criterion.keyword.text, ' - 'shared_criterion.keyword.match_type, shared_set.id ' - 'FROM shared_criterion WHERE shared_set.id IN ' - f'({", ".join(shared_set_ids)})') + "SELECT shared_criterion.type, shared_criterion.keyword.text, " + "shared_criterion.keyword.match_type, shared_set.id " + "FROM shared_criterion WHERE shared_set.id IN " + f'({", ".join(shared_set_ids)})' + ) try: shared_criteria_response = ga_service.search( - customer_id, query=shared_criteria_query, page_size=page_size) + customer_id, query=shared_criteria_query, page_size=page_size + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) # Use the enum type to determine the enum name from the value. - keyword_match_type_enum = ( - client.get_type('KeywordMatchTypeEnum', version='v4').KeywordMatchType) + keyword_match_type_enum = client.get_type( + "KeywordMatchTypeEnum", version="v5" + ).KeywordMatchType criterion_ids = [] for row in shared_criteria_response: shared_criterion = row.shared_criterion shared_criterion_resource_name = shared_criterion.resource_name - if (shared_criterion.type == - client.get_type('CriterionTypeEnum', version='v4').KEYWORD): + if ( + shared_criterion.type + == client.get_type("CriterionTypeEnum", version="v5").KEYWORD + ): keyword = shared_criterion.keyword - print('Shared criterion with resource name "%s" for negative ' - 'keyword with text "%s" and match type "%s" was found.' - % (shared_criterion_resource_name, keyword.text.value, - keyword_match_type_enum.Name(keyword.match_type))) + print( + 'Shared criterion with resource name "%s" for negative ' + 'keyword with text "%s" and match type "%s" was found.' + % ( + shared_criterion_resource_name, + keyword.text, + keyword_match_type_enum.Name(keyword.match_type), + ) + ) criterion_ids.append(shared_criterion_resource_name) operations = [] # Finally, remove the criteria. for criteria_id in criterion_ids: - shared_criterion_operation = client.get_type('SharedCriterionOperation', - version='v4') + shared_criterion_operation = client.get_type( + "SharedCriterionOperation", version="v5" + ) shared_criterion_operation.remove = criteria_id operations.append(shared_criterion_operation) try: response = shared_criterion_service.mutate_shared_criteria( - customer_id, operations) + customer_id, operations + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) for result in response.results: print(f'Removed shared criterion "{result.resource_name}".') -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Finds shared sets, then finds and removes shared set ' - 'criteria under them.')) + description=( + "Finds shared sets, then finds and removes shared set " + "criteria under them." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, - args.campaign_id) + main( + google_ads_client, + args.customer_id, + _DEFAULT_PAGE_SIZE, + args.campaign_id, + ) diff --git a/examples/advanced_operations/get_ad_group_bid_modifiers.py b/examples/advanced_operations/get_ad_group_bid_modifiers.py index 42af63d3f..d1e53f469 100755 --- a/examples/advanced_operations/get_ad_group_bid_modifiers.py +++ b/examples/advanced_operations/get_ad_group_bid_modifiers.py @@ -24,57 +24,83 @@ def main(client, customer_id, page_size, ad_group_id=None): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT campaign.id, ad_group.id, ' - 'ad_group_bid_modifier.criterion_id, ' - 'ad_group_bid_modifier.bid_modifier, ' - 'ad_group_bid_modifier.device.type FROM ad_group_bid_modifier') + query = ( + "SELECT campaign.id, ad_group.id, " + "ad_group_bid_modifier.criterion_id, " + "ad_group_bid_modifier.bid_modifier, " + "ad_group_bid_modifier.device.type FROM ad_group_bid_modifier" + ) if ad_group_id: - query = '%s WHERE ad_group.id = %s' % (query, ad_group_id) + query = "%s WHERE ad_group.id = %s" % (query, ad_group_id) results = ga_service.search(customer_id, query=query, page_size=page_size) # Use the enum type to determine the enum name from the value. - device_enum = client.get_type('DeviceEnum', version='v4').Device + device_enum = client.get_type("DeviceEnum", version="v5").Device try: for row in results: - print('Ad group bid modifier with criterion ID "%s", bid modifier ' - 'value "%s", device type "%s" was found in ad group ID "%s" ' - 'of campaign with ID "%s".' - % (row.ad_group_bid_modifier.criterion_id.value, - row.ad_group_bid_modifier.bid_modifier.value, - device_enum.Name(row.ad_group_bid_modifier.device.type), - row.ad_group.id.value, row.campaign.id.value)) + print( + 'Ad group bid modifier with criterion ID "%s", bid modifier ' + 'value "%s", device type "%s" was found in ad group ID "%s" ' + 'of campaign with ID "%s".' + % ( + row.ad_group_bid_modifier.criterion_id, + row.ad_group_bid_modifier.bid_modifier, + device_enum.Name(row.ad_group_bid_modifier.device.type), + row.ad_group.id, + row.campaign.id, + ) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='List ad group bid modifiers for specified customer.') + description="List ad group bid modifiers for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=False, - help=('The ad group ID. Specify this to list ad group ' - 'bid modifiers solely for this ad group ID.')) + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=False, + help=( + "The ad group ID. Specify this to list ad group " + "bid modifiers solely for this ad group ID." + ), + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, - ad_group_id=args.ad_group_id) + main( + google_ads_client, + args.customer_id, + _DEFAULT_PAGE_SIZE, + ad_group_id=args.ad_group_id, + ) diff --git a/examples/advanced_operations/use_portfolio_bidding_strategy.py b/examples/advanced_operations/use_portfolio_bidding_strategy.py index 3395e4ab9..b68072e20 100755 --- a/examples/advanced_operations/use_portfolio_bidding_strategy.py +++ b/examples/advanced_operations/use_portfolio_bidding_strategy.py @@ -23,35 +23,41 @@ def main(client, customer_id): - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') - bidding_strategy_service = client.get_service('BiddingStrategyService', - version='v4') - campaign_service = client.get_service('CampaignService', version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) + bidding_strategy_service = client.get_service( + "BiddingStrategyService", version="v5" + ) + campaign_service = client.get_service("CampaignService", version="v5") # Create a budget, which can be shared by multiple campaigns. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.name = "Interplanetary Budget %s" % uuid.uuid4() campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum').STANDARD - campaign_budget.amount_micros.value = 500000 - campaign_budget.explicitly_shared.value = True + "BudgetDeliveryMethodEnum" + ).STANDARD + campaign_budget.amount_micros = 500000 + campaign_budget.explicitly_shared = True # Add budget. try: - campaign_budget_response = ( - campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation])) + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) campaign_budget_id = campaign_budget_response.results[0].resource_name @@ -59,27 +65,29 @@ def main(client, customer_id): print('Budget "%s" was created.' % campaign_budget_id) # Create a portfolio bidding strategy. - bidding_strategy_operation = client.get_type('BiddingStrategyOperation', - version='v4') + bidding_strategy_operation = client.get_type( + "BiddingStrategyOperation", version="v5" + ) bidding_strategy = bidding_strategy_operation.create - bidding_strategy.name.value = 'Enhanced CPC %s' % uuid.uuid4() + bidding_strategy.name = "Enhanced CPC %s" % uuid.uuid4() target_spend = bidding_strategy.target_spend - target_spend.cpc_bid_ceiling_micros.value = 2000000 - target_spend.target_spend_micros.value = 20000000 + target_spend.cpc_bid_ceiling_micros = 2000000 # Add portfolio bidding strategy. try: - bidding_strategy_response = ( - bidding_strategy_service.mutate_bidding_strategies( - customer_id, [bidding_strategy_operation])) + bidding_strategy_response = bidding_strategy_service.mutate_bidding_strategies( + customer_id, [bidding_strategy_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) bidding_strategy_id = bidding_strategy_response.results[0].resource_name @@ -87,56 +95,67 @@ def main(client, customer_id): print('Portfolio bidding strategy "%s" was created.' % bidding_strategy_id) # Create campaign. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = 'Interplanetary Cruise %s' % uuid.uuid4() + campaign.name = "Interplanetary Cruise %s" % uuid.uuid4() campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum').SEARCH + "AdvertisingChannelTypeEnum" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to prevent the # ads from immediately serving. Set to ENABLED once you've added targeting # and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # Set the bidding strategy and budget. - campaign.bidding_strategy.value = bidding_strategy_id - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = campaign_budget_id + campaign.bidding_strategy = bidding_strategy_id + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget_id # Set the campaign network options. - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False # Add the campaign. try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created campaign %s.' % campaign_response.results[0].resource_name) + print("Created campaign %s." % campaign_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Adds a campaign for specified customer.') + description="Adds a campaign for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/authentication/authenticate_in_standalone_application.py b/examples/authentication/authenticate_in_standalone_application.py index a14d98242..04e170e2d 100755 --- a/examples/authentication/authenticate_in_standalone_application.py +++ b/examples/authentication/authenticate_in_standalone_application.py @@ -26,38 +26,51 @@ from google_auth_oauthlib.flow import InstalledAppFlow -SCOPE = u'https://www.googleapis.com/auth/adwords' +SCOPE = "https://www.googleapis.com/auth/adwords" def main(client_secrets_path, scopes): flow = InstalledAppFlow.from_client_secrets_file( - client_secrets_path, scopes=scopes) + client_secrets_path, scopes=scopes + ) flow.run_console() - print('Access token: %s' % flow.credentials.token) - print('Refresh token: %s' % flow.credentials.refresh_token) + print("Access token: %s" % flow.credentials.token) + print("Refresh token: %s" % flow.credentials.refresh_token) -if __name__ == '__main__': +if __name__ == "__main__": parser = argparse.ArgumentParser( - description='Generates OAuth 2.0 credentials with the specified ' - 'client secrets file.') + description="Generates OAuth 2.0 credentials with the specified " + "client secrets file." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('--client_secrets_path', required=True, - help=('Path to the client secrets JSON file from the ' - 'Google Developers Console that contains your ' - 'client ID and client secret.')) - parser.add_argument('--additional_scopes', default=None, - help=('Additional scopes to apply when generating the ' - 'refresh token. Each scope should be separated ' - 'by a comma.')) + parser.add_argument( + "--client_secrets_path", + required=True, + help=( + "Path to the client secrets JSON file from the " + "Google Developers Console that contains your " + "client ID and client secret." + ), + ) + parser.add_argument( + "--additional_scopes", + default=None, + help=( + "Additional scopes to apply when generating the " + "refresh token. Each scope should be separated " + "by a comma." + ), + ) args = parser.parse_args() configured_scopes = [SCOPE] if args.additional_scopes: - configured_scopes.extend(args.additional_scopes.replace(' ', '') - .split(',')) + configured_scopes.extend( + args.additional_scopes.replace(" ", "").split(",") + ) main(args.client_secrets_path, configured_scopes) diff --git a/examples/authentication/authenticate_in_web_application.py b/examples/authentication/authenticate_in_web_application.py index 0239d4b94..73a0ec7db 100755 --- a/examples/authentication/authenticate_in_web_application.py +++ b/examples/authentication/authenticate_in_web_application.py @@ -26,38 +26,51 @@ from google_auth_oauthlib.flow import InstalledAppFlow -SCOPE = u'https://www.googleapis.com/auth/adwords' +SCOPE = "https://www.googleapis.com/auth/adwords" def main(client_secrets_path, scopes): flow = InstalledAppFlow.from_client_secrets_file( - client_secrets_path, scopes=scopes) + client_secrets_path, scopes=scopes + ) flow.run_local_server() - print('Access token: %s' % flow.credentials.token) - print('Refresh token: %s' % flow.credentials.refresh_token) + print("Access token: %s" % flow.credentials.token) + print("Refresh token: %s" % flow.credentials.refresh_token) -if __name__ == '__main__': +if __name__ == "__main__": parser = argparse.ArgumentParser( - description='Generates OAuth 2.0 credentials with the specified ' - 'client secrets file.') + description="Generates OAuth 2.0 credentials with the specified " + "client secrets file." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('--client_secrets_path', required=True, - help=('Path to the client secrets JSON file from the ' - 'Google Developers Console that contains your ' - 'client ID and client secret.')) - parser.add_argument('--additional_scopes', default=None, - help=('Additional scopes to apply when generating the ' - 'refresh token. Each scope should be separated ' - 'by a comma.')) + parser.add_argument( + "--client_secrets_path", + required=True, + help=( + "Path to the client secrets JSON file from the " + "Google Developers Console that contains your " + "client ID and client secret." + ), + ) + parser.add_argument( + "--additional_scopes", + default=None, + help=( + "Additional scopes to apply when generating the " + "refresh token. Each scope should be separated " + "by a comma." + ), + ) args = parser.parse_args() configured_scopes = [SCOPE] if args.additional_scopes: - configured_scopes.extend(args.additional_scopes.replace(' ', '') - .split(',')) + configured_scopes.extend( + args.additional_scopes.replace(" ", "").split(",") + ) main(args.client_secrets_path, configured_scopes) diff --git a/examples/basic_operations/add_ad_groups.py b/examples/basic_operations/add_ad_groups.py index 8b480cb53..54b379c36 100755 --- a/examples/basic_operations/add_ad_groups.py +++ b/examples/basic_operations/add_ad_groups.py @@ -26,50 +26,61 @@ def main(client, customer_id, campaign_id): - ad_group_service = client.get_service('AdGroupService', version='v4') - campaign_service = client.get_service('CampaignService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + campaign_service = client.get_service("CampaignService", version="v5") # Create ad group. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.create - ad_group.name.value = 'Earth to Mars cruises %s' % uuid.uuid4() - ad_group.status = client.get_type('AdGroupStatusEnum', version='v4').ENABLED - ad_group.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) - ad_group.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_STANDARD - ad_group.cpc_bid_micros.value = 10000000 + ad_group.name = "Earth to Mars cruises %s" % uuid.uuid4() + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + ad_group.campaign = campaign_service.campaign_path(customer_id, campaign_id) + ad_group.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_STANDARD + ad_group.cpc_bid_micros = 10000000 # Add the ad group. try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created ad group %s.' % ad_group_response.results[0].resource_name) + print("Created ad group %s." % ad_group_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Adds an ad group for specified customer and campaign id.') + description="Adds an ad group for specified customer and campaign id." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/basic_operations/add_campaigns.py b/examples/basic_operations/add_campaigns.py index 09709b2b0..84b5becc3 100755 --- a/examples/basic_operations/add_campaigns.py +++ b/examples/basic_operations/add_campaigns.py @@ -26,98 +26,112 @@ import google.ads.google_ads.client -_DATE_FORMAT = '%Y%m%d' +_DATE_FORMAT = "%Y%m%d" def main(client, customer_id): - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') - campaign_service = client.get_service('CampaignService', version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) + campaign_service = client.get_service("CampaignService", version="v5") # Create a budget, which can be shared by multiple campaigns. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.name = "Interplanetary Budget %s" % uuid.uuid4() campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum').STANDARD - campaign_budget.amount_micros.value = 500000 + "BudgetDeliveryMethodEnum" + ).STANDARD + campaign_budget.amount_micros = 500000 # Add budget. try: - campaign_budget_response = ( - campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation])) + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) # Create campaign. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = 'Interplanetary Cruise %s' % uuid.uuid4() + campaign.name = "Interplanetary Cruise %s" % uuid.uuid4() campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum').SEARCH + "AdvertisingChannelTypeEnum" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to prevent # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # Set the bidding strategy and budget. - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = ( - campaign_budget_response.results[0].resource_name) + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget_response.results[0].resource_name # Set the campaign network options. - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False # Optional: Set the start date. start_time = datetime.date.today() + datetime.timedelta(days=1) - campaign.start_date.value = datetime.date.strftime(start_time, - _DATE_FORMAT) + campaign.start_date = datetime.date.strftime(start_time, _DATE_FORMAT) # Optional: Set the end date. end_time = start_time + datetime.timedelta(weeks=4) - campaign.end_date.value = datetime.date.strftime(end_time, _DATE_FORMAT) + campaign.end_date = datetime.date.strftime(end_time, _DATE_FORMAT) # Add the campaign. try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created campaign %s.' % campaign_response.results[0].resource_name) + print("Created campaign %s." % campaign_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Adds a campaign for specified customer.') + description="Adds a campaign for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/basic_operations/add_expanded_text_ads.py b/examples/basic_operations/add_expanded_text_ads.py index 35df0649a..41a11d614 100755 --- a/examples/basic_operations/add_expanded_text_ads.py +++ b/examples/basic_operations/add_expanded_text_ads.py @@ -26,67 +26,98 @@ def main(client, customer_id, ad_group_id, number_of_ads): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_service = client.get_service("AdGroupService", version="v5") ad_group_ad_operations = [] for i in range(number_of_ads): # Create ad group ad. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type( + "AdGroupAdOperation", version="v5" + ) ad_group_ad = ad_group_ad_operation.create - ad_group_ad.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED + ad_group_ad.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED # Set expanded text ad info - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com' - ad_group_ad.ad.expanded_text_ad.description.value = 'Buy your tickets now!' - ad_group_ad.ad.expanded_text_ad.headline_part1.value = ( - 'Cruise {} to Mars {}'.format(i, str(uuid.uuid4())[:8])) - ad_group_ad.ad.expanded_text_ad.headline_part2.value = ( - 'Best space cruise line') - ad_group_ad.ad.expanded_text_ad.path1.value = 'all-inclusive' - ad_group_ad.ad.expanded_text_ad.path2.value = 'deals' + ad_group_ad.ad.final_urls.append("http://www.example.com") + ad_group_ad.ad.expanded_text_ad.description = "Buy your tickets now!" + ad_group_ad.ad.expanded_text_ad.headline_part1 = "Cruise {} to Mars {}".format( + i, str(uuid.uuid4())[:8] + ) + ad_group_ad.ad.expanded_text_ad.headline_part2 = ( + "Best space cruise line" + ) + ad_group_ad.ad.expanded_text_ad.path1 = "all-inclusive" + ad_group_ad.ad.expanded_text_ad.path2 = "deals" ad_group_ad_operations.append(ad_group_ad_operation) try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, ad_group_ad_operations) + customer_id, ad_group_ad_operations + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "{}" failed with status "{}" and includes the ' - 'following errors:'.format(ex.request_id, ex.error.code().name)) + print( + 'Request with ID "{}" failed with status "{}" and includes the ' + "following errors:".format(ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format(field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) for result in ad_group_ad_response.results: - print('Created ad group ad {}.'.format(result.resource_name)) + print("Created ad group ad {}.".format(result.resource_name)) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds an expanded text ad to the specified ad group ID, ' - 'for the given customer ID.')) + description=( + "Adds an expanded text ad to the specified ad group ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-n', '--number_of_ads', type=int, - required=False, default=1, help='The number of ads.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-n", + "--number_of_ads", + type=int, + required=False, + default=1, + help="The number of ads.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, args.number_of_ads) + main( + google_ads_client, + args.customer_id, + args.ad_group_id, + args.number_of_ads, + ) diff --git a/examples/basic_operations/add_keywords.py b/examples/basic_operations/add_keywords.py index 12e8899fb..715055a6b 100755 --- a/examples/basic_operations/add_keywords.py +++ b/examples/basic_operations/add_keywords.py @@ -23,70 +23,95 @@ def main(client, customer_id, ad_group_id, keyword_text): - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) # Create keyword. - ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation', - version='v4') + ad_group_criterion_operation = client.get_type( + "AdGroupCriterionOperation", version="v5" + ) ad_group_criterion = ad_group_criterion_operation.create - ad_group_criterion.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + ad_group_criterion.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) ad_group_criterion.status = client.get_type( - 'AdGroupCriterionStatusEnum', version='v4').ENABLED - ad_group_criterion.keyword.text.value = keyword_text + "AdGroupCriterionStatusEnum", version="v5" + ).ENABLED + ad_group_criterion.keyword.text = keyword_text ad_group_criterion.keyword.match_type = client.get_type( - 'KeywordMatchTypeEnum', version='v4').EXACT + "KeywordMatchTypeEnum", version="v5" + ).EXACT # Optional field # All fields can be referenced from the protos directly. # The protos are located in subdirectories under # google/ads/googleads/v0/proto. - # ad_group_criterion.negative.value = True + # ad_group_criterion.negative = True # Optional repeated field - # final_url = ad_group_criterion.final_urls.add() - # final_url.value = 'https://www.example.com' + # ad_group_criterion.final_urls.append('https://www.example.com') # Add keyword try: - ad_group_criterion_response = ( - ad_group_criterion_service.mutate_ad_group_criteria( - customer_id, [ad_group_criterion_operation])) + ad_group_criterion_response = ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {field_path_element.field_name}') + print("\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Created keyword ' - f'{ad_group_criterion_response.results[0].resource_name}.') + print( + "Created keyword " + f"{ad_group_criterion_response.results[0].resource_name}." + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds a keyword to the provided ad group, for the ' - 'specified customer.')) + description=( + "Adds a keyword to the provided ad group, for the " + "specified customer." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-k', '--keyword_text', type=str, required=False, - default='mars cruise', - help=('The keyword to be added to the ad group. Note ' - 'that you will receive an error response if you ' - 'attempt to create a duplicate keyword.')) + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-k", + "--keyword_text", + type=str, + required=False, + default="mars cruise", + help=( + "The keyword to be added to the ad group. Note " + "that you will receive an error response if you " + "attempt to create a duplicate keyword." + ), + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.keyword_text) + main( + google_ads_client, args.customer_id, args.ad_group_id, args.keyword_text + ) diff --git a/examples/basic_operations/add_responsive_search_ad.py b/examples/basic_operations/add_responsive_search_ad.py index 81fbbef27..b45755e5b 100755 --- a/examples/basic_operations/add_responsive_search_ad.py +++ b/examples/basic_operations/add_responsive_search_ad.py @@ -27,81 +27,102 @@ def main(client, customer_id, ad_group_id): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_service = client.get_service("AdGroupService", version="v5") # Create the ad group ad. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create ad_group_ad.status = client.get_type( - 'AdGroupAdStatusEnum', version='v4').PAUSED - ad_group_ad.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + ad_group_ad.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Set responsive search ad info. - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com' + final_url = ad_group_ad.ad.final_urls.append("http://www.example.com") # Set a pinning to always choose this asset for HEADLINE_1. Pinning is # optional; if no pinning is set, then headlines and descriptions will be # rotated and the ones that perform best will be used more often. pinned_headline = _create_ad_text_asset( client, - f'Cruise to Mars #{str(uuid4())[:8]}', - client.get_type( - 'ServedAssetFieldTypeEnum', version='v4').HEADLINE_1) - - ad_group_ad.ad.responsive_search_ad.headlines.extend([ - pinned_headline, - _create_ad_text_asset(client, 'Best Space Cruise Line'), - _create_ad_text_asset(client, 'Experience the Stars')]) - ad_group_ad.ad.responsive_search_ad.descriptions.extend([ - _create_ad_text_asset(client, 'Buy your tickets now'), - _create_ad_text_asset(client, 'Visit the Red Planet')]) - ad_group_ad.ad.responsive_search_ad.path1.value = 'all-inclusive' - ad_group_ad.ad.responsive_search_ad.path2.value = 'deals' + f"Cruise to Mars #{str(uuid4())[:8]}", + client.get_type("ServedAssetFieldTypeEnum", version="v5").HEADLINE_1, + ) + + ad_group_ad.ad.responsive_search_ad.headlines.extend( + [ + pinned_headline, + _create_ad_text_asset(client, "Best Space Cruise Line"), + _create_ad_text_asset(client, "Experience the Stars"), + ] + ) + ad_group_ad.ad.responsive_search_ad.descriptions.extend( + [ + _create_ad_text_asset(client, "Buy your tickets now"), + _create_ad_text_asset(client, "Visit the Red Planet"), + ] + ) + ad_group_ad.ad.responsive_search_ad.path1 = "all-inclusive" + ad_group_ad.ad.responsive_search_ad.path2 = "deals" # Send a request to the server to add a responsive search ad. try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) for result in ad_group_ad_response.results: - print(f'Created responsive search ad with resource name ' - f'"{result.resource_name}".') + print( + f"Created responsive search ad with resource name " + f'"{result.resource_name}".' + ) def _create_ad_text_asset(client, text, pinned_field=None): """Create an AdTextAsset.""" - ad_text_asset = client.get_type('AdTextAsset', version='v4') - ad_text_asset.text.value = text + ad_text_asset = client.get_type("AdTextAsset", version="v5") + ad_text_asset.text = text if pinned_field: ad_text_asset.pinned_field = pinned_field return ad_text_asset -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds an expanded text ad to the specified ad group ID, ' - 'for the given customer ID.')) + description=( + "Adds an expanded text ad to the specified ad group ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/basic_operations/get_ad_groups.py b/examples/basic_operations/get_ad_groups.py index 24c255d0b..aac367ecf 100755 --- a/examples/basic_operations/get_ad_groups.py +++ b/examples/basic_operations/get_ad_groups.py @@ -24,48 +24,68 @@ def main(client, customer_id, page_size, campaign_id=None): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = 'SELECT campaign.id, ad_group.id, ad_group.name FROM ad_group' + query = "SELECT campaign.id, ad_group.id, ad_group.name FROM ad_group" if campaign_id: - query = '%s WHERE campaign.id = %s' % (query, campaign_id) + query = "%s WHERE campaign.id = %s" % (query, campaign_id) results = ga_service.search(customer_id, query=query, page_size=page_size) try: for row in results: - print('Ad group with ID %d and name "%s" was found in campaign ' - 'with ID %d.' - % (row.ad_group.id.value, row.ad_group.name.value, - row.campaign.id.value)) + print( + 'Ad group with ID %d and name "%s" was found in campaign ' + "with ID %d." + % (row.ad_group.id, row.ad_group.name, row.campaign.id) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='List ad groups for specified customer.') + description="List ad groups for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=False, - help=('The campaign ID. Specify this to list ad groups ' - 'solely for this campaign ID.')) + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--campaign_id", + type=str, + required=False, + help=( + "The campaign ID. Specify this to list ad groups " + "solely for this campaign ID." + ), + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, - campaign_id=args.campaign_id) + main( + google_ads_client, + args.customer_id, + _DEFAULT_PAGE_SIZE, + campaign_id=args.campaign_id, + ) diff --git a/examples/basic_operations/get_artifact_metadata.py b/examples/basic_operations/get_artifact_metadata.py index f73832705..0f091c64a 100755 --- a/examples/basic_operations/get_artifact_metadata.py +++ b/examples/basic_operations/get_artifact_metadata.py @@ -39,19 +39,22 @@ def _is_or_is_not(bool_value): Returns: A str with value "is" if bool_value is True, else "is not". """ - return 'is' if bool_value.value else 'isn\'t' + return "is" if bool_value else "isn't" def main(client, artifact_name, page_size): - gaf_service = client.get_service('GoogleAdsFieldService', version='v4') + gaf_service = client.get_service("GoogleAdsFieldService", version="v5") # Searches for an artifact with the specified name. - query = ('SELECT name, category, selectable, filterable, sortable, ' - 'selectable_with, data_type, is_repeated ' - 'WHERE name = \'%s\'') % artifact_name + query = ( + "SELECT name, category, selectable, filterable, sortable, " + "selectable_with, data_type, is_repeated " + "WHERE name = '%s'" + ) % artifact_name response = gaf_service.search_google_ads_fields( - query=query, page_size=page_size) + query=query, page_size=page_size + ) # Iterates over all rows and prints out the metadata of the returned # artifacts. @@ -69,47 +72,65 @@ def main(client, artifact_name, page_size): sortable = _is_or_is_not(google_ads_field.sortable) is_repeated = _is_or_is_not(google_ads_field.is_repeated) - print('An artifact named "%s" with category %d and data type %d %s ' - 'selectable, %s filterable, %s sortable, and %s repeated.' - % (google_ads_field.name.value, google_ads_field.category, - google_ads_field.data_type, selectable, filterable, - sortable, is_repeated)) + print( + 'An artifact named "%s" with category %d and data type %d %s ' + "selectable, %s filterable, %s sortable, and %s repeated." + % ( + google_ads_field.name, + google_ads_field.category, + google_ads_field.data_type, + selectable, + filterable, + sortable, + is_repeated, + ) + ) if len(google_ads_field.selectable_with) > 0: selectable_artifacts = [ - wrapped_selectable_artifact.value - for wrapped_selectable_artifact - in google_ads_field.selectable_with] - - print('') - print('The artifact can be selected with the following ' - 'artifacts:') + wrapped_selectable_artifact + for wrapped_selectable_artifact in google_ads_field.selectable_with + ] + + print("") + print( + "The artifact can be selected with the following " + "artifacts:" + ) for artifact in selectable_artifacts: print(artifact) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Lists metadata for the specified artifact.') + description="Lists metadata for the specified artifact." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-a', '--artifact_name', type=str, - required=True, - help='The name of the artifact for which we are ' - 'retrieving metadata.') + parser.add_argument( + "-a", + "--artifact_name", + type=str, + required=True, + help="The name of the artifact for which we are " + "retrieving metadata.", + ) args = parser.parse_args() main(google_ads_client, args.artifact_name, _DEFAULT_PAGE_SIZE) diff --git a/examples/basic_operations/get_campaigns.py b/examples/basic_operations/get_campaigns.py index d12b66f6f..8c7320c44 100755 --- a/examples/basic_operations/get_campaigns.py +++ b/examples/basic_operations/get_campaigns.py @@ -26,10 +26,12 @@ def main(client, customer_id): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT campaign.id, campaign.name FROM campaign ' - 'ORDER BY campaign.id') + query = ( + "SELECT campaign.id, campaign.name FROM campaign " + "ORDER BY campaign.id" + ) # Issues a search request using streaming. response = ga_service.search_stream(customer_id, query=query) @@ -37,29 +39,39 @@ def main(client, customer_id): try: for batch in response: for row in batch.results: - print(f'Campaign with ID {row.campaign.id.value} and name ' - f'"{row.campaign.name.value}" was found.') + print( + f"Campaign with ID {row.campaign.id} and name " + f'"{row.campaign.name}" was found.' + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/basic_operations/get_expanded_text_ads.py b/examples/basic_operations/get_expanded_text_ads.py index 87134da12..183f6b3cc 100755 --- a/examples/basic_operations/get_expanded_text_ads.py +++ b/examples/basic_operations/get_expanded_text_ads.py @@ -23,18 +23,21 @@ def main(client, customer_id, ad_group_id=None): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") ad_group_ad_status_enum = client.get_type( - 'AdGroupAdStatusEnum', version='v4').AdGroupAdStatus + "AdGroupAdStatusEnum", version="v5" + ).AdGroupAdStatus - query = ('SELECT ad_group.id, ad_group_ad.ad.id, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part1, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part2, ' - 'ad_group_ad.status FROM ad_group_ad ' - 'WHERE ad_group_ad.ad.type = EXPANDED_TEXT_AD') + query = ( + "SELECT ad_group.id, ad_group_ad.ad.id, " + "ad_group_ad.ad.expanded_text_ad.headline_part1, " + "ad_group_ad.ad.expanded_text_ad.headline_part2, " + "ad_group_ad.status FROM ad_group_ad " + "WHERE ad_group_ad.ad.type = EXPANDED_TEXT_AD" + ) if ad_group_id: - query += f' AND ad_group.id = {ad_group_id}' + query += f" AND ad_group.id = {ad_group_id}" response = ga_service.search_stream(customer_id, query=query) @@ -46,35 +49,50 @@ def main(client, customer_id, ad_group_id=None): if ad.expanded_text_ad: expanded_text_ad_info = ad.expanded_text_ad - print(f'Expanded text ad with ID {ad.id.value}, status ' - f'"{ad_group_ad_status_enum.Name(row.ad_group_ad.status)}", ' - 'and headline ' - f'"{expanded_text_ad_info.headline_part1.value}"' - f' - "{expanded_text_ad_info.headline_part2.value}" was ' - f'found in ad group with ID {row.ad_group.id.value}.') + print( + f"Expanded text ad with ID {ad.id}, status " + f'"{ad_group_ad_status_enum.Name(row.ad_group_ad.status)}", ' + "and headline " + f'"{expanded_text_ad_info.headline_part1}"' + f' - "{expanded_text_ad_info.headline_part2}" was ' + f"found in ad group with ID {row.ad_group.id}." + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='List ad groups for specified customer.') + description="List ad groups for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=False, help='The ad group ID. ') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=False, + help="The ad group ID. ", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, ad_group_id=args.ad_group_id) diff --git a/examples/basic_operations/get_keywords.py b/examples/basic_operations/get_keywords.py index db79f0a36..ffc1010d2 100755 --- a/examples/basic_operations/get_keywords.py +++ b/examples/basic_operations/get_keywords.py @@ -25,16 +25,18 @@ def main(client, customer_id, page_size, ad_group_id=None): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT ad_group.id, ad_group_criterion.type, ' - 'ad_group_criterion.criterion_id, ' - 'ad_group_criterion.keyword.text, ' - 'ad_group_criterion.keyword.match_type FROM ad_group_criterion ' - 'WHERE ad_group_criterion.type = KEYWORD') + query = ( + "SELECT ad_group.id, ad_group_criterion.type, " + "ad_group_criterion.criterion_id, " + "ad_group_criterion.keyword.text, " + "ad_group_criterion.keyword.match_type FROM ad_group_criterion " + "WHERE ad_group_criterion.type = KEYWORD" + ) if ad_group_id: - query = '%s AND ad_group.id = %s' % (query, ad_group_id) + query = "%s AND ad_group.id = %s" % (query, ad_group_id) results = ga_service.search(customer_id, query=query, page_size=page_size) @@ -44,37 +46,59 @@ def main(client, customer_id, page_size, ad_group_id=None): ad_group_criterion = row.ad_group_criterion keyword = row.ad_group_criterion.keyword - print('Keyword with text "%s", match type %s, criteria type %s, ' - 'and ID %s was found in ad group with ID %s.' - % (keyword.text.value, keyword.match_type, - ad_group_criterion.type, - ad_group_criterion.criterion_id.value, ad_group.id.value)) + print( + 'Keyword with text "%s", match type %s, criteria type %s, ' + "and ID %s was found in ad group with ID %s." + % ( + keyword.text, + keyword.match_type, + ad_group_criterion.type, + ad_group_criterion.criterion_id, + ad_group.id, + ) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Retrieves keywords for the specified customer, or ' - 'optionally for a specific ad group.')) + description=( + "Retrieves keywords for the specified customer, or " + "optionally for a specific ad group." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=False, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=False, help="The ad group ID." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, - ad_group_id=args.ad_group_id) + main( + google_ads_client, + args.customer_id, + _DEFAULT_PAGE_SIZE, + ad_group_id=args.ad_group_id, + ) diff --git a/examples/basic_operations/get_responsive_search_ads.py b/examples/basic_operations/get_responsive_search_ads.py index 291914f35..f4fda413b 100755 --- a/examples/basic_operations/get_responsive_search_ads.py +++ b/examples/basic_operations/get_responsive_search_ads.py @@ -29,7 +29,7 @@ def main(client, customer_id, page_size, ad_group_id=None): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") query = ''' SELECT ad_group.id, ad_group_ad.ad.id, @@ -42,11 +42,12 @@ def main(client, customer_id, page_size, ad_group_id=None): # Optional: Specify an ad group ID to restrict search to only a given # ad group. if ad_group_id: - query = query + f' AND ad_group.id = {ad_group_id}' + query = query + f" AND ad_group.id = {ad_group_id}" results = ga_service.search(customer_id, query=query, page_size=page_size) aga_status_enum = client.get_type( - 'AdGroupAdStatusEnum', version='v4').AdGroupAdStatus + "AdGroupAdStatusEnum", version="v5" + ).AdGroupAdStatus try: one_found = False @@ -54,54 +55,88 @@ def main(client, customer_id, page_size, ad_group_id=None): for row in results: one_found = True ad = row.ad_group_ad.ad - print(f'Responsive search ad with resource name ' - f'"{ad.resource_name}", ' - f'status {aga_status_enum.Name(row.ad_group_ad.status)} ' - f'was found.') - print('Headlines:\n{}\nDescriptions:\n{}\n'.format( - '\n'.join(_ad_text_assets_to_strs( - client, ad.responsive_search_ad.headlines)), - '\n'.join(_ad_text_assets_to_strs( - client, ad.responsive_search_ad.descriptions)))) + print( + f"Responsive search ad with resource name " + f'"{ad.resource_name}", ' + f"status {aga_status_enum.Name(row.ad_group_ad.status)} " + f"was found." + ) + print( + "Headlines:\n{}\nDescriptions:\n{}\n".format( + "\n".join( + _ad_text_assets_to_strs( + client, ad.responsive_search_ad.headlines + ) + ), + "\n".join( + _ad_text_assets_to_strs( + client, ad.responsive_search_ad.descriptions + ) + ), + ) + ) if not one_found: - print('No responsive search ads were found.') + print("No responsive search ads were found.") except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) def _ad_text_assets_to_strs(client, assets): """Converts a list of AdTextAssets to a list of user-friendly strings.""" sa_field_type_enum = client.get_type( - 'ServedAssetFieldTypeEnum', version='v4').ServedAssetFieldType + "ServedAssetFieldTypeEnum", version="v5" + ).ServedAssetFieldType s = [] for asset in assets: - s.append('\t"' + asset.text.value + '" pinned to ' + - sa_field_type_enum.Name(asset.pinned_field)) + s.append( + '\t"' + + asset.text + + '" pinned to ' + + sa_field_type_enum.Name(asset.pinned_field) + ) return s -if __name__ == '__main__': + +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='List responsive display ads for specified customer. ' - 'An ad_group is optional.') + description="List responsive display ads for specified customer. " + "An ad_group is optional." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=False, help='The ad group ID. ') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=False, + help="The ad group ID. ", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, - ad_group_id=args.ad_group_id) + main( + google_ads_client, + args.customer_id, + _DEFAULT_PAGE_SIZE, + ad_group_id=args.ad_group_id, + ) diff --git a/examples/basic_operations/pause_ad.py b/examples/basic_operations/pause_ad.py index b5ac4fcb2..2307b3609 100755 --- a/examples/basic_operations/pause_ad.py +++ b/examples/basic_operations/pause_ad.py @@ -24,48 +24,62 @@ def main(client, customer_id, ad_group_id, ad_id): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.update ad_group_ad.resource_name = ad_group_ad_service.ad_group_ad_path( - customer_id, ResourceName.format_composite(ad_group_id, ad_id)) - ad_group_ad.status = client.get_type('AdGroupStatusEnum', - version='v4').PAUSED + customer_id, ResourceName.format_composite(ad_group_id, ad_id) + ) + ad_group_ad.status = client.get_type( + "AdGroupStatusEnum", version="v5" + ).PAUSED fm = protobuf_helpers.field_mask(None, ad_group_ad) ad_group_ad_operation.update_mask.CopyFrom(fm) try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Paused ad group ad %s.' - % ad_group_ad_response.results[0].resource_name) + print( + "Paused ad group ad %s." % ad_group_ad_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Pauses an ad in the specified customer\'s ad group.')) + description=("Pauses an ad in the specified customer's ad group.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-i', '--ad_id', type=str, required=True, - help='The ad ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-i", "--ad_id", type=str, required=True, help="The ad ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id, args.ad_id) diff --git a/examples/basic_operations/remove_ad.py b/examples/basic_operations/remove_ad.py index 5d6473509..c1897a245 100755 --- a/examples/basic_operations/remove_ad.py +++ b/examples/basic_operations/remove_ad.py @@ -21,44 +21,59 @@ from google.ads.google_ads.client import GoogleAdsClient from google.ads.google_ads.util import ResourceName + def main(client, customer_id, ad_group_id, ad_id): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") resource_name = ad_group_ad_service.ad_group_ad_path( - customer_id, ResourceName.format_composite(ad_group_id, ad_id)) + customer_id, ResourceName.format_composite(ad_group_id, ad_id) + ) ad_group_ad_operation.remove = resource_name try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Removed ad group ad %s.' - % ad_group_ad_response.results[0].resource_name) + print( + "Removed ad group ad %s." + % ad_group_ad_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Removes an ad from the specified customer\'s ad group.')) + description=("Removes an ad from the specified customer's ad group.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-i', '--ad_id', type=str, required=True, - help='The ad ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-i", "--ad_id", type=str, required=True, help="The ad ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id, args.ad_id) diff --git a/examples/basic_operations/remove_ad_group.py b/examples/basic_operations/remove_ad_group.py index a44f89d05..d094a4478 100755 --- a/examples/basic_operations/remove_ad_group.py +++ b/examples/basic_operations/remove_ad_group.py @@ -22,41 +22,52 @@ def main(client, customer_id, ad_group_id): - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_operation = client.get_type("AdGroupOperation", version="v5") resource_name = ad_group_service.ad_group_path(customer_id, ad_group_id) ad_group_operation.remove = resource_name try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Removed ad group %s.' % ad_group_response.results[0].resource_name) + print("Removed ad group %s." % ad_group_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Removes an ad group for the specified customer.')) + description=("Removes an ad group for the specified customer.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/basic_operations/remove_campaign.py b/examples/basic_operations/remove_campaign.py index 872f4e8f4..134984e31 100755 --- a/examples/basic_operations/remove_campaign.py +++ b/examples/basic_operations/remove_campaign.py @@ -22,41 +22,52 @@ def main(client, customer_id, campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + campaign_operation = client.get_type("CampaignOperation", version="v5") resource_name = campaign_service.campaign_path(customer_id, campaign_id) campaign_operation.remove = resource_name try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Removed campaign %s.' % campaign_response.results[0].resource_name) + print("Removed campaign %s." % campaign_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Removes given campaign for the specified customer.')) + description=("Removes given campaign for the specified customer.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/basic_operations/remove_keyword.py b/examples/basic_operations/remove_keyword.py index 539ddc15f..3438ff5b4 100755 --- a/examples/basic_operations/remove_keyword.py +++ b/examples/basic_operations/remove_keyword.py @@ -24,43 +24,60 @@ def main(client, customer_id, ad_group_id, criterion_id): - agc_service = client.get_service('AdGroupCriterionService', version='v4') - agc_operation = client.get_type('AdGroupCriterionOperation', version='v4') + agc_service = client.get_service("AdGroupCriterionService", version="v5") + agc_operation = client.get_type("AdGroupCriterionOperation", version="v5") resource_name = agc_service.ad_group_criteria_path( - customer_id, ResourceName.format_composite(ad_group_id, criterion_id)) + customer_id, ResourceName.format_composite(ad_group_id, criterion_id) + ) agc_operation.remove = resource_name try: agc_response = agc_service.mutate_ad_group_criteria( - customer_id, [agc_operation]) + customer_id, [agc_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print(f'Removed keyword {agc_response.results[0].resource_name}.') + print(f"Removed keyword {agc_response.results[0].resource_name}.") -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Removes given campaign for the specified customer.')) + description=("Removes given campaign for the specified customer.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-k', '--criterion_id', type=str, - required=True, help='The criterion ID, or keyword ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-k", + "--criterion_id", + type=str, + required=True, + help="The criterion ID, or keyword ID.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.criterion_id) + main( + google_ads_client, args.customer_id, args.ad_group_id, args.criterion_id + ) diff --git a/examples/basic_operations/update_ad_group.py b/examples/basic_operations/update_ad_group.py index b557a5596..7d545fb7d 100755 --- a/examples/basic_operations/update_ad_group.py +++ b/examples/basic_operations/update_ad_group.py @@ -27,51 +27,73 @@ def main(client, customer_id, ad_group_id, cpc_bid_micro_amount): - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") # Create ad group operation. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.update ad_group.resource_name = ad_group_service.ad_group_path( - customer_id, ad_group_id) - ad_group.status = client.get_type('AdGroupStatusEnum', version='v4').PAUSED - ad_group.cpc_bid_micros.value = cpc_bid_micro_amount + customer_id, ad_group_id + ) + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").PAUSED + ad_group.cpc_bid_micros = cpc_bid_micro_amount fm = protobuf_helpers.field_mask(None, ad_group) ad_group_operation.update_mask.CopyFrom(fm) # Update the ad group. try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print(f'Updated ad group {ad_group_response.results[0].resource_name}.') + print(f"Updated ad group {ad_group_response.results[0].resource_name}.") -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Updates an ad group for specified customer and campaign ' - 'id with the given bid micro amount.')) + description=( + "Updates an ad group for specified customer and campaign " + "id with the given bid micro amount." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-b', '--cpc_bid_micro_amount', type=int, - required=True, help='The cpc bid micro amount.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-b", + "--cpc_bid_micro_amount", + type=int, + required=True, + help="The cpc bid micro amount.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.cpc_bid_micro_amount) + main( + google_ads_client, + args.customer_id, + args.ad_group_id, + args.cpc_bid_micro_amount, + ) diff --git a/examples/basic_operations/update_campaign.py b/examples/basic_operations/update_campaign.py index 60ee777c4..236d5aac2 100755 --- a/examples/basic_operations/update_campaign.py +++ b/examples/basic_operations/update_campaign.py @@ -27,14 +27,15 @@ def main(client, customer_id, campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Create campaign operation. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.update campaign.resource_name = campaign_service.campaign_path( - customer_id, campaign_id) - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED - campaign.network_settings.target_search_network.value = False + customer_id, campaign_id + ) + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.network_settings.target_search_network = False # Retrieve a FieldMask for the fields configured in the campaign. fm = protobuf_helpers.field_mask(None, campaign) campaign_operation.update_mask.CopyFrom(fm) @@ -42,33 +43,44 @@ def main(client, customer_id, campaign_id): # Update the campaign. try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Updated campaign %s.' % campaign_response.results[0].resource_name) + print("Updated campaign %s." % campaign_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Updates the given campaign for the specified customer.') + description="Updates the given campaign for the specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/basic_operations/update_expanded_text_ad.py b/examples/basic_operations/update_expanded_text_ad.py index 16706f41e..38d4b6f61 100755 --- a/examples/basic_operations/update_expanded_text_ad.py +++ b/examples/basic_operations/update_expanded_text_ad.py @@ -28,21 +28,20 @@ def main(client, customer_id, ad_id): - ad_service = client.get_service('AdService', version='v4') + ad_service = client.get_service("AdService", version="v5") - ad_operation = client.get_type('AdOperation', version='v4') + ad_operation = client.get_type("AdOperation", version="v5") # Update ad operation. ad = ad_operation.update ad.resource_name = ad_service.ad_path(customer_id, ad_id) - ad.expanded_text_ad.headline_part1.value = ( - f'Cruise to Pluto {str(uuid.uuid4())[:8]}') - ad.expanded_text_ad.headline_part2.value = 'Tickets on sale now' - ad.expanded_text_ad.description.value = 'Best space cruise ever.' - final_url = ad.final_urls.add() - final_url.value = 'http://www.example.com' - final_mobile_url = ad.final_mobile_urls.add() - final_mobile_url.value = 'http://www.example.com/mobile' + ad.expanded_text_ad.headline_part1 = ( + f"Cruise to Pluto {str(uuid.uuid4())[:8]}" + ) + ad.expanded_text_ad.headline_part2 = "Tickets on sale now" + ad.expanded_text_ad.description = "Best space cruise ever." + ad.final_urls.append("http://www.example.com") + ad.final_mobile_urls.append("http://www.example.com/mobile") fm = protobuf_helpers.field_mask(None, ad) ad_operation.update_mask.CopyFrom(fm) @@ -51,32 +50,45 @@ def main(client, customer_id, ad_id): try: ad_response = ad_service.mutate_ads(customer_id, [ad_operation]) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print(f'Ad with resource name "{ad_response.results[0].resource_name}" ' - 'was updated.') + print( + f'Ad with resource name "{ad_response.results[0].resource_name}" ' + "was updated." + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Updates the specified expanded text ad, ' - 'for the given customer ID.')) + description=( + "Updates the specified expanded text ad, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--ad_id', type=str, required=True, - help='The ad ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--ad_id", type=str, required=True, help="The ad ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_id) diff --git a/examples/basic_operations/update_keyword.py b/examples/basic_operations/update_keyword.py index 696c250f7..fcd15beee 100755 --- a/examples/basic_operations/update_keyword.py +++ b/examples/basic_operations/update_keyword.py @@ -24,52 +24,69 @@ def main(client, customer_id, ad_group_id, criterion_id): - agc_service = client.get_service('AdGroupCriterionService', version='v4') + agc_service = client.get_service("AdGroupCriterionService", version="v5") - ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation', - version='v4') + ad_group_criterion_operation = client.get_type( + "AdGroupCriterionOperation", version="v5" + ) ad_group_criterion = ad_group_criterion_operation.update ad_group_criterion.resource_name = agc_service.ad_group_criteria_path( - customer_id, ResourceName.format_composite(ad_group_id, criterion_id)) - ad_group_criterion.status = (client.get_type('AdGroupCriterionStatusEnum', - version='v4') - .ENABLED) - final_url = ad_group_criterion.final_urls.add() - final_url.value = 'https://www.example.com' + customer_id, ResourceName.format_composite(ad_group_id, criterion_id) + ) + ad_group_criterion.status = client.get_type( + "AdGroupCriterionStatusEnum", version="v5" + ).ENABLED + al_url = ad_group_criterion.final_urls.append("https://www.example.com") fm = protobuf_helpers.field_mask(None, ad_group_criterion) ad_group_criterion_operation.update_mask.CopyFrom(fm) try: agc_response = agc_service.mutate_ad_group_criteria( - customer_id, [ad_group_criterion_operation]) + customer_id, [ad_group_criterion_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Updated keyword %s.' % agc_response.results[0].resource_name) + print("Updated keyword %s." % agc_response.results[0].resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Pauses an ad in the specified customer\'s ad group.')) + description=("Pauses an ad in the specified customer's ad group.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-k', '--criterion_id', type=str, - required=True, help='The criterion ID, or keyword ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-k", + "--criterion_id", + type=str, + required=True, + help="The criterion ID, or keyword ID.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.criterion_id) + main( + google_ads_client, args.customer_id, args.ad_group_id, args.criterion_id + ) diff --git a/examples/billing/add_account_budget_proposal.py b/examples/billing/add_account_budget_proposal.py index 49b241edb..56dd0f0eb 100755 --- a/examples/billing/add_account_budget_proposal.py +++ b/examples/billing/add_account_budget_proposal.py @@ -27,31 +27,38 @@ def main(client, customer_id, billing_setup_id): account_budget_proposal_service = client.get_service( - 'AccountBudgetProposalService') - billing_setup_service = client.get_service('BillingSetupService', - version='v4') + "AccountBudgetProposalService" + ) + billing_setup_service = client.get_service( + "BillingSetupService", version="v5" + ) account_budget_proposal_operation = client.get_type( - 'AccountBudgetProposalOperation') + "AccountBudgetProposalOperation" + ) proposal = account_budget_proposal_operation.create proposal.proposal_type = client.get_type( - 'AccountBudgetProposalTypeEnum').CREATE + "AccountBudgetProposalTypeEnum" + ).CREATE proposal.billing_setup.value = billing_setup_service.billing_setup_path( - customer_id, billing_setup_id) - proposal.proposed_name.value = 'Account Budget Proposal (example)' + customer_id, billing_setup_id + ) + proposal.proposed_name.value = "Account Budget Proposal (example)" # Specify the account budget starts immediately - proposal.proposed_start_time_type = client.get_type('TimeTypeEnum', - version='v4').NOW + proposal.proposed_start_time_type = client.get_type( + "TimeTypeEnum", version="v5" + ).NOW # Alternatively you can specify a specific start time. Refer to the # AccountBudgetProposal resource documentation for allowed formats. # # proposal.proposed_start_date_time = '2020-01-02 03:04:05' # Specify that the budget runs forever - proposal.proposed_end_time_type = client.get_type('TimeTypeEnum', - version='v4').FOREVER + proposal.proposed_end_time_type = client.get_type( + "TimeTypeEnum", version="v5" + ).FOREVER # Alternatively you can specify a specific end time. Allowed formats are as # above. # @@ -65,36 +72,52 @@ def main(client, customer_id, billing_setup_id): proposal.proposed_spending_limit_micros.value = 10000 try: - account_budget_proposal_response = ( - account_budget_proposal_service.mutate_account_budget_proposal( - customer_id, account_budget_proposal_operation)) + account_budget_proposal_response = account_budget_proposal_service.mutate_account_budget_proposal( + customer_id, account_budget_proposal_operation + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created account budget proposal "%s".' - % account_budget_proposal_response.result.resource_name) + print( + 'Created account budget proposal "%s".' + % account_budget_proposal_response.result.resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Creates an account budget proposal.') + description="Creates an account budget proposal." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Ads customer ID.') - parser.add_argument('-b', '--billing_setup_id', type=str, - required=True, help='The billing setup ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Ads customer ID.", + ) + parser.add_argument( + "-b", + "--billing_setup_id", + type=str, + required=True, + help="The billing setup ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.billing_setup_id) diff --git a/examples/billing/get_account_budget_proposals.py b/examples/billing/get_account_budget_proposals.py index da6829ad1..43869a1ed 100755 --- a/examples/billing/get_account_budget_proposals.py +++ b/examples/billing/get_account_budget_proposals.py @@ -29,69 +29,86 @@ def main(client, customer_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') - - query = ('SELECT account_budget_proposal.id, ' - 'account_budget_proposal.account_budget,' - 'account_budget_proposal.billing_setup,' - 'account_budget_proposal.status,' - 'account_budget_proposal.proposed_name,' - 'account_budget_proposal.proposed_notes,' - 'account_budget_proposal.proposed_purchase_order_number,' - 'account_budget_proposal.proposal_type,' - 'account_budget_proposal.approval_date_time,' - 'account_budget_proposal.creation_date_time ' - 'FROM account_budget_proposal') + ga_service = client.get_service("GoogleAdsService", version="v5") + + query = ( + "SELECT account_budget_proposal.id, " + "account_budget_proposal.account_budget," + "account_budget_proposal.billing_setup," + "account_budget_proposal.status," + "account_budget_proposal.proposed_name," + "account_budget_proposal.proposed_notes," + "account_budget_proposal.proposed_purchase_order_number," + "account_budget_proposal.proposal_type," + "account_budget_proposal.approval_date_time," + "account_budget_proposal.creation_date_time " + "FROM account_budget_proposal" + ) results = ga_service.search(customer_id, query=query, page_size=page_size) try: # Use the enum types to determine the enum names from the values. proposal_status_enum = client.get_type( - 'AccountBudgetProposalStatusEnum').AccountBudgetProposalStatus + "AccountBudgetProposalStatusEnum" + ).AccountBudgetProposalStatus proposal_type_enum = client.get_type( - 'AccountBudgetProposalTypeEnum').AccountBudgetProposalType + "AccountBudgetProposalTypeEnum" + ).AccountBudgetProposalType for row in results: budget_proposal = row.account_budget_proposal - print('Account budget proposal with ID "%s", status "%s", ' - 'account_budget "%s", billing_setup "%s", ' - 'proposed_name "%s", proposed_notes "%s", ' - 'proposed_po_number "%s", proposal_type "%s", ' - 'approval_date_time "%s", creation_date_time "%s"' - % (budget_proposal.id.value, - proposal_status_enum.Name( budget_proposal.status), - budget_proposal.account_budget.value, - budget_proposal.billing_setup.value, - budget_proposal.proposed_name.value, - budget_proposal.proposed_notes.value, - budget_proposal.proposed_purchase_order_number.value, - proposal_type_enum.Name( budget_proposal.proposal_type), - budget_proposal.approval_date_time.value, - budget_proposal.creation_date_time.value)) + print( + 'Account budget proposal with ID "%s", status "%s", ' + 'account_budget "%s", billing_setup "%s", ' + 'proposed_name "%s", proposed_notes "%s", ' + 'proposed_po_number "%s", proposal_type "%s", ' + 'approval_date_time "%s", creation_date_time "%s"' + % ( + budget_proposal.id.value, + proposal_status_enum.Name(budget_proposal.status), + budget_proposal.account_budget.value, + budget_proposal.billing_setup.value, + budget_proposal.proposed_name.value, + budget_proposal.proposed_notes.value, + budget_proposal.proposed_purchase_order_number.value, + proposal_type_enum.Name(budget_proposal.proposal_type), + budget_proposal.approval_date_time.value, + budget_proposal.creation_date_time.value, + ) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Lists all account budget proposals.') + description="Lists all account budget proposals." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/billing/get_account_budgets.py b/examples/billing/get_account_budgets.py index 9ae0b1e03..eaa053801 100755 --- a/examples/billing/get_account_budgets.py +++ b/examples/billing/get_account_budgets.py @@ -23,75 +23,87 @@ def main(client, customer_id): - ga_service = client.get_service('GoogleAdsService', version='v4') - - query = ('SELECT account_budget.status, ' - 'account_budget.billing_setup, ' - 'account_budget.approved_spending_limit_micros, ' - 'account_budget.approved_spending_limit_type, ' - 'account_budget.proposed_spending_limit_micros, ' - 'account_budget.proposed_spending_limit_type, ' - 'account_budget.adjusted_spending_limit_micros, ' - 'account_budget.adjusted_spending_limit_type, ' - 'account_budget.approved_start_date_time, ' - 'account_budget.proposed_start_date_time, ' - 'account_budget.approved_end_date_time, ' - 'account_budget.approved_end_time_type, ' - 'account_budget.proposed_end_date_time, ' - 'account_budget.proposed_end_time_type ' - 'FROM account_budget') + ga_service = client.get_service("GoogleAdsService", version="v5") + + query = ( + "SELECT account_budget.status, " + "account_budget.billing_setup, " + "account_budget.approved_spending_limit_micros, " + "account_budget.approved_spending_limit_type, " + "account_budget.proposed_spending_limit_micros, " + "account_budget.proposed_spending_limit_type, " + "account_budget.adjusted_spending_limit_micros, " + "account_budget.adjusted_spending_limit_type, " + "account_budget.approved_start_date_time, " + "account_budget.proposed_start_date_time, " + "account_budget.approved_end_date_time, " + "account_budget.approved_end_time_type, " + "account_budget.proposed_end_date_time, " + "account_budget.proposed_end_time_type " + "FROM account_budget" + ) response = ga_service.search_stream(customer_id, query=query) try: # Use the enum type to determine the enum names from the values. budget_status_enum = client.get_type( - 'AccountBudgetStatusEnum', version='v4').AccountBudgetStatus + "AccountBudgetStatusEnum", version="v5" + ).AccountBudgetStatus for batch in response: for row in batch.results: budget = row.account_budget approved_spending_limit = ( - _micros_to_currency(budget.approved_spending_limit_micros.value) + _micros_to_currency(budget.approved_spending_limit_micros) if budget.approved_spending_limit_micros - else budget.approved_spending_limit_type.name) + else budget.approved_spending_limit_type.name + ) proposed_spending_limit = ( - _micros_to_currency(budget.proposed_spending_limit_micros.value) + _micros_to_currency(budget.proposed_spending_limit_micros) if budget.proposed_spending_limit_micros - else budget.proposed_spending_limit_type.name) + else budget.proposed_spending_limit_type.name + ) adjusted_spending_limit = ( - _micros_to_currency(budget.adjusted_spending_limit_micros.value) + _micros_to_currency(budget.adjusted_spending_limit_micros) if budget.adjusted_spending_limit_micros - else budget.adjusted_spending_limit_type.name) + else budget.adjusted_spending_limit_type.name + ) approved_end_date_time = ( - budget.approved_end_date_time.value + budget.approved_end_date_time if budget.approved_end_date_time - else budget.approved_end_date_time_type) + else budget.approved_end_date_time_type + ) proposed_end_date_time = ( - budget.proposed_end_date_time.value + budget.proposed_end_date_time if budget.proposed_end_date_time - else budget.proposed_end_date_time_type) - - print(f'Account budget "{budget.resource_name}", ' - f'with status "{budget_status_enum.Name(budget.status)}" ', - f'billing setup "{budget.billing_setup.value}", ' - f'amount served {_micros_to_currency(budget.amount_served_micros.value):.2f}, ' - f'total adjustments {_micros_to_currency(budget.total_adjustments_micros.value):.2f}, ' - f'approved spending limit "{approved_spending_limit}" ' - f'(proposed "{proposed_spending_limit}" -- ' - f'adjusted "{adjusted_spending_limit}"), ' - f'approved start time "{budget.approved_start_date_time.value}" ' - f'(proposed "{budget.proposed_start_date_time.value}"), ' - f'approved end time "{approved_end_date_time}" ' - f'(proposed "{proposed_end_date_time}").') + else budget.proposed_end_date_time_type + ) + + print( + f'Account budget "{budget.resource_name}", ' + f'with status "{budget_status_enum.Name(budget.status)}" ', + f'billing setup "{budget.billing_setup}", ' + f"amount served {_micros_to_currency(budget.amount_served_micros):.2f}, " + f"total adjustments {_micros_to_currency(budget.total_adjustments_micros):.2f}, " + f'approved spending limit "{approved_spending_limit}" ' + f'(proposed "{proposed_spending_limit}" -- ' + f'adjusted "{adjusted_spending_limit}"), ' + f'approved start time "{budget.approved_start_date_time}" ' + f'(proposed "{budget.proposed_start_date_time}"), ' + f'approved end time "{approved_end_date_time}" ' + f'(proposed "{proposed_end_date_time}").', + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) @@ -99,17 +111,24 @@ def _micros_to_currency(micros): return micros / 1000000.0 -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Lists all account budgets for given Google Ads customer ' - 'ID.')) + description=( + "Lists all account budgets for given Google Ads customer " "ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/billing/get_billing_setup.py b/examples/billing/get_billing_setup.py index c2c0d14f1..13fa57c00 100755 --- a/examples/billing/get_billing_setup.py +++ b/examples/billing/get_billing_setup.py @@ -23,63 +23,77 @@ def main(client, customer_id): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") query = ( - 'SELECT billing_setup.id, billing_setup.status, ' - 'billing_setup.payments_account, ' - 'billing_setup.payments_account_info.payments_account_id, ' - 'billing_setup.payments_account_info.payments_account_name, ' - 'billing_setup.payments_account_info.payments_profile_id, ' - 'billing_setup.payments_account_info.payments_profile_name, ' - 'billing_setup.payments_account_info.secondary_payments_profile_id ' - 'FROM billing_setup') + "SELECT billing_setup.id, billing_setup.status, " + "billing_setup.payments_account, " + "billing_setup.payments_account_info.payments_account_id, " + "billing_setup.payments_account_info.payments_account_name, " + "billing_setup.payments_account_info.payments_profile_id, " + "billing_setup.payments_account_info.payments_profile_name, " + "billing_setup.payments_account_info.secondary_payments_profile_id " + "FROM billing_setup" + ) response = ga_service.search_stream(customer_id, query=query) try: # Use the enum type to determine the enum name from the value. billing_setup_status_enum = client.get_type( - 'BillingSetupStatusEnum', version='v4').BillingSetupStatus + "BillingSetupStatusEnum", version="v5" + ).BillingSetupStatus - print('Found the following billing setup results:') + print("Found the following billing setup results:") for batch in response: for row in batch.results: billing_setup = row.billing_setup pai = billing_setup.payments_account_info if pai.secondary_payments_profile_id.value: - secondary_payments_profile_id = pai.secondary_payments_profile_id.value + secondary_payments_profile_id = ( + pai.secondary_payments_profile_id.value + ) else: secondary_payments_profile_id = "None" - print(f'Billing setup with ID {billing_setup.id.value}, ' - f'status "{billing_setup_status_enum.Name(billing_setup.status)}", ' - f'payments_account "{billing_setup.payments_account.value}" ' - f'payments_account_id {pai.payments_account_id.value}, ' - f'payments_account_name "{pai.payments_account_name.value}", ' - f'payments_profile_id {pai.payments_profile_id.value}, ' - f'payments_profile_name "{pai.payments_profile_name.value}", ' - f'secondary_payments_profile_id {secondary_payments_profile_id}.') + print( + f"Billing setup with ID {billing_setup.id.value}, " + f'status "{billing_setup_status_enum.Name(billing_setup.status)}", ' + f'payments_account "{billing_setup.payments_account.value}" ' + f"payments_account_id {pai.payments_account_id.value}, " + f'payments_account_name "{pai.payments_account_name.value}", ' + f"payments_profile_id {pai.payments_profile_id.value}, " + f'payments_profile_name "{pai.payments_profile_name.value}", ' + f"secondary_payments_profile_id {secondary_payments_profile_id}." + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Lists all billing setup objects for specified customer.') + description="Lists all billing setup objects for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/billing/remove_billing_setup.py b/examples/billing/remove_billing_setup.py index f09ecc229..3d8bd42ae 100755 --- a/examples/billing/remove_billing_setup.py +++ b/examples/billing/remove_billing_setup.py @@ -25,47 +25,69 @@ def main(client, customer_id, billing_setup_id): - billing_setup_service = client.get_service('BillingSetupService', - version='v4') + billing_setup_service = client.get_service( + "BillingSetupService", version="v5" + ) # Create billing setup operation. - billing_setup_operation = client.get_type('BillingSetupOperation', - version='v4') + billing_setup_operation = client.get_type( + "BillingSetupOperation", version="v5" + ) billing_setup_operation.remove = billing_setup_service.billing_setup_path( - customer_id, billing_setup_id) + customer_id, billing_setup_id + ) # Remove the billing setup. try: billing_setup_response = billing_setup_service.mutate_billing_setup( - customer_id, billing_setup_operation) + customer_id, billing_setup_operation + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Removed billing setup %s.' - % billing_setup_response.results[0].resource_name) + print( + "Removed billing setup %s." + % billing_setup_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Removes billing setup for specified customer and billing ' - 'setup ID.')) + description=( + "Removes billing setup for specified customer and billing " + "setup ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-b', '--billing_setup_id', type=str, - required=True, help='The billing setup ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-b", + "--billing_setup_id", + type=str, + required=True, + help="The billing setup ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.billing_setup_id) diff --git a/examples/campaign_management/add_campaign_bid_modifier.py b/examples/campaign_management/add_campaign_bid_modifier.py index c8418d54b..854f9c337 100755 --- a/examples/campaign_management/add_campaign_bid_modifier.py +++ b/examples/campaign_management/add_campaign_bid_modifier.py @@ -23,64 +23,91 @@ def main(client, customer_id, campaign_id, bid_modifier_value): - campaign_service = client.get_service('CampaignService', version='v4') - campaign_bm_service = client.get_service('CampaignBidModifierService', - version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + campaign_bm_service = client.get_service( + "CampaignBidModifierService", version="v5" + ) # Create campaign bid modifier for call interactions with the specified # campaign ID and bid modifier value. campaign_bid_modifier_operation = client.get_type( - 'CampaignBidModifierOperation') + "CampaignBidModifierOperation" + ) campaign_bid_modifier = campaign_bid_modifier_operation.create # Set the campaign. - campaign_bid_modifier.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) + campaign_bid_modifier.campaign = campaign_service.campaign_path( + customer_id, campaign_id + ) # Set the bid modifier. - campaign_bid_modifier.bid_modifier.value = bid_modifier_value + campaign_bid_modifier.bid_modifier = bid_modifier_value # Sets the interaction type. - campaign_bid_modifier.interaction_type.type = ( - client.get_type('InteractionTypeEnum', version='v4').CALLS) + campaign_bid_modifier.interaction_type.type = client.get_type( + "InteractionTypeEnum", version="v5" + ).CALLS # Add the campaign bid modifier. try: - campaign_bm_response = ( - campaign_bm_service.mutate_campaign_bid_modifiers( - customer_id, [campaign_bid_modifier_operation])) + campaign_bm_response = campaign_bm_service.mutate_campaign_bid_modifiers( + customer_id, [campaign_bid_modifier_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created campaign bid modifier: %s.' - % campaign_bm_response.results[0].resource_name) + print( + "Created campaign bid modifier: %s." + % campaign_bm_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds a bid modifier to the specified campaign ID, for ' - 'the given customer ID.')) + description=( + "Adds a bid modifier to the specified campaign ID, for " + "the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') - parser.add_argument('-b', '--bid_modifier_value', type=float, - required=False, default=1.5, - help='The bid modifier value.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) + parser.add_argument( + "-b", + "--bid_modifier_value", + type=float, + required=False, + default=1.5, + help="The bid modifier value.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - args.bid_modifier_value) + main( + google_ads_client, + args.customer_id, + args.campaign_id, + args.bid_modifier_value, + ) diff --git a/examples/campaign_management/add_campaign_draft.py b/examples/campaign_management/add_campaign_draft.py index a79540190..8a5ece4ed 100755 --- a/examples/campaign_management/add_campaign_draft.py +++ b/examples/campaign_management/add_campaign_draft.py @@ -27,51 +27,70 @@ def main(client, customer_id, base_campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') - campaign_draft_service = client.get_service('CampaignDraftService', - version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + campaign_draft_service = client.get_service( + "CampaignDraftService", version="v5" + ) # Creates a campaign draft operation. - campaign_draft_operation = client.get_type('CampaignDraftOperation') + campaign_draft_operation = client.get_type("CampaignDraftOperation") campaign_draft = campaign_draft_operation.create # Creates a campaign draft. campaign_draft.base_campaign.value = campaign_service.campaign_path( - customer_id, base_campaign_id) - campaign_draft.name.value = f'Campaign Draft #{uuid4()}' + customer_id, base_campaign_id + ) + campaign_draft.name.value = f"Campaign Draft #{uuid4()}" # Issues a mutate request to add the campaign draft. try: - campaign_draft_response = ( - campaign_draft_service.mutate_campaign_drafts( - customer_id, [campaign_draft_operation])) + campaign_draft_response = campaign_draft_service.mutate_campaign_drafts( + customer_id, [campaign_draft_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Created campaign draft: ' - f'"{campaign_draft_response.results[0].resource_name}".') + print( + "Created campaign draft: " + f'"{campaign_draft_response.results[0].resource_name}".' + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds a campaign draft for the specified base campaign ID, ' - 'for the given customer ID.')) + description=( + "Adds a campaign draft for the specified base campaign ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--base_campaign_id', type=str, - required=True, help='The base campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--base_campaign_id", + type=str, + required=True, + help="The base campaign ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.base_campaign_id) diff --git a/examples/campaign_management/add_campaign_labels.py b/examples/campaign_management/add_campaign_labels.py index 498d2e4f0..6e5b12b70 100755 --- a/examples/campaign_management/add_campaign_labels.py +++ b/examples/campaign_management/add_campaign_labels.py @@ -36,9 +36,10 @@ def main(client, customer_id, label_id, campaign_ids): # Get an instance of CampaignLabelService client. campaign_label_service = client.get_service( - 'CampaignLabelService', version='v4') - campaign_service = client.get_service('CampaignService', version='v4') - label_service = client.get_service('LabelService', version='v4') + "CampaignLabelService", version="v5" + ) + campaign_service = client.get_service("CampaignService", version="v5") + label_service = client.get_service("LabelService", version="v5") # Build the resource name of the label to be added across the campaigns. label_resource_name = label_service.label_path(customer_id, label_id) @@ -46,10 +47,12 @@ def main(client, customer_id, label_id, campaign_ids): operations = [] for campaign_id in campaign_ids: - campaign_resource_name = campaign_service.campaign_path(customer_id, - campaign_id) + campaign_resource_name = campaign_service.campaign_path( + customer_id, campaign_id + ) campaign_label_operation = client.get_type( - 'CampaignLabelOperation', version='v4') + "CampaignLabelOperation", version="v5" + ) campaign_label = campaign_label_operation.create campaign_label.campaign.value = campaign_resource_name @@ -58,38 +61,59 @@ def main(client, customer_id, label_id, campaign_ids): try: response = campaign_label_service.mutate_campaign_labels( - customer_id, operations) - print(f'Added {len(response.results)} campaign labels:') + customer_id, operations + ) + print(f"Added {len(response.results)} campaign labels:") for result in response.results: print(result.resource_name) except GoogleAdsException as error: - print('Request with ID "{}" failed with status "{}" and includes the ' - 'following errors:'.format( - error.request_id, error.error.code().name)) + print( + 'Request with ID "{}" failed with status "{}" and includes the ' + "following errors:".format( + error.request_id, error.error.code().name + ) + ) for error in error.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format( - field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='This code example adds a campaign label to a list of ' - 'campaigns.') + description="This code example adds a campaign label to a list of " + "campaigns." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-l', '--label_id', type=str, required=True, - help='The ID of the label to attach to campaigns.') - parser.add_argument('-i', '--campaign_ids', nargs='+', type=str, - required=True, - help='The campaign IDs to receive the label.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-l", + "--label_id", + type=str, + required=True, + help="The ID of the label to attach to campaigns.", + ) + parser.add_argument( + "-i", + "--campaign_ids", + nargs="+", + type=str, + required=True, + help="The campaign IDs to receive the label.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.label_id, args.campaign_ids) diff --git a/examples/campaign_management/add_complete_campaigns_using_batch_job.py b/examples/campaign_management/add_complete_campaigns_using_batch_job.py index c691e0e58..d264ed4bf 100755 --- a/examples/campaign_management/add_complete_campaigns_using_batch_job.py +++ b/examples/campaign_management/add_complete_campaigns_using_batch_job.py @@ -54,13 +54,15 @@ def _handle_google_ads_exception(exception): Args: exception: an instance of GoogleAdsException. """ - print(f'Request with ID "{exception.request_id}" failed with status ' - f'"{exception.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{exception.request_id}" failed with status ' + f'"{exception.error.code().name}" and includes the following errors:' + ) for error in exception.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) @@ -75,7 +77,7 @@ def _build_mutate_operation(client, operation_type, operation): Returns: a MutateOperation instance """ - mutate_operation = client.get_type('MutateOperation', version='v4') + mutate_operation = client.get_type("MutateOperation", version="v5") getattr(mutate_operation, operation_type).CopyFrom(operation) return mutate_operation @@ -87,10 +89,11 @@ async def main(client, customer_id): client: an initialized GoogleAdsClient instance. customer_id: a str of a customer ID. """ - batch_job_service = client.get_service('BatchJobService', version='v4') + batch_job_service = client.get_service("BatchJobService", version="v5") batch_job_operation = _create_batch_job_operation(client) - resource_name = _create_batch_job(batch_job_service, customer_id, - batch_job_operation) + resource_name = _create_batch_job( + batch_job_service, customer_id, batch_job_operation + ) operations = _build_all_operations(client, customer_id) _add_all_batch_job_operations(batch_job_service, operations, resource_name) operations_response = _run_batch_job(batch_job_service, resource_name) @@ -120,8 +123,8 @@ def _create_batch_job_operation(client): Returns: a BatchJobOperation with a BatchJob instance set in the "create" property. """ - batch_job_operation = client.get_type('BatchJobOperation', version='v4') - batch_job = client.get_type('BatchJob', version='v4') + batch_job_operation = client.get_type("BatchJobOperation", version="v5") + batch_job = client.get_type("BatchJob", version="v5") batch_job_operation.create.CopyFrom(batch_job) return batch_job_operation @@ -137,17 +140,17 @@ def _create_batch_job(batch_job_service, customer_id, batch_job_operation): Returns: a str of a resource name for a batch job. """ try: - response = batch_job_service.mutate_batch_job(customer_id, - batch_job_operation) - resource_name = response.resource_name + response = batch_job_service.mutate_batch_job( + customer_id, batch_job_operation + ) + resource_name = response.result.resource_name print(f'Created a batch job with resource name "{resource_name}"') return resource_name except GoogleAdsException as exception: _handle_google_ads_exception(exception) -def _add_all_batch_job_operations(batch_job_service, operations, - resource_name): +def _add_all_batch_job_operations(batch_job_service, operations, resource_name): """Adds all mutate operations to the batch job. As this is the first time for this batch job, we pass null as a sequence @@ -161,15 +164,20 @@ def _add_all_batch_job_operations(batch_job_service, operations, """ try: response = batch_job_service.add_batch_job_operations( - resource_name, None, operations) + resource_name, None, operations + ) - print(f'{response.total_operations} mutate operations have been ' - 'added so far.') + print( + f"{response.total_operations} mutate operations have been " + "added so far." + ) # You can use this next sequence token for calling # add_batch_job_operations() next time. - print('Next sequence token for adding next operations is ' - f'{response.next_sequence_token}') + print( + "Next sequence token for adding next operations is " + f"{response.next_sequence_token}" + ) except GoogleAdsException as exception: _handle_google_ads_exception(exception) @@ -188,50 +196,65 @@ def _build_all_operations(client, customer_id): # Creates a new campaign budget operation and adds it to the list of # mutate operations. campaign_budget_op = _build_campaign_budget_operation(client, customer_id) - operations.append(_build_mutate_operation( - client, 'campaign_budget_operation', campaign_budget_op)) + operations.append( + _build_mutate_operation( + client, "campaign_budget_operation", campaign_budget_op + ) + ) # Creates new campaign operations and adds them to the list of # mutate operations. campaign_operations = _build_campaign_operations( - client, customer_id, campaign_budget_op.create.resource_name) + client, customer_id, campaign_budget_op.create.resource_name + ) operations = operations + [ - _build_mutate_operation(client, 'campaign_operation', operation) \ - for operation in campaign_operations] + _build_mutate_operation(client, "campaign_operation", operation) + for operation in campaign_operations + ] # Creates new campaign criterion operations and adds them to the list of # mutate operations. campaign_criterion_operations = _build_campaign_criterion_operations( - client, campaign_operations) + client, campaign_operations + ) operations = operations + [ _build_mutate_operation( - client, 'campaign_criterion_operation', operation) \ - for operation in campaign_criterion_operations] + client, "campaign_criterion_operation", operation + ) + for operation in campaign_criterion_operations + ] # Creates new ad group operations and adds them to the list of # mutate operations. ad_group_operations = _build_ad_group_operations( - client, customer_id, campaign_operations) + client, customer_id, campaign_operations + ) operations = operations + [ - _build_mutate_operation(client, 'ad_group_operation', operation) \ - for operation in ad_group_operations] + _build_mutate_operation(client, "ad_group_operation", operation) + for operation in ad_group_operations + ] # Creates new ad group criterion operations and add them to the list of # mutate operations. ad_group_criterion_operations = _build_ad_group_criterion_operations( - client, ad_group_operations) + client, ad_group_operations + ) operations = operations + [ _build_mutate_operation( - client, 'ad_group_criterion_operation', operation) \ - for operation in ad_group_criterion_operations] + client, "ad_group_criterion_operation", operation + ) + for operation in ad_group_criterion_operations + ] # Creates new ad group ad operations and adds them to the list of # mutate operations. ad_group_ad_operations = _build_ad_group_ad_operations( - client, ad_group_operations) + client, ad_group_operations + ) operations = operations + [ - _build_mutate_operation(client, 'ad_group_ad_operation', operation) \ - for operation in ad_group_ad_operations] + _build_mutate_operation(client, "ad_group_ad_operation", operation) + for operation in ad_group_ad_operations + ] return operations @@ -245,24 +268,29 @@ def _build_campaign_budget_operation(client, customer_id): Returns: a CampaignBudgetOperation instance. """ - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create resource_name = campaign_budget_service.campaign_budget_path( - customer_id, _get_next_temporary_id()) + customer_id, _get_next_temporary_id() + ) campaign_budget.resource_name = resource_name - campaign_budget.name.value = f'Interplanetary Cruise Budget #{uuid4()}' + campaign_budget.name = f"Interplanetary Cruise Budget #{uuid4()}" campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', version='v4').STANDARD - campaign_budget.amount_micros.value = 5000000 + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + campaign_budget.amount_micros = 5000000 return campaign_budget_operation -def _build_campaign_operations(client, customer_id, - campaign_budget_resource_name): +def _build_campaign_operations( + client, customer_id, campaign_budget_resource_name +): """Builds new campaign operations for the specified customer ID. Args: @@ -275,12 +303,15 @@ def _build_campaign_operations(client, customer_id, """ return [ _build_campaign_operation( - client, customer_id, campaign_budget_resource_name) \ - for i in range(NUMBER_OF_CAMPAIGNS_TO_ADD)] + client, customer_id, campaign_budget_resource_name + ) + for i in range(NUMBER_OF_CAMPAIGNS_TO_ADD) + ] -def _build_campaign_operation(client, customer_id, - campaign_budget_resource_name): +def _build_campaign_operation( + client, customer_id, campaign_budget_resource_name +): """Builds new campaign operation for the specified customer ID. Args: @@ -291,24 +322,26 @@ def _build_campaign_operation(client, customer_id, Returns: a CampaignOperation instance. """ - campaign_operation = client.get_type('CampaignOperation', version='v4') - campaign_service = client.get_service('CampaignService', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") + campaign_service = client.get_service("CampaignService", version="v5") # Creates a campaign. campaign = campaign_operation.create campaign_id = _get_next_temporary_id() # Creates a resource name using the temporary ID. - campaign.resource_name = campaign_service.campaign_path(customer_id, - campaign_id) - campaign.name.value = f'Batch job campaign #{customer_id}.{campaign_id}' + campaign.resource_name = campaign_service.campaign_path( + customer_id, campaign_id + ) + campaign.name = f"Batch job campaign #{customer_id}.{campaign_id}" campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to prevent # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # Set the bidding strategy and type. - campaign.manual_cpc.CopyFrom(client.get_type('ManualCpc', version='v4')) - campaign.campaign_budget.value = campaign_budget_resource_name + campaign.manual_cpc.CopyFrom(client.get_type("ManualCpc", version="v5")) + campaign.campaign_budget = campaign_budget_resource_name return campaign_operation @@ -323,8 +356,9 @@ def _build_campaign_criterion_operations(client, campaign_operations): Returns: a list of CampaignCriterionOperation instances. """ return [ - _build_campaign_criterion_operation(client, campaign_operation) \ - for campaign_operation in campaign_operations] + _build_campaign_criterion_operation(client, campaign_operation) + for campaign_operation in campaign_operations + ] def _build_campaign_criterion_operation(client, campaign_operation): @@ -337,15 +371,17 @@ def _build_campaign_criterion_operation(client, campaign_operation): Returns: a CampaignCriterionOperation instance. """ campaign_criterion_operation = client.get_type( - 'CampaignCriterionOperation', version='v4') + "CampaignCriterionOperation", version="v5" + ) # Creates a campaign criterion. campaign_criterion = campaign_criterion_operation.create - campaign_criterion.keyword.text.value = 'venus' + campaign_criterion.keyword.text = "venus" campaign_criterion.keyword.match_type = client.get_type( - 'KeywordMatchTypeEnum', version='v4').BROAD + "KeywordMatchTypeEnum", version="v5" + ).BROAD # Sets the campaign criterion as a negative criterion. - campaign_criterion.negative.value = True - campaign_criterion.campaign.value = campaign_operation.create.resource_name + campaign_criterion.negative = True + campaign_criterion.campaign = campaign_operation.create.resource_name return campaign_criterion_operation @@ -366,7 +402,9 @@ def _build_ad_group_operations(client, customer_id, campaign_operations): for i in range(NUMBER_OF_AD_GROUPS_TO_ADD): operations.append( _build_ad_group_operation( - client, customer_id, campaign_operation)) + client, customer_id, campaign_operation + ) + ) return operations @@ -381,19 +419,21 @@ def _build_ad_group_operation(client, customer_id, campaign_operation): Return: an AdGroupOperation instance. """ - ad_group_operation = client.get_type('AdGroupOperation', version='v4') - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") + ad_group_service = client.get_service("AdGroupService", version="v5") # Creates an ad group. ad_group = ad_group_operation.create ad_group_id = _get_next_temporary_id() # Creates a resource name using the temporary ID. - ad_group.resource_name = ad_group_service.ad_group_path(customer_id, - ad_group_id) - ad_group.name.value = f'Batch job ad group #{uuid4()}.{ad_group_id}' - ad_group.campaign.value = campaign_operation.create.resource_name - ad_group.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_STANDARD - ad_group.cpc_bid_micros.value = 10000000 + ad_group.resource_name = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) + ad_group.name = f"Batch job ad group #{uuid4()}.{ad_group_id}" + ad_group.campaign = campaign_operation.create.resource_name + ad_group.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_STANDARD + ad_group.cpc_bid_micros = 10000000 return ad_group_operation @@ -418,13 +458,19 @@ def _build_ad_group_criterion_operations(client, ad_group_operations): _build_ad_group_criterion_operation( # Create a keyword text by making 50% of keywords invalid # to demonstrate error handling. - client, ad_group_operation, i, i % 2 == 0)) + client, + ad_group_operation, + i, + i % 2 == 0, + ) + ) return operations -def _build_ad_group_criterion_operation(client, ad_group_operation, number, - is_valid=True): +def _build_ad_group_criterion_operation( + client, ad_group_operation, number, is_valid=True +): """Builds new ad group criterion operation for creating keywords. Takes an optional param that dictates whether the keyword text should @@ -438,22 +484,25 @@ def _build_ad_group_criterion_operation(client, ad_group_operation, number, Returns: an AdGroupCriterionOperation instance. """ - ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation', - version='v4') + ad_group_criterion_operation = client.get_type( + "AdGroupCriterionOperation", version="v5" + ) # Creates an ad group criterion. ad_group_criterion = ad_group_criterion_operation.create - ad_group_criterion.keyword.text.value = f'mars{number}' + ad_group_criterion.keyword.text = f"mars{number}" # If keyword should be invalid we add exclamation points, which will # generate errors when sent to the API. if not is_valid: - ad_group_criterion.keyword.text.value += '!!!' + ad_group_criterion.keyword.text += "!!!" ad_group_criterion.keyword.match_type = client.get_type( - 'KeywordMatchTypeEnum', version='v4').BROAD - ad_group_criterion.ad_group.value = ad_group_operation.create.resource_name + "KeywordMatchTypeEnum", version="v5" + ).BROAD + ad_group_criterion.ad_group = ad_group_operation.create.resource_name ad_group_criterion.status = client.get_type( - 'AdGroupCriterionStatusEnum', version='v4').ENABLED + "AdGroupCriterionStatusEnum", version="v5" + ).ENABLED return ad_group_criterion_operation @@ -468,8 +517,9 @@ def _build_ad_group_ad_operations(client, ad_group_operations): Returns: a list of AdGroupAdOperation instances. """ return [ - _build_ad_group_ad_operation(client, ad_group_operation) \ - for ad_group_operation in ad_group_operations] + _build_ad_group_ad_operation(client, ad_group_operation) + for ad_group_operation in ad_group_operations + ] def _build_ad_group_ad_operation(client, ad_group_operation): @@ -481,19 +531,19 @@ def _build_ad_group_ad_operation(client, ad_group_operation): Returns: an AdGroupAdOperation instance. """ - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") # Creates an ad group ad. ad_group_ad = ad_group_ad_operation.create # Creates the expanded text ad info. text_ad = ad_group_ad.ad.expanded_text_ad - text_ad.headline_part1.value = f'Cruise to Mars #{uuid4()}' - text_ad.headline_part2.value = 'Best Space Cruise Line' - text_ad.description.value = 'Buy your tickets now!' - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com' - ad_group_ad.ad_group.value = ad_group_operation.create.resource_name - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED + text_ad.headline_part1 = f"Cruise to Mars #{uuid4()}" + text_ad.headline_part2 = "Best Space Cruise Line" + text_ad.description = "Buy your tickets now!" + final_url = ad_group_ad.ad.final_urls.append("http://www.example.com") + ad_group_ad.ad_group = ad_group_operation.create.resource_name + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED return ad_group_ad_operation @@ -509,8 +559,10 @@ def _run_batch_job(batch_job_service, resource_name): """ try: response = batch_job_service.run_batch_job(resource_name) - print(f'Batch job with resource name "{resource_name}" has been ' - 'executed.') + print( + f'Batch job with resource name "{resource_name}" has been ' + "executed." + ) return response except GoogleAdsException as exception: _handle_google_ads_exception(exception) @@ -549,35 +601,48 @@ def _fetch_and_print_results(batch_job_service, resource_name): batch_job_service: an instance of the BatchJobService message class. resource_name: a str of a resource name for a batch job. """ - print(f'Batch job with resource name "{resource_name}" has finished. ' - 'Now, printing its results...') + print( + f'Batch job with resource name "{resource_name}" has finished. ' + "Now, printing its results..." + ) # Gets all the results from running batch job and prints their information. batch_job_results = batch_job_service.list_batch_job_results( - resource_name, page_size=PAGE_SIZE) + resource_name, page_size=PAGE_SIZE + ) for batch_job_result in batch_job_results: status = batch_job_result.status.message - status = status if status else 'N/A' + status = status if status else "N/A" result = batch_job_result.mutate_operation_response - result = result if result.ByteSize() else 'N/A' - print(f'Batch job #{batch_job_result.operation_index} ' - f'has a status "{status}" and response type "{result}"') + result = result if result.ByteSize() else "N/A" + print( + f"Batch job #{batch_job_result.operation_index} " + f'has a status "{status}" and response type "{result}"' + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds complete campaigns, including campaign budgets, ' - 'campaigns, ad groups and keywords for the given ' - 'customer ID using BatchJobService.')) + description=( + "Adds complete campaigns, including campaign budgets, " + "campaigns, ad groups and keywords for the given " + "customer ID using BatchJobService." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, required=True, - help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() diff --git a/examples/campaign_management/create_campaign_experiment.py b/examples/campaign_management/create_campaign_experiment.py index 552304e89..667008d62 100755 --- a/examples/campaign_management/create_campaign_experiment.py +++ b/examples/campaign_management/create_campaign_experiment.py @@ -29,85 +29,115 @@ def main(client, customer_id, base_campaign_id, draft_id): # Create the campaign experiment. - campaign_experiment = client.get_type('CampaignExperiment', version='v4') - campaign_draft_service = client.get_service('CampaignDraftService', - version='v4') + campaign_experiment = client.get_type("CampaignExperiment", version="v5") + campaign_draft_service = client.get_service( + "CampaignDraftService", version="v5" + ) campaign_draft_resource_name = campaign_draft_service.campaign_draft_path( - customer_id, ResourceName.format_composite(base_campaign_id, draft_id)) + customer_id, ResourceName.format_composite(base_campaign_id, draft_id) + ) campaign_experiment.campaign_draft.value = campaign_draft_resource_name - campaign_experiment.name.value = f'Campaign Experiment #{uuid.uuid4()}' + campaign_experiment.name.value = f"Campaign Experiment #{uuid.uuid4()}" campaign_experiment.traffic_split_percent.value = 50 campaign_experiment.traffic_split_type = client.get_type( - 'CampaignExperimentTrafficSplitTypeEnum', version='v4').RANDOM_QUERY + "CampaignExperimentTrafficSplitTypeEnum", version="v5" + ).RANDOM_QUERY try: campaign_experiment_service = client.get_service( - 'CampaignExperimentService', version='v4') + "CampaignExperimentService", version="v5" + ) # A Long Running Operation (LRO) is returned from this # asynchronous request by the API. - campaign_experiment_lro = ( - campaign_experiment_service.create_campaign_experiment( - customer_id, campaign_experiment)) + campaign_experiment_lro = campaign_experiment_service.create_campaign_experiment( + customer_id, campaign_experiment + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Asynchronous request to create campaign experiment with ' - 'resource name ' - f'"{campaign_experiment_lro.metadata.campaign_experiment}" started.') - print('Waiting until operation completes.') + print( + "Asynchronous request to create campaign experiment with " + "resource name " + f'"{campaign_experiment_lro.metadata.campaign_experiment}" started.' + ) + print("Waiting until operation completes.") # Poll until the operation completes. campaign_experiment_lro.result() # Retrieve the campaign experiment that has been created. - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") query = ( - 'SELECT campaign_experiment.experiment_campaign ' - 'FROM campaign_experiment ' - 'WHERE campaign_experiment.resource_name = ' - f'"{campaign_experiment_lro.metadata.campaign_experiment}"') + "SELECT campaign_experiment.experiment_campaign " + "FROM campaign_experiment " + "WHERE campaign_experiment.resource_name = " + f'"{campaign_experiment_lro.metadata.campaign_experiment}"' + ) results = ga_service.search(customer_id, query=query, page_size=1) try: for row in results: - print('Experiment campaign ' - f'"{row.campaign_experiment.experiment_campaign.value}" ' - 'creation completed.') + print( + "Experiment campaign " + f'"{row.campaign_experiment.experiment_campaign.value}" ' + "creation completed." + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': + +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Create a campaign experiment based on a campaign draft.')) + description=("Create a campaign experiment based on a campaign draft.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--base_campaign_id', type=str, required=True, - help='The base campaign id.') - parser.add_argument('-d', '--draft_id', type=str, required=True, - help='The id of the draft.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--base_campaign_id", + type=str, + required=True, + help="The base campaign id.", + ) + parser.add_argument( + "-d", "--draft_id", type=str, required=True, help="The id of the draft." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.base_campaign_id, - args.draft_id) + main( + google_ads_client, + args.customer_id, + args.base_campaign_id, + args.draft_id, + ) diff --git a/examples/campaign_management/get_all_disapproved_ads.py b/examples/campaign_management/get_all_disapproved_ads.py index ba3411961..ae3ebfec7 100755 --- a/examples/campaign_management/get_all_disapproved_ads.py +++ b/examples/campaign_management/get_all_disapproved_ads.py @@ -24,77 +24,109 @@ def main(client, customer_id, campaign_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') - - query = ('SELECT ad_group_ad.ad.id, ad_group_ad.ad.type, ' - 'ad_group_ad.policy_summary FROM ad_group_ad ' - 'WHERE campaign.id = %s' % campaign_id) - - results = ga_service.search(customer_id, query=query, page_size=page_size) + ga_service = client.get_service("GoogleAdsService", version="v5") + + query = f""" + SELECT + ad_group_ad.ad.id, + ad_group_ad.ad.type, + ad_group_ad.policy_summary.approval_status, + ad_group_ad.policy_summary.policy_topic_entries + FROM ad_group_ad + WHERE + campaign.id = {campaign_id} + AND ad_group_ad.policy_summary.approval_status = DISAPPROVED""" try: - disapproved_ads_count = 0 - ad_type_enum = client.get_type('AdTypeEnum', version='v4').AdType + results = ga_service.search( + customer_id, query=query, page_size=page_size, + ) + + ad_type_enum = client.get_type("AdTypeEnum", version="v5").AdType policy_topic_entry_type_enum = client.get_type( - 'PolicyTopicEntryTypeEnum').PolicyTopicEntryType + "PolicyTopicEntryTypeEnum" + ).PolicyTopicEntryType - print('Disapproved ads:') + print("Disapproved ads:") + + approval_status_enum = client.get_type( + "PolicyApprovalStatusEnum", version="v5" + ) # Iterate over all ads in all rows returned and count disapproved ads. for row in results: ad_group_ad = row.ad_group_ad ad = ad_group_ad.ad - policy_summary = ad_group_ad.policy_summary - - if not policy_summary.approval_status == client.get_type( - 'PolicyApprovalStatusEnum').DISAPPROVED: - continue - - disapproved_ads_count += 1 + approval_status = ad_group_ad.policy_summary.approval_status - print('Ad with ID "%s" and type "%s" was disapproved with the ' - 'following policy topic entries:' - % (ad.id.value, ad_type_enum.Name(ad.type))) + print( + 'Ad with ID "%s" and type "%s" was disapproved with the ' + "following policy topic entries:" + % (ad.id, ad_type_enum.Name(ad.type)) + ) # Display the policy topic entries related to the ad disapproval. - for entry in policy_summary.policy_topic_entries: - print('\ttopic: "%s", type "%s"' - % (entry.topic.value, - policy_topic_entry_type_enum.Name(entry.type))) - - # Display the attributes and values that triggered the policy - # topic. - for evidence in entry.evidences: - for index, text in enumerate(evidence.text_list.texts): - print('\t\tevidence text[%s]: %s' % (index, text.value)) - - print('\nNumber of disapproved ads found: %d' % disapproved_ads_count) + for entry in ad_group_ad.policy_summary.policy_topic_entries: + print( + '\ttopic: "%s", type "%s"' + % ( + entry.topic, + policy_topic_entry_type_enum.Name(entry.type), + ) + ) + + # Display the attributes and values that triggered the policy + # topic. + for evidence in entry.evidences: + for index, text in enumerate(evidence.text_list.texts): + print("\t\tevidence text[%s]: %s" % (index, text.value)) + + # The "num_results" field returns the number of items that have been + # iterated in the results not the total number of rows returned by the + # search query. + print("\nNumber of disapproved ads found: %d" % results.num_results) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Lists disapproved ads for a given customer\'s specified ' - 'campaign.')) + description=( + "Lists disapproved ads for a given customer's specified " + "campaign." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - _DEFAULT_PAGE_SIZE) + main( + google_ads_client, + args.customer_id, + args.campaign_id, + _DEFAULT_PAGE_SIZE, + ) diff --git a/examples/campaign_management/get_campaigns_by_label.py b/examples/campaign_management/get_campaigns_by_label.py index 819034fef..cd125b553 100755 --- a/examples/campaign_management/get_campaigns_by_label.py +++ b/examples/campaign_management/get_campaigns_by_label.py @@ -38,11 +38,11 @@ def main(client, customer_id, label_id, page_size): page_size: An int of the number of results to include in each page of results. """ - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") # Creates a query that will retrieve all campaign labels with the # specified label ID. - query = ''' + query = """ SELECT campaign.id, campaign.name, @@ -51,7 +51,9 @@ def main(client, customer_id, label_id, page_size): FROM campaign_label WHERE label.id = "{}" ORDER BY campaign.id - '''.format(label_id) + """.format( + label_id + ) # Retrieves a google.api_core.page_iterator.GRPCIterator instance # initialized with the specified request parameters. @@ -63,10 +65,12 @@ def main(client, customer_id, label_id, page_size): # the campaign and label objects because these were included in the # search criteria. for row in iterator: - print('Campaign found with name "{}", ID "{}", and ' - 'label "{}".'.format(row.campaign.id.value, - row.campaign.name.value, - row.label.name.value)) + print( + 'Campaign found with name "{}", ID "{}", and ' + 'label "{}".'.format( + row.campaign.id, row.campaign.name, row.label.name.value + ) + ) except GoogleAdsException as ex: print_error_and_exit_process(ex) @@ -77,29 +81,41 @@ def print_error_and_exit_process(error): Args: error: An instance of a GoogleAdsException. """ - print('Request with ID "{}" failed with status "{}" and includes the ' - 'following errors:'.format(error.request_id, error.error.code().name)) + print( + 'Request with ID "{}" failed with status "{}" and includes the ' + "following errors:".format(error.request_id, error.error.code().name) + ) for error in error.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format( - field_path_element.field_name)) + print("\t\tOn field: {}".format(field_path_element.field_name)) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-l', '--label_id', type=str, required=True, - help='A label ID associated with a campaign.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-l", + "--label_id", + type=str, + required=True, + help="A label ID associated with a campaign.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.label_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/campaign_management/graduate_campaign_experiment.py b/examples/campaign_management/graduate_campaign_experiment.py new file mode 100644 index 000000000..b9456fe02 --- /dev/null +++ b/examples/campaign_management/graduate_campaign_experiment.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Illustrates how to graduate a campaign experiment.""" + + +import argparse +import sys +import uuid +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, campaign_experiment_id): + """Illustrates how to graduate a campaign experiment. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to graduate the experiment. + campaign_experiment_id: The campaign experiment ID to graduate. + """ + campaign_experiment_service = client.get_service( + "CampaignExperimentService", version="v5" + ) + + try: + # Graduating a campaign experiment requires a new budget. Since the + # budget for the base campaign has explicitly_shared set to false, the + # budget cannot be shared with the campaign after it is made + # independent by graduation. + budget_resource_name = _create_budget(client, customer_id) + + # Prints out some information about the created campaign budget. + print( + f"Created new budget with resource name '{budget_resource_name} '" + "for adding to the experiment campaign during graduation." + ) + + # Graduates the experiment campaign using the newly created budget. + response = campaign_experiment_service.graduate_campaign_experiment( + campaign_experiment_service.campaign_experiment_path( + customer_id, campaign_experiment_id + ), + budget_resource_name, + ) + print( + f"Campaign with resource name {response.graduated_campaign} is " + "now graduated." + ) + + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def _create_budget(client, customer_id): + """Creates the budget for the campaign. + + Args: + client: The Google Ads client. + customer_id: The customer ID to which the new budget will be added. + + Returns: + The resource name of the newly created campaign budget. + """ + # Gets the CampaignBudgetService. + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) + + # Creates the campaign budget. + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) + campaign_budget = campaign_budget_operation.create + campaign_budget.name = f"Interplanetary Cruise Budget {uuid.uuid4()}" + campaign_budget.delivery_method = client.get_type( + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + campaign_budget.amount_micros = 5000000 + + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) + + return campaign_budget_response.results[0].resource_name + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Gets all available ad group criterion CPC bid " + "simulations for a given ad group." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--campaign_experiment_id", + type=str, + required=True, + help="ID of the campaign experiment to graduate.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_experiment_id) diff --git a/examples/campaign_management/set_ad_parameters.py b/examples/campaign_management/set_ad_parameters.py index 9abd00a4b..7967de784 100755 --- a/examples/campaign_management/set_ad_parameters.py +++ b/examples/campaign_management/set_ad_parameters.py @@ -22,6 +22,7 @@ from google.ads.google_ads.errors import GoogleAdsException from google.ads.google_ads.util import ResourceName + def main(client, customer_id, ad_group_id, criterion_id): """Demonstrates how to set ad parameters on an ad group criterion. @@ -31,38 +32,48 @@ def main(client, customer_id, ad_group_id, criterion_id): ad_group_id: An ad group ID str. criterion_id: A criterion ID str. """ - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) # Gets the resource name of the ad group criterion to be used. resource_name = ad_group_criterion_service.ad_group_criteria_path( - customer_id, ResourceName.format_composite(ad_group_id, criterion_id)) + customer_id, ResourceName.format_composite(ad_group_id, criterion_id) + ) operations = [] - operations.append(create_ad_parameter(client, resource_name, 1, '100')) - operations.append(create_ad_parameter(client, resource_name, 2, '$40')) + operations.append(create_ad_parameter(client, resource_name, 1, "100")) + operations.append(create_ad_parameter(client, resource_name, 2, "$40")) - ad_parameter_service = client.get_service('AdParameterService', - version='v4') + ad_parameter_service = client.get_service( + "AdParameterService", version="v5" + ) # Add the ad parameter. try: - response = ad_parameter_service.mutate_ad_parameters(customer_id, - operations) + response = ad_parameter_service.mutate_ad_parameters( + customer_id, operations + ) except GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) else: - print('Set {} ad parameters:'.format(len(response.results))) + print("Set {} ad parameters:".format(len(response.results))) for result in response.results: - print('Set ad parameter with resource_name: {}'.format( - result.resource_name)) + print( + "Set ad parameter with resource_name: {}".format( + result.resource_name + ) + ) + def create_ad_parameter(client, resource_name, parameter_index, insertion_text): """Creates a new ad parameter create operation and returns it. @@ -72,7 +83,7 @@ def create_ad_parameter(client, resource_name, parameter_index, insertion_text): Restrictions apply to the value of the "insertion_text". For more information, see the field documentation in the AdParameter class located - here: https://developers.google.com/google-ads/api/fields/v4/ad_parameter#ad_parameterinsertion_text + here: https://developers.google.com/google-ads/api/fields/latest/ad_parameter#ad_parameterinsertion_text Args: client: An initialized GoogleAdsClient instance. @@ -82,31 +93,44 @@ def create_ad_parameter(client, resource_name, parameter_index, insertion_text): Returns: A new AdParamterOperation message class instance. """ - ad_param_operation = client.get_type('AdParameterOperation', version='v4') + ad_param_operation = client.get_type("AdParameterOperation", version="v5") ad_param = ad_param_operation.create - ad_param.ad_group_criterion.value = resource_name - ad_param.parameter_index.value = parameter_index - ad_param.insertion_text.value = insertion_text + ad_param.ad_group_criterion = resource_name + ad_param.parameter_index = parameter_index + ad_param.insertion_text = insertion_text return ad_param_operation -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() # Initializes a command line argument parser. parser = argparse.ArgumentParser( - description='Adds an ad group for specified customer and campaign id.') + description="Adds an ad group for specified customer and campaign id." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') - parser.add_argument('-k', '--criterion_id', type=str, - required=True, help='The criterion ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) + parser.add_argument( + "-k", + "--criterion_id", + type=str, + required=True, + help="The criterion ID.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.ad_group_id, - args.criterion_id) + main( + google_ads_client, args.customer_id, args.ad_group_id, args.criterion_id + ) diff --git a/examples/campaign_management/update_campaign_criterion_bid_modifier.py b/examples/campaign_management/update_campaign_criterion_bid_modifier.py index 9233cf25a..b47363031 100755 --- a/examples/campaign_management/update_campaign_criterion_bid_modifier.py +++ b/examples/campaign_management/update_campaign_criterion_bid_modifier.py @@ -24,56 +24,83 @@ def main(client, customer_id, campaign_id, criterion_id, bid_modifier_value): campaign_criterion_service = client.get_service( - 'CampaignCriterionService', version='v4') + "CampaignCriterionService", version="v5" + ) criterion_rname = campaign_criterion_service.campaign_criteria_path( - customer_id, f'{campaign_id}~{criterion_id}') + customer_id, f"{campaign_id}~{criterion_id}" + ) campaign_criterion_operation = client.get_type( - 'CampaignCriterionOperation', version='v4') + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.update campaign_criterion.resource_name = criterion_rname - campaign_criterion.bid_modifier.value = bid_modifier_value + campaign_criterion.bid_modifier = bid_modifier_value fm = protobuf_helpers.field_mask(None, campaign_criterion) campaign_criterion_operation.update_mask.CopyFrom(fm) try: - campaign_criterion_response = ( - campaign_criterion_service.mutate_campaign_criteria( - customer_id, [campaign_criterion_operation])) + campaign_criterion_response = campaign_criterion_service.mutate_campaign_criteria( + customer_id, [campaign_criterion_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Campaign criterion with resource name ' - f'"{campaign_criterion_response.results[0].resource_name}" was ' - 'modified.') + print( + "Campaign criterion with resource name " + f'"{campaign_criterion_response.results[0].resource_name}" was ' + "modified." + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Updates the bid modifier and device type for the given ' - 'customer ID and campaign criterion ID.')) + description=( + "Updates the bid modifier and device type for the given " + "customer ID and campaign criterion ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('--campaign_id', type=str, required=True, - help='The campaign ID.') - parser.add_argument('--criterion_id', type=str, required=True, - help='The criterion ID.') - parser.add_argument('-b', '--bid_modifier_value', type=float, default=1.5, - help='The desired campaign criterion bid modifier.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "--campaign_id", type=str, required=True, help="The campaign ID." + ) + parser.add_argument( + "--criterion_id", type=str, required=True, help="The criterion ID." + ) + parser.add_argument( + "-b", + "--bid_modifier_value", + type=float, + default=1.5, + help="The desired campaign criterion bid modifier.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - args.criterion_id, args.bid_modifier_value) + main( + google_ads_client, + args.customer_id, + args.campaign_id, + args.criterion_id, + args.bid_modifier_value, + ) diff --git a/examples/campaign_management/validate_text_ad.py b/examples/campaign_management/validate_text_ad.py index 84fb56ec6..b9d23c42e 100755 --- a/examples/campaign_management/validate_text_ad.py +++ b/examples/campaign_management/validate_text_ad.py @@ -26,75 +26,102 @@ def main(client, customer_id, ad_group_id): - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_ad.ad_group.value = ad_group_service.ad_group_path(customer_id, - ad_group_id) - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_ad.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED # Create an expanded text ad. - ad_group_ad.ad.expanded_text_ad.description.value = 'Luxury Cruise to Mars' - ad_group_ad.ad.expanded_text_ad.headline_part1.value = ( - 'Visit the Red Planet in style.') + ad_group_ad.ad.expanded_text_ad.description = "Luxury Cruise to Mars" + ad_group_ad.ad.expanded_text_ad.headline_part1 = ( + "Visit the Red Planet in style." + ) # Adds a headline that will trigger a policy violation to demonstrate error # handling. - ad_group_ad.ad.expanded_text_ad.headline_part2.value = ( - 'Low-gravity fun for everyone!!') - final_url = ad_group_ad.ad.final_urls.add() - final_url.value = 'http://www.example.com/' + ad_group_ad.ad.expanded_text_ad.headline_part2 = ( + "Low-gravity fun for everyone!!" + ) + final_url = ad_group_ad.ad.final_urls.append("http://www.example.com/") - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") # Attempt the mutate with validate_only=True. try: - response = ad_group_ad_service.mutate_ad_group_ads(customer_id, - [ad_group_ad_operation], partial_failure=False, validate_only=True) + response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, + [ad_group_ad_operation], + partial_failure=False, + validate_only=True, + ) print('"Expanded text ad validated successfully.') except GoogleAdsException as ex: # This will be hit if there is a validation error from the server. - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}".') - print('There may have been validation error(s) while adding expanded ' - 'text ad.') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}".' + ) + print( + "There may have been validation error(s) while adding expanded " + "text ad." + ) for error in ex.failure.errors: # Note: Depending on the ad type, you may get back policy violation # errors as either PolicyFindingError or PolicyViolationError. # ExpandedTextAds return errors as PolicyFindingError, so only this # case is illustrated here. For additional details, see # https://developers.google.com/google-ads/api/docs/policy-exemption/overview - if (error.error_code.policy_finding_error == - client.get_type('PolicyFindingErrorEnum', - version='v4').POLICY_FINDING): + if ( + error.error_code.policy_finding_error + == client.get_type( + "PolicyFindingErrorEnum", version="v5" + ).POLICY_FINDING + ): if error.details.policy_finding_details: count = 1 - details = (error.details.policy_finding_details - .policy_topic_entries) + details = ( + error.details.policy_finding_details.policy_topic_entries + ) for entry in details: - print(f'{count}) Policy topic entry: \n{entry}\n') + print(f"{count}) Policy topic entry: \n{entry}\n") count += 1 else: - print(f'\tNon-policy finding error with message ' - f'"{error.message}".') + print( + f"\tNon-policy finding error with message " + f'"{error.message}".' + ) if error.location: - for field_path_element in ( - error.location.field_path_elements): - print(f'\t\tOn field: {field_path_element.field_name}') - sys.exit(1) + for ( + field_path_element + ) in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + # Exiting with 0 because this example intentionally raises an exception. + sys.exit(0) -if __name__ == '__main__': + +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Shows how to use the ValidateOnly header.') + description="Shows how to use the ValidateOnly header." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The Ad Group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The Ad Group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/error_handling/handle_expanded_text_ad_policy_violations.py b/examples/error_handling/handle_expanded_text_ad_policy_violations.py new file mode 100755 index 000000000..7050264d8 --- /dev/null +++ b/examples/error_handling/handle_expanded_text_ad_policy_violations.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Requests an exemption for policy violations of an expanded text ad. + +If the request somehow fails with exceptions that are not policy finding +errors, the example will stop instead of trying sending an exemption request. +""" + +import argparse +import sys +import uuid + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, ad_group_id): + """Uses Customer Match to create and add users to a new user list. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the expanded text ad. + ad_group_id: The ad group ID to which to add an expanded text ad. + """ + + ad_group_ad_service_client = client.get_service( + "AdGroupAdService", version="v5" + ) + + ad_group_ad_operation, ignorable_policy_topics = _create_expanded_text_ad( + client, ad_group_ad_service_client, customer_id, ad_group_id + ) + + try: + _request_exemption( + customer_id, + ad_group_ad_service_client, + ad_group_ad_operation, + ignorable_policy_topics, + ) + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def _create_expanded_text_ad( + client, ad_group_ad_service_client, customer_id, ad_group_id +): + """Create an expanded text ad that includes a policy violation. + + Args: + client: The GoogleAds client instance. + ad_group_ad_service_client: The AdGroupAdService client instance. + customer_id: The customer ID for which to add the expanded text ad. + ad_group_id: The ad group ID to which to add an expanded text ad. + + Returns: + The attempted AdGroupAdOperation instance and a list of ignorable + policy topics. + """ + ad_group_resource_name = client.get_service( + "AdGroupService", version="v5" + ).ad_group_path(customer_id, ad_group_id) + + # Creates an operation and ad group ad to create and hold the above ad. + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") + ad_group_ad = ad_group_ad_operation.create + ad_group_ad.ad_group = ad_group_resource_name + # Set the ad group ad to PAUSED to prevent it from immediately serving. + # Set to ENABLED once you've added targeting and the ad are ready to serve. + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + # Sets the expanded text ad info on an ad. + expanded_text_ad_info = ad_group_ad.ad.expanded_text_ad + expanded_text_ad_info.headline_part1 = ( + f"Cruise to Mars #{str(uuid.uuid4())[0:13]}" + ) + expanded_text_ad_info.headline_part2 = "Best Space Cruise Line" + # Intentionally use an ad text that violates policy by having too many + # exclamation marks. + expanded_text_ad_info.description = "Buy your tickets now!!!!!!!" + ad_group_ad.ad.final_urls.append("http://www.example.com") + + ignorable_policy_topics = [] + try: + # Try sending a mutate request to add the ad group ad. + ad_group_ad_service_client.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation] + ) + except GoogleAdsException as google_ads_exception: + # The request will always fail due to the policy violation in the + # ad's description. + ignorable_policy_topics = _fetch_ignorable_policy_topics( + client, google_ads_exception + ) + + return ad_group_ad_operation, ignorable_policy_topics + + +def _fetch_ignorable_policy_topics(client, google_ads_exception): + """Collects all ignorable policy topics to be sent for exemption request. + + Args: + client: The GoogleAds client instance. + google_ads_exception: The exception that contains the policy + violation(s). + + Returns: + A list of ignorable policy topics. + """ + ignorable_policy_topics = [] + + print("Google Ads failure details:") + for error in google_ads_exception.failure.errors: + if ( + error.error_code.policy_finding_error + != client.get_type( + "PolicyFindingErrorEnum", version="v5" + ).POLICY_FINDING + ): + print( + "This example supports sending exemption request for the " + "policy finding error only." + ) + raise google_ads_exception + + print(f"\t{error.error_code.policy_finding_error}: {error.message}") + + if ( + error.details is not None + and error.details.policy_finding_details is not None + ): + policy_finding_details = error.details.policy_finding_details + print("\tPolicy finding details:") + + for ( + policy_topic_entry + ) in policy_finding_details.policy_topic_entries: + ignorable_policy_topics.append(policy_topic_entry.topic) + print(f"\t\tPolicy topic name: '{policy_topic_entry.topic}'") + print( + f"\t\tPolicy topic entry type: '{policy_topic_entry.type}'" + ) + # For the sake of brevity, we exclude printing "policy topic + # evidences" and "policy topic constraints" here. You can fetch + # those data by calling: + # - policy_topic_entry.evidences + # - policy_topic_entry.constraints + + return ignorable_policy_topics + + +def _request_exemption( + customer_id, + ad_group_ad_service_client, + ad_group_ad_operation, + ignorable_policy_topics, +): + """Sends exemption requests for creating an expanded text ad. + + Args: + customer_id: The customer ID for which to add the expanded text ad. + ad_group_ad_service_client: The AdGroupAdService client instance. + ad_group_ad_operation: The AdGroupAdOperation that returned policy + violation(s). + ignorable_policy_topics: The extracted list of policy topic entries. + """ + print( + "Attempting to add an expanded text ad again by requesting exemption " + "for its policy violations." + ) + ad_group_ad_operation.policy_validation_parameter.ignorable_policy_topics.extend( + ignorable_policy_topics + ) + response = ad_group_ad_service_client.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation] + ) + print( + "Successfully added an expanded text ad with resource name " + f"'{response.results[0].resource_name}' for policy violation " + "exemption." + ) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Requests an exemption for expanded text ad policy " + "violations." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=True, + help="The ad group ID to which to add an expanded text ad.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/error_handling/handle_keyword_policy_violations.py b/examples/error_handling/handle_keyword_policy_violations.py new file mode 100755 index 000000000..1b118e81c --- /dev/null +++ b/examples/error_handling/handle_keyword_policy_violations.py @@ -0,0 +1,264 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Demonstrates how to request an exemption for policy violations of a keyword. + +Note that the example uses an exemptible policy-violating keyword by default. +If you use a keyword that contains non-exemptible policy violations, they will +not be sent for exemption request and you will still fail to create a keyword. +If you specify a keyword that doesn't violate any policies, this example will +just add the keyword as usual, similar to what the AddKeywords example does. + +Note that once you've requested policy exemption for a keyword, when you send +a request for adding it again, the request will pass like when you add a +non-violating keyword. +""" + +import argparse +import sys + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, ad_group_id, keyword_text): + """Demonstrates how to request an exemption for keyword policy violations. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the keyword. + ad_group_id: The ad group ID to which to add keyword. + keyword_text: The keyword text to add. + """ + + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) + + google_ads_exception, ad_group_criterion_operation = ( + _create_keyword_criterion( + client, + ad_group_criterion_service, + customer_id, + ad_group_id, + keyword_text, + ) + ) + + try: + # Try sending exemption requests for creating a keyword. However, if + # your keyword contains many policy violations, but not all of them are + # exemptible, the request will not be sent. + if google_ads_exception is not None: + exempt_policy_violation_keys = _fetch_exempt_policy_violation_keys( + google_ads_exception + ) + _request_exemption( + customer_id, + ad_group_criterion_service, + ad_group_criterion_operation, + exempt_policy_violation_keys, + ) + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def _create_keyword_criterion( + client, ad_group_criterion_service, customer_id, ad_group_id, keyword_text +): + """Attempts to add a keyword criterion to an ad group. + + Args: + client: The GoogleAds client instance. + ad_group_criterion_service: The AdGroupCriterionService client instance. + customer_id: The customer ID for which to add the expanded text ad. + ad_group_id: The ad group ID to which to add an expanded text ad. + keyword_text: The keyword text to add. + + Returns: + The GoogleAdsException that occurred (or None if the operation was + successful) and the modified operation. + """ + # Constructs an ad group criterion using the keyword text provided. + ad_group_criterion_operation = client.get_type( + "AdGroupCriterionOperation", version="v5" + ) + ad_group_criterion = ad_group_criterion_operation.create + ad_group_criterion.ad_group = client.get_service( + "AdGroupService", version="v5" + ).ad_group_path(customer_id, ad_group_id) + ad_group_criterion.status = client.get_type( + "AdGroupCriterionStatusEnum", version="v5" + ).ENABLED + ad_group_criterion.keyword.text = keyword_text + ad_group_criterion.keyword.match_type = client.get_type( + "KeywordMatchTypeEnum", version="v5" + ).EXACT + + try: + # Try sending a mutate request to add the keyword. + response = ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation] + ) + except GoogleAdsException as google_ads_exception: + # Return the exception in order to extract keyword violation details. + return google_ads_exception, ad_group_criterion_operation + + # Report that the mutate request was completed successfully. + print( + "Added a keyword with resource name " + f"'{response.results[0].resource_name}'." + ) + + return None, ad_group_criterion_operation + + +def _fetch_exempt_policy_violation_keys(google_ads_exception): + """Collects all policy violation keys that can be exempted. + + Args: + google_ads_exception: The exception to check for policy violation(s). + + Returns: + A list of policy violation keys. + """ + exempt_policy_violation_keys = [] + + print("Google Ads failure details:") + for error in google_ads_exception.failure.errors: + print(f"\t{error.error_code}: {error.message}") + + if ( + error.details is not None + and error.details.policy_violation_details is not None + ): + policy_violation_details = error.details.policy_violation_details + print( + "\tPolicy violation details:\n" + f"\t\tExternal policy name: '{policy_violation_details}'\n" + "\t\tExternal policy description: " + f"'{policy_violation_details.external_policy_description}'\n" + f"\t\tIs exemptible? '{policy_violation_details.is_exemptible}'" + ) + + if ( + policy_violation_details.is_exemptible + and policy_violation_details.key is not None + ): + exempt_policy_violation_keys.append( + policy_violation_details.key + ) + print( + f"\t\tPolicy violation key: {policy_violation_details.key}" + ) + print( + f"\t\t\tName: '{policy_violation_details.key.policy_name}'" + "\t\t\tViolating text: " + f"'{policy_violation_details.key.violating_text}'" + ) + else: + print( + "No exemption request is sent because your keyword " + "contained some non-exemptible policy violations." + ) + raise google_ads_exception + else: + print( + "No exemption request is sent because there are non-policy " + "related errors thrown." + ) + raise google_ads_exception + + return exempt_policy_violation_keys + + +def _request_exemption( + customer_id, + ad_group_criterion_service, + ad_group_criterion_operation, + exempt_policy_violation_keys, +): + """Sends exemption requests for creating a keyword. + + Args: + customer_id: The customer ID for which to add the expanded text ad. + ad_group_criterion_service: The AdGroupCriterionService client instance. + ad_group_criterion_operation: The AdGroupCriterionOperation for which + to request exemption. + exempt_policy_violation_keys: The exemptible policy violation keys. + """ + print( + "Attempting to add a keyword again by requesting exemption for its " + "policy violations." + ) + ad_group_criterion_operation.exempt_policy_violation_keys.extend( + exempt_policy_violation_keys + ) + response = ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation] + ) + print( + "Successfully added a keyword with resource name " + f"'{response.results[0].resource_name}' by requesting a policy " + "violation exemption." + ) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Demonstrates how to request an exemption for policy " + "violations of a keyword." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=True, + help="The ad group ID to which to add an expanded text ad.", + ) + parser.add_argument( + "-k", + "--keyword_text", + type=str, + required=False, + default="medication", + help="Specify the keyword text here or use the default keyword " + "'medication'.", + ) + args = parser.parse_args() + + main( + google_ads_client, args.customer_id, args.ad_group_id, args.keyword_text + ) diff --git a/examples/error_handling/handle_partial_failure.py b/examples/error_handling/handle_partial_failure.py index 6268a69e7..99a431666 100755 --- a/examples/error_handling/handle_partial_failure.py +++ b/examples/error_handling/handle_partial_failure.py @@ -39,15 +39,18 @@ def main(client, customer_id, campaign_id): try: ad_group_response = create_ad_groups(client, customer_id, campaign_id) except GoogleAdsException as ex: - print('Request with ID "{}" failed with status "{}" and includes the ' - 'following errors:'.format(ex.request_id, ex.error.code().name)) + print( + 'Request with ID "{}" failed with status "{}" and includes the ' + "following errors:".format(ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format( - field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) else: print_results(client, ad_group_response) @@ -63,8 +66,8 @@ def create_ad_groups(client, customer_id, campaign_id): Returns: A MutateAdGroupsResponse message instance. """ - ad_group_service = client.get_service('AdGroupService', version='v4') - campaign_service = client.get_service('CampaignService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + campaign_service = client.get_service("CampaignService", version="v5") resource_name = campaign_service.campaign_path(customer_id, campaign_id) invalid_resource_name = campaign_service.campaign_path(customer_id, 0) @@ -72,27 +75,28 @@ def create_ad_groups(client, customer_id, campaign_id): # This AdGroup should be created successfully - assuming the campaign in # the params exists. - ad_group_op1 = client.get_type('AdGroupOperation', version='v4') - ad_group_op1.create.name.value = 'Valid AdGroup: %s' % uuid.uuid4() - ad_group_op1.create.campaign.value = resource_name + ad_group_op1 = client.get_type("AdGroupOperation", version="v5") + ad_group_op1.create.name = "Valid AdGroup: %s" % uuid.uuid4() + ad_group_op1.create.campaign = resource_name ad_group_operations.append(ad_group_op1) # This AdGroup will always fail - campaign ID 0 in resource names is # never valid. - ad_group_op2 = client.get_type('AdGroupOperation', version='v4') - ad_group_op2.create.name.value = 'Broken AdGroup: %s' % (uuid.uuid4()) - ad_group_op2.create.campaign.value = invalid_resource_name + ad_group_op2 = client.get_type("AdGroupOperation", version="v5") + ad_group_op2.create.name = "Broken AdGroup: %s" % (uuid.uuid4()) + ad_group_op2.create.campaign = invalid_resource_name ad_group_operations.append(ad_group_op2) # This AdGroup will always fail - duplicate ad group names are not allowed. - ad_group_op3 = client.get_type('AdGroupOperation', version='v4') - ad_group_op3.create.name.value = (ad_group_op1.create.name.value) - ad_group_op3.create.campaign.value = resource_name + ad_group_op3 = client.get_type("AdGroupOperation", version="v5") + ad_group_op3.create.name = ad_group_op1.create.name + ad_group_op3.create.campaign = resource_name ad_group_operations.append(ad_group_op3) # Issue a mutate request, setting partial_failure=True. - return ad_group_service.mutate_ad_groups(customer_id, ad_group_operations, - partial_failure=True) + return ad_group_service.mutate_ad_groups( + customer_id, ad_group_operations, partial_failure=True + ) def is_partial_failure_error_present(response): @@ -110,8 +114,8 @@ def is_partial_failure_error_present(response): Returns: A boolean, whether or not the response message has a partial failure error. """ - partial_failure = getattr(response, 'partial_failure_error', None) - code = getattr(partial_failure, 'code', None) + partial_failure = getattr(response, "partial_failure_error", None) + code = getattr(partial_failure, "code", None) return code != 0 @@ -154,15 +158,15 @@ def print_results(client, response): """ # Check for existence of any partial failures in the response. if is_partial_failure_error_present(response): - print('Partial failures occurred. Details will be shown below.\n') + print("Partial failures occurred. Details will be shown below.\n") # Prints the details of the partial failure errors. - partial_failure = getattr(response, 'partial_failure_error', None) + partial_failure = getattr(response, "partial_failure_error", None) # partial_failure_error.details is a repeated field and iterable - error_details = getattr(partial_failure, 'details', []) + error_details = getattr(partial_failure, "details", []) for error_detail in error_details: # Retrieve an instance of the GoogleAdsFailure class from the client - failure_message = client.get_type('GoogleAdsFailure', version='v4') + failure_message = client.get_type("GoogleAdsFailure", version="v5") # Parse the string into a GoogleAdsFailure message instance. failure_object = failure_message.FromString(error_detail.value) @@ -170,13 +174,19 @@ def print_results(client, response): # Construct and print a string that details which element in # the above ad_group_operations list failed (by index number) # as well as the error message and error code. - print('A partial failure at index {} occurred.\n' - 'Error message: {}\nError code: {}'.format( - error.location.field_path_elements[0].index.value, - error.message, error.error_code)) + print( + "A partial failure at index {} occurred.\n" + "Error message: {}\nError code: {}".format( + error.location.field_path_elements[0].index.value, + error.message, + error.error_code, + ) + ) else: - print('All operations completed successfully. No partial failure ' - 'to show.') + print( + "All operations completed successfully. No partial failure " + "to show." + ) # In the list of results, operations from the ad_group_operation list # that failed will be represented as empty messages. This loop detects @@ -187,22 +197,32 @@ def print_results(client, response): if message.ByteSize() == 0: continue - print('Created ad group with resource_name: {}.'.format( - message.resource_name)) + print( + "Created ad group with resource_name: {}.".format( + message.resource_name + ) + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Adds an ad group for specified customer and campaign id.') + description="Adds an ad group for specified customer and campaign id." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/extensions/add_prices.py b/examples/extensions/add_prices.py index 31bbb993f..259b962d8 100644 --- a/examples/extensions/add_prices.py +++ b/examples/extensions/add_prices.py @@ -29,103 +29,136 @@ def main(client, customer_id, campaign_id): """The main method that creates all necessary entities for the example.""" # Create the price extension feed item - price_feed_item = client.get_type('PriceFeedItem', version='v4') - price_feed_item.type = ( - client.get_type('PriceExtensionTypeEnum', version='v4').SERVICES) + price_feed_item = client.get_type("PriceFeedItem", version="v5") + price_feed_item.type = client.get_type( + "PriceExtensionTypeEnum", version="v5" + ).SERVICES # Optional: set price qualifier - price_feed_item.price_qualifier = ( - client.get_type('PriceExtensionPriceQualifierEnum').FROM) + price_feed_item.price_qualifier = client.get_type( + "PriceExtensionPriceQualifierEnum" + ).FROM price_feed_item.tracking_url_template.value = ( - 'http://tracker.example.com/?u={lpurl}') - price_feed_item.language_code.value = 'en' + "http://tracker.example.com/?u={lpurl}" + ) + price_feed_item.language_code.value = "en" # To create a price extension, at least three price offerings are needed. - price_extension_price_unit_enum = ( - client.get_type('PriceExtensionPriceUnitEnum')) - price_feed_item.price_offerings.extend([ - _create_price_offer(client, - 'Scrubs', - 'Body Scrub, Salt Scrub', - 60000000, # 60 USD - 'USD', - price_extension_price_unit_enum.PER_HOUR, - 'http://www.example.com/scrubs', - 'http://m.example.com/scrubs'), - _create_price_offer(client, - 'Hair Cuts', - 'Once a month', - 75000000, # 75 USD - 'USD', - price_extension_price_unit_enum.PER_MONTH, - 'http://www.example.com/haircuts', - 'http://m.example.com/haircuts'), - _create_price_offer(client, - 'Skin Care Package', - 'Four times a month', - 250000000, # 250 USD - 'USD', - price_extension_price_unit_enum.PER_MONTH, - 'http://www.example.com/skincarepackage') - ]) + price_extension_price_unit_enum = client.get_type( + "PriceExtensionPriceUnitEnum" + ) + price_feed_item.price_offerings.extend( + [ + _create_price_offer( + client, + "Scrubs", + "Body Scrub, Salt Scrub", + 60000000, # 60 USD + "USD", + price_extension_price_unit_enum.PER_HOUR, + "http://www.example.com/scrubs", + "http://m.example.com/scrubs", + ), + _create_price_offer( + client, + "Hair Cuts", + "Once a month", + 75000000, # 75 USD + "USD", + price_extension_price_unit_enum.PER_MONTH, + "http://www.example.com/haircuts", + "http://m.example.com/haircuts", + ), + _create_price_offer( + client, + "Skin Care Package", + "Four times a month", + 250000000, # 250 USD + "USD", + price_extension_price_unit_enum.PER_MONTH, + "http://www.example.com/skincarepackage", + ), + ] + ) # Create a customer extension setting using the previously created # extension feed item. This associates the price extension to your # account. - campaign_service = client.get_service('CampaignService', version='v4') - extension_feed_item_operation = ( - client.get_type('ExtensionFeedItemOperation', version='v4')) + campaign_service = client.get_service("CampaignService", version="v5") + extension_feed_item_operation = client.get_type( + "ExtensionFeedItemOperation", version="v5" + ) extension_feed_item = extension_feed_item_operation.create - extension_feed_item.extension_type = ( - client.get_type('ExtensionTypeEnum').PRICE) + extension_feed_item.extension_type = client.get_type( + "ExtensionTypeEnum" + ).PRICE extension_feed_item.price_feed_item.CopyFrom(price_feed_item) - extension_feed_item.targeted_campaign.value = ( - campaign_service.campaign_path(customer_id, campaign_id)) - day_of_week_enum = client.get_type('DayOfWeekEnum', version='v4') - minute_of_hour_enum = client.get_type('MinuteOfHourEnum', version='v4') - extension_feed_item.ad_schedules.extend([ - _create_ad_schedule_info(client, - day_of_week_enum.SUNDAY, - 10, - minute_of_hour_enum.ZERO, - 18, - minute_of_hour_enum.ZERO), - _create_ad_schedule_info(client, - day_of_week_enum.SATURDAY, - 10, - minute_of_hour_enum.ZERO, - 22, - minute_of_hour_enum.ZERO) - ]) + extension_feed_item.targeted_campaign.value = campaign_service.campaign_path( + customer_id, campaign_id + ) + day_of_week_enum = client.get_type("DayOfWeekEnum", version="v5") + minute_of_hour_enum = client.get_type("MinuteOfHourEnum", version="v5") + extension_feed_item.ad_schedules.extend( + [ + _create_ad_schedule_info( + client, + day_of_week_enum.SUNDAY, + 10, + minute_of_hour_enum.ZERO, + 18, + minute_of_hour_enum.ZERO, + ), + _create_ad_schedule_info( + client, + day_of_week_enum.SATURDAY, + 10, + minute_of_hour_enum.ZERO, + 22, + minute_of_hour_enum.ZERO, + ), + ] + ) # Add the extension try: - feed_service = client.get_service('ExtensionFeedItemService', - version='v4') + feed_service = client.get_service( + "ExtensionFeedItemService", version="v5" + ) # Issues a mutate request to add the customer extension setting and # print its information. - feed_response = ( - feed_service.mutate_extension_feed_items(customer_id, - [extension_feed_item_operation]) + feed_response = feed_service.mutate_extension_feed_items( + customer_id, [extension_feed_item_operation] ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Created extension feed with resource name {}.' - .format(feed_response.results[0].resource_name)) - - -def _create_price_offer(client, header, description, price_in_micros, - currency_code, unit, in_final_url, - in_final_mobile_url=None): + print( + "Created extension feed with resource name {}.".format( + feed_response.results[0].resource_name + ) + ) + + +def _create_price_offer( + client, + header, + description, + price_in_micros, + currency_code, + unit, + in_final_url, + in_final_mobile_url=None, +): """Create a price offer.""" - price_offer = client.get_type('PriceOffer', version='v4') + price_offer = client.get_type("PriceOffer", version="v5") price_offer.header.value = header price_offer.description.value = description final_url = price_offer.final_urls.add() @@ -140,30 +173,38 @@ def _create_price_offer(client, header, description, price_in_micros, return price_offer -def _create_ad_schedule_info(client, day_of_week, start_hour, start_minute, - end_hour, end_minute): +def _create_ad_schedule_info( + client, day_of_week, start_hour, start_minute, end_hour, end_minute +): """Create a new ad schedule info with the specified parameters.""" - ad_schedule_info = client.get_type('AdScheduleInfo', version='v4') + ad_schedule_info = client.get_type("AdScheduleInfo", version="v5") ad_schedule_info.day_of_week = day_of_week - ad_schedule_info.start_hour.value = start_hour + ad_schedule_info.start_hour = start_hour ad_schedule_info.start_minute = start_minute - ad_schedule_info.end_hour.value = end_hour + ad_schedule_info.end_hour = end_hour ad_schedule_info.end_minute = end_minute return ad_schedule_info -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Add price extension for the specified customer id') + description="Add price extension for the specified customer id" + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/extensions/add_sitelinks.py b/examples/extensions/add_sitelinks.py index 9e4daa802..eab76fd77 100644 --- a/examples/extensions/add_sitelinks.py +++ b/examples/extensions/add_sitelinks.py @@ -27,52 +27,58 @@ from google.ads.google_ads.errors import GoogleAdsException -_DateRange = namedtuple('_DateRange', ['start_datetime', 'end_datetime']) -_date_format = '%Y-%m-%d %H:%M:%S' +_DateRange = namedtuple("_DateRange", ["start_datetime", "end_datetime"]) +_date_format = "%Y-%m-%d %H:%M:%S" def main(client, customer_id, campaign_id): """The main method that creates all necessary entities for the example.""" # Create an extension setting. - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") campaign_ext_setting_service = client.get_service( - 'CampaignExtensionSettingService', version='v4') + "CampaignExtensionSettingService", version="v5" + ) campaign_resource_name = campaign_service.campaign_path( - customer_id, campaign_id) + customer_id, campaign_id + ) feed_item_resource_names = _create_extension_feed_items( - client, customer_id, campaign_resource_name) + client, customer_id, campaign_resource_name + ) campaign_ext_setting_operation = client.get_type( - 'CampaignExtensionSettingOperation', version='v4') - extension_type_enum = client.get_type( - 'ExtensionTypeEnum', version='v4') + "CampaignExtensionSettingOperation", version="v5" + ) + extension_type_enum = client.get_type("ExtensionTypeEnum", version="v5") campaign_ext_setting = campaign_ext_setting_operation.create campaign_ext_setting.campaign.value = campaign_resource_name - campaign_ext_setting.extension_type = ( - extension_type_enum.SITELINK) + campaign_ext_setting.extension_type = extension_type_enum.SITELINK campaign_ext_setting.extension_feed_items.extend(feed_item_resource_names) # Add campaign extension setting with site link feed items. try: - response = ( - campaign_ext_setting_service.mutate_campaign_extension_settings( - customer_id, [campaign_ext_setting_operation])) + response = campaign_ext_setting_service.mutate_campaign_extension_settings( + customer_id, [campaign_ext_setting_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {field_path_element.field_name}') + print("\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Created CampaignExtensionSetting: ' - f'"{response.results[0].resource_name}".') + print( + "Created CampaignExtensionSetting: " + f'"{response.results[0].resource_name}".' + ) def _create_extension_feed_items(client, customer_id, campaign_resource_name): @@ -90,30 +96,35 @@ def _create_extension_feed_items(client, customer_id, campaign_resource_name): feed items. """ extension_feed_item_service = client.get_service( - 'ExtensionFeedItemService', version='v4') + "ExtensionFeedItemService", version="v5" + ) geo_target_constant_service = client.get_service( - 'GeoTargetConstantService', version='v4') - extension_type_enum = client.get_type('ExtensionTypeEnum') - feed_item_target_device_enum = client.get_type('FeedItemTargetDeviceEnum') - day_of_week_enum = client.get_type('DayOfWeekEnum') - minute_of_hour_enum = client.get_type('MinuteOfHourEnum') + "GeoTargetConstantService", version="v5" + ) + extension_type_enum = client.get_type("ExtensionTypeEnum") + feed_item_target_device_enum = client.get_type("FeedItemTargetDeviceEnum") + day_of_week_enum = client.get_type("DayOfWeekEnum") + minute_of_hour_enum = client.get_type("MinuteOfHourEnum") extension_feed_item_operation1 = client.get_type( - 'ExtensionFeedItemOperation', version='v4') + "ExtensionFeedItemOperation", version="v5" + ) extension_feed_item1 = extension_feed_item_operation1.create extension_feed_item1.extension_type = extension_type_enum.SITELINK - extension_feed_item1.sitelink_feed_item.link_text.value = 'Store Hours' + extension_feed_item1.sitelink_feed_item.link_text.value = "Store Hours" extension_feed_item1.targeted_campaign.value = campaign_resource_name final_url1 = extension_feed_item1.sitelink_feed_item.final_urls.add() - final_url1.value = 'http://www.example.com/storehours' + final_url1.value = "http://www.example.com/storehours" extension_feed_item_operation2 = client.get_type( - 'ExtensionFeedItemOperation', version='v4') + "ExtensionFeedItemOperation", version="v5" + ) date_range = _get_thanksgiving_string_date_range() extension_feed_item2 = extension_feed_item_operation2.create extension_feed_item2.extension_type = extension_type_enum.SITELINK extension_feed_item2.sitelink_feed_item.link_text.value = ( - 'Thanksgiving Specials') + "Thanksgiving Specials" + ) extension_feed_item2.targeted_campaign.value = campaign_resource_name extension_feed_item2.start_date_time.value = date_range.start_datetime extension_feed_item2.end_date_time.value = date_range.end_datetime @@ -123,65 +134,83 @@ def _create_extension_feed_items(client, customer_id, campaign_resource_name): united_states = geo_target_constant_service.geo_target_constant_path(2048) extension_feed_item2.targeted_geo_target_constant.value = united_states final_url2 = extension_feed_item2.sitelink_feed_item.final_urls.add() - final_url2.value = 'http://www.example.com/thanksgiving' + final_url2.value = "http://www.example.com/thanksgiving" extension_feed_item_operation3 = client.get_type( - 'ExtensionFeedItemOperation', version='v4') + "ExtensionFeedItemOperation", version="v5" + ) extension_feed_item3 = extension_feed_item_operation3.create extension_feed_item3.extension_type = extension_type_enum.SITELINK - extension_feed_item3.sitelink_feed_item.link_text.value = 'Wifi available' + extension_feed_item3.sitelink_feed_item.link_text.value = "Wifi available" extension_feed_item3.targeted_campaign.value = campaign_resource_name extension_feed_item3.device = feed_item_target_device_enum.MOBILE final_url3 = extension_feed_item3.sitelink_feed_item.final_urls.add() - final_url3.value = 'http://www.example.com/mobile/wifi' + final_url3.value = "http://www.example.com/mobile/wifi" extension_feed_item_operation4 = client.get_type( - 'ExtensionFeedItemOperation', version='v4') + "ExtensionFeedItemOperation", version="v5" + ) extension_feed_item4 = extension_feed_item_operation4.create extension_feed_item4.extension_type = extension_type_enum.SITELINK - extension_feed_item4.sitelink_feed_item.link_text.value = 'Happy hours' + extension_feed_item4.sitelink_feed_item.link_text.value = "Happy hours" extension_feed_item4.targeted_campaign.value = campaign_resource_name extension_feed_item4.device = feed_item_target_device_enum.MOBILE final_url4 = extension_feed_item4.sitelink_feed_item.final_urls.add() - final_url4.value = 'http://www.example.com/happyhours' - for day_of_week in [day_of_week_enum.MONDAY, day_of_week_enum.TUESDAY, - day_of_week_enum.WEDNESDAY, day_of_week_enum.THURSDAY, - day_of_week_enum.FRIDAY]: + final_url4.value = "http://www.example.com/happyhours" + for day_of_week in [ + day_of_week_enum.MONDAY, + day_of_week_enum.TUESDAY, + day_of_week_enum.WEDNESDAY, + day_of_week_enum.THURSDAY, + day_of_week_enum.FRIDAY, + ]: _populate_ad_schedule( - extension_feed_item4.ad_schedules.add(), day_of_week, 18, - minute_of_hour_enum.ZERO, 21, minute_of_hour_enum.ZERO) + extension_feed_item4.ad_schedules.add(), + day_of_week, + 18, + minute_of_hour_enum.ZERO, + 21, + minute_of_hour_enum.ZERO, + ) # Add extension feed items try: - feed_response = ( - extension_feed_item_service.mutate_extension_feed_items( - customer_id, [extension_feed_item_operation1, - extension_feed_item_operation2, - extension_feed_item_operation3, - extension_feed_item_operation4])) + feed_response = extension_feed_item_service.mutate_extension_feed_items( + customer_id, + [ + extension_feed_item_operation1, + extension_feed_item_operation2, + extension_feed_item_operation3, + extension_feed_item_operation4, + ], + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}"') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print('Created ExtensionFeedItems:') + print("Created ExtensionFeedItems:") for feed_item in feed_response.results: - print(f'\tResource name: {feed_item.resource_name}') + print(f"\tResource name: {feed_item.resource_name}") resource_names = [result.resource_name for result in feed_response.results] - return [_to_string_value(client, resource_name) for resource_name in - resource_names] + return [ + _to_string_value(client, resource_name) + for resource_name in resource_names + ] def _to_string_value(client, s): """Helper method that converts a given str to a StringValue instance.""" - str_val = client.get_type('StringValue') + str_val = client.get_type("StringValue") str_val.value = s return str_val @@ -197,32 +226,45 @@ def _get_thanksgiving_string_date_range(): end_dt = datetime.datetime(start_dt.year, 11, 27, 23, 59, 59) - return _DateRange(start_dt.strftime(_date_format), - end_dt.strftime(_date_format)) + return _DateRange( + start_dt.strftime(_date_format), end_dt.strftime(_date_format) + ) -def _populate_ad_schedule(ad_schedule, day_of_week, start_hour, start_minute, - end_hour, end_minute): +def _populate_ad_schedule( + ad_schedule, day_of_week, start_hour, start_minute, end_hour, end_minute +): """Helper method to populate a given AdScheduleInfo instance.""" ad_schedule.day_of_week = day_of_week - ad_schedule.start_hour.value = start_hour + ad_schedule.start_hour = start_hour ad_schedule.start_minute = start_minute - ad_schedule.end_hour.value = end_hour + ad_schedule.end_hour = end_hour ad_schedule.end_minute = end_minute -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Adds sitelinks to the specified campaign.') + description="Adds sitelinks to the specified campaign." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, required=True, - help='The Google Ads customer ID') - parser.add_argument('-i', '--campaign_id', type=str, required=True, - help='The campaign ID sitelinks will be added to.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID", + ) + parser.add_argument( + "-i", + "--campaign_id", + type=str, + required=True, + help="The campaign ID sitelinks will be added to.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/extensions/add_sitelinks_using_feeds.py b/examples/extensions/add_sitelinks_using_feeds.py new file mode 100755 index 000000000..68d29d5fa --- /dev/null +++ b/examples/extensions/add_sitelinks_using_feeds.py @@ -0,0 +1,426 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Adds sitelinks to a campaign using feed services. + +Run add_campaigns.py to create a campaign. +""" + +import argparse +import sys +import uuid + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, campaign_id, ad_group_id): + """Adds sitelinks to a campaign using feed services. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the keyword. + campaign_id: The campaign to which sitelinks will be added. + ad_group_id: ID of the ad group to which sitelinks will be added. Set + to None if you do not wish to limit targeting to a specific ad + group. + """ + + try: + # Create a feed, which acts as a table to store data. + feed = _create_feed(client, customer_id) + + # Create feed items, which fill out the feed table with data. + feed_items = _create_feed_items(client, customer_id, feed) + + # Create a feed mapping, which tells Google Ads how to interpret this + # data to display additional sitelink information on ads. + _create_feed_mapping(client, customer_id, feed) + + # Create a campaign feed, which tells Google Ads which campaigns to + # use the provided data with. + _create_campaign_feed(client, customer_id, campaign_id, feed) + + # If an ad group is specified, limit targeting only to the given ad + # group. You must set targeting on a per-feed-item basis. This will + # restrict the first feed item we added to only serve for the given + # ad group. + if ad_group_id is not None: + _create_ad_group_targeting( + client, customer_id, ad_group_id, feed_items[0] + ) + + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def _create_feed(client, customer_id): + """Creates a feed, which acts as a table to store data. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which the call is made. + + Returns: + The newly created feed. + """ + feed_service = client.get_service("FeedService", version="v5") + google_ads_service = client.get_service("GoogleAdsService", version="v5") + + feed_operation = client.get_type("FeedOperation", version="v5") + feed = feed_operation.create + feed.name.value = f"Sitelinks Feed {uuid.uuid4()}" + feed.origin = client.get_type("FeedOriginEnum", version="v5").USER + # Specify the column name and data type. This is just raw data at this + # point, and not yet linked to any particular purpose. The names are used + # to help us remember what they are intended for later. + feed_attribute_type_enum = client.get_type( + "FeedAttributeTypeEnum", version="v5" + ) + feed.attributes.extend( + [ + _create_feed_attribute( + client, "Link Text", feed_attribute_type_enum.STRING + ), + _create_feed_attribute( + client, "Link Final URL", feed_attribute_type_enum.URL_LIST + ), + _create_feed_attribute( + client, "Line 1", feed_attribute_type_enum.STRING + ), + _create_feed_attribute( + client, "Line 2", feed_attribute_type_enum.STRING + ), + ] + ) + + response = feed_service.mutate_feeds(customer_id, [feed_operation]) + feed_resource_name = response.results[0].resource_name + print(f"Created feed with resource name '{feed_resource_name}'.") + + # After we create the feed, we need to fetch it so we can determine the + # attribute IDs, which will be required when populating feed items. + search_response = google_ads_service.search( + customer_id, + "SELECT feed.attributes FROM feed WHERE feed.resource_name = " + f"'{feed_resource_name}'", + ) + return next(iter(search_response)).feed + + +def _create_feed_attribute(client, name, attribute_type): + """Helper method to construct a single FeedAttribute. + + Args: + client: The Google Ads API client instance. + name: The string attribute name to set on the new attribute. + attribute_type: The FeedAttributeType to set on the new attribute. + + Returns: + A new FeedAttribute instance. + """ + feed_attribute = client.get_type("FeedAttribute", version="v5") + feed_attribute.name.value = name + feed_attribute.type = attribute_type + return feed_attribute + + +def _create_feed_items(client, customer_id, feed): + """Creates feed items, which fill out the feed table with data. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which the call is made. + feed: The feed for which the operation will be created. + + Returns: + A list of string Feed Item Resource Names. + """ + feed_item_service = client.get_service("FeedItemService", version="v5") + operations = [ + _new_feed_item_operation( + client, + feed, + "Home", + "http://www.example.com", + "Home line 1", + "Home line 2", + ), + _new_feed_item_operation( + client, + feed, + "Stores", + "http://www.example.com/stores", + "Stores line 1", + "Stores line 2", + ), + _new_feed_item_operation( + client, + feed, + "On Sale", + "http://www.example.com/sale", + "On Sale line 1", + "On Sale line 2", + ), + _new_feed_item_operation( + client, + feed, + "Support", + "http://www.example.com/support", + "Support line 1", + "Support line 2", + ), + _new_feed_item_operation( + client, + feed, + "Products", + "http://www.example.com/catalogue", + "Products line 1", + "Products line 2", + ), + _new_feed_item_operation( + client, + feed, + "About Us", + "http://www.example.com/about", + "About Us line 1", + "About Us line 2", + ), + ] + + response = feed_item_service.mutate_feed_items(customer_id, operations) + + # We will need the resource name of each feed item to use in targeting. + feed_item_resource_names = [] + + print("Created the following feed items:") + + for feed_item_result in response.results: + print(f"\t{feed_item_result.resource_name}") + feed_item_resource_names.append(feed_item_result.resource_name) + + return feed_item_resource_names + + +def _new_feed_item_operation(client, feed, text, final_url, line1, line2): + """Helper method to construct a single FeedAttribute. + + Args: + client: The Google Ads API client instance. + feed: The feed for which the operation will be created. + text: The link text for the feed item. + final_url: The final URL for the feed item. + line1: Line 1 of the feed item. + line2: Line 2 of the feed item. + + Returns: + The newly created FeedItemOperation instance. + """ + final_url_string_value = client.get_type("StringValue", version="v5") + final_url_string_value.value = final_url + + feed_item_operation = client.get_type("FeedItemOperation", version="v5") + feed_item = feed_item_operation.create + feed_item.feed.value = feed.resource_name + + for i in range(0, 4): + attribute_value = client.get_type( + "FeedItemAttributeValue", version="v5" + ) + attribute_value.feed_attribute_id.value = feed.attributes[i].id.value + + feed_item.attribute_values.append(attribute_value) + + # The attribute IDs come back in the same order that they were added. + feed_item.attribute_values[0].string_value.value = text + feed_item.attribute_values[1].string_values.append(final_url_string_value) + feed_item.attribute_values[2].string_value.value = line1 + feed_item.attribute_values[3].string_value.value = line2 + + return feed_item_operation + + +def _create_feed_mapping(client, customer_id, feed): + """Creates a feed mapping. + + Feed mappings tell Google Ads how to interpret this data to display + additional sitelink information on ads. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which the call is made. + feed: The feed for which the operation will be created. + """ + feed_mapping_service = client.get_service( + "FeedMappingService", version="v5" + ) + + feed_mapping_operation = client.get_type( + "FeedMappingOperation", version="v5" + ) + feed_mapping = feed_mapping_operation.create + feed_mapping.placeholder_type = client.get_type( + "PlaceholderTypeEnum", version="v5" + ).SITELINK + feed_mapping.feed.value = feed.resource_name + + sitelink_placeholder_field_enum = client.get_type( + "SitelinkPlaceholderFieldEnum", version="v5" + ) + field_names_map = { + "Link Text": sitelink_placeholder_field_enum.TEXT, + "Link Final URL": sitelink_placeholder_field_enum.FINAL_URLS, + "Line 1": sitelink_placeholder_field_enum.LINE_1, + "Line 2": sitelink_placeholder_field_enum.LINE_2, + } + + for feed_attribute in feed.attributes: + attribute_field_mapping = client.get_type( + "AttributeFieldMapping", version="v5" + ) + attribute_field_mapping.feed_attribute_id.value = ( + feed_attribute.id.value + ) + + attribute_field_mapping.sitelink_field = field_names_map[ + feed_attribute.name.value + ] + + feed_mapping.attribute_field_mappings.append(attribute_field_mapping) + + response = feed_mapping_service.mutate_feed_mappings( + customer_id, [feed_mapping_operation] + ) + print(f"Created feed mapping '{response.results[0].resource_name}'.") + + +def _create_campaign_feed(client, customer_id, campaign_id, feed): + """Creates a campaign feed. + + Campaign feeds tell Google Ads which campaigns to use the provided data + with. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which the call is made. + campaign_id: The campaign to receive the feed. + feed: The feed to connect to the campaign. + """ + campaign_feed_service = client.get_service( + "CampaignFeedService", version="v5" + ) + + # Fetch the feed item IDs and collapse into a single comma-separated string. + aggregated_feed_item_ids = ",".join( + [str(attribute.id.value) for attribute in feed.attributes] + ) + + campaign_feed_operation = client.get_type( + "CampaignFeedOperation", version="v5" + ) + campaign_feed = campaign_feed_operation.create + campaign_feed.feed.value = feed.resource_name + campaign_feed.campaign.value = client.get_service( + "CampaignService", version="v5" + ).campaign_path(customer_id, campaign_id) + campaign_feed.matching_function.function_string.value = ( + f"AND(IN(FEED_ITEM_ID,{{ {aggregated_feed_item_ids} }})" + ",EQUALS(CONTEXT.DEVICE,'Mobile'))" + ) + campaign_feed.placeholder_types.append( + client.get_type("PlaceholderTypeEnum", version="v5").SITELINK + ) + + response = campaign_feed_service.mutate_campaign_feeds( + customer_id, [campaign_feed_operation] + ) + print(f"Created campaign feed '{response.results[0].resource_name}'.") + + +def _create_ad_group_targeting(client, customer_id, ad_group_id, feed_item): + """Targets the feed items to the given ad group. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which the call is made. + ad_group_id: The ID of the Ad Group being targeted. + feed_item: The feed item that was added to the feed. + """ + feed_item_target_service = client.get_service( + "FeedItemTargetService", version="v5" + ) + + feed_item_target_operation = client.get_type( + "FeedItemTargetOperation", version="v5" + ) + feed_item_target = feed_item_target_operation.create + feed_item_target.feed_item.value = feed_item + feed_item_target.ad_group.value = client.get_service( + "AdGroupService", version="v5" + ).ad_group_path(customer_id, ad_group_id) + + response = feed_item_target_service.mutate_feed_item_targets( + customer_id, [feed_item_target_operation] + ) + print( + f"Created feed item target '{response.results[0].resource_name}' " + f"for feed item '{feed_item}'." + ) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Adds sitelinks to a campaign using feed services." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--campaign_id", + type=str, + required=True, + default=None, + help="ID of the campaign to which sitelinks will be added.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=False, + help="The ID of the ad group to which sitelinks will be added.", + ) + args = parser.parse_args() + + main( + google_ads_client, args.customer_id, args.campaign_id, args.ad_group_id + ) diff --git a/examples/hotel_ads/add_hotel_ad.py b/examples/hotel_ads/add_hotel_ad.py index 4dddd2221..0200720c4 100755 --- a/examples/hotel_ads/add_hotel_ad.py +++ b/examples/hotel_ads/add_hotel_ad.py @@ -28,202 +28,252 @@ import google.ads.google_ads.client -def main(client, customer_id, hotel_center_account_id, - bid_ceiling_micro_amount): +def main( + client, customer_id, hotel_center_account_id, bid_ceiling_micro_amount +): budget_resource_name = add_budget(client, customer_id) - campaign_resource_name = add_hotel_campaign( - client, customer_id, budget_resource_name, hotel_center_account_id, - bid_ceiling_micro_amount) - - - ad_group_resource_name = add_hotel_ad_group(client, customer_id, - campaign_resource_name) + client, + customer_id, + budget_resource_name, + hotel_center_account_id, + bid_ceiling_micro_amount, + ) + ad_group_resource_name = add_hotel_ad_group( + client, customer_id, campaign_resource_name + ) add_hotel_ad(client, customer_id, ad_group_resource_name) def add_budget(client, customer_id): - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) # Create a budget, which can be shared by multiple campaigns. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.name = "Interplanetary Budget %s" % uuid.uuid4() campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum').STANDARD - campaign_budget.amount_micros.value = 500000 + "BudgetDeliveryMethodEnum" + ).STANDARD + campaign_budget.amount_micros = 500000 # Add budget. try: - campaign_budget_response = ( - campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation])) + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) budget_resource_name = campaign_budget_response.results[0].resource_name - print('Created budget %s' % budget_resource_name) + print("Created budget %s" % budget_resource_name) return budget_resource_name def add_hotel_ad(client, customer_id, ad_group_resource_name): - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") # Creates a new ad group ad and sets the hotel ad to it. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create - ad_group_ad.ad_group.value = ad_group_resource_name + ad_group_ad.ad_group = ad_group_resource_name # Set the ad group ad to enabled. Setting this to paused will cause an error # for hotel campaigns. For hotels pausing should happen at either the ad group or # campaign level. - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').ENABLED - ad_group_ad.ad.hotel_ad.CopyFrom(client.get_type('HotelAdInfo', - version='v4')) + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).ENABLED + ad_group_ad.ad.hotel_ad.CopyFrom( + client.get_type("HotelAdInfo", version="v5") + ) # Add the ad group ad. try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) ad_group_ad_resource_name = ad_group_ad_response.results[0].resource_name - print('Created hotel ad %s.' % ad_group_ad_resource_name) + print("Created hotel ad %s." % ad_group_ad_resource_name) return ad_group_resource_name def add_hotel_ad_group(client, customer_id, campaign_resource_name): - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") # Create ad group. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.create - ad_group.name.value = 'Earth to Mars cruise %s' % uuid.uuid4() - ad_group.status = client.get_type('AdGroupStatusEnum', version='v4').ENABLED - ad_group.campaign.value = campaign_resource_name + ad_group.name = "Earth to Mars cruise %s" % uuid.uuid4() + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + ad_group.campaign = campaign_resource_name # Sets the ad group type to HOTEL_ADS. This cannot be set to other types. - ad_group.type = client.get_type('AdGroupTypeEnum', version='v4').HOTEL_ADS - ad_group.cpc_bid_micros.value = 10000000 + ad_group.type = client.get_type("AdGroupTypeEnum", version="v5").HOTEL_ADS + ad_group.cpc_bid_micros = 10000000 # Add the ad group. try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) ad_group_resource_name = ad_group_response.results[0].resource_name - print('Added a hotel ad group with resource name "%s".' - % ad_group_resource_name) + print( + 'Added a hotel ad group with resource name "%s".' + % ad_group_resource_name + ) return ad_group_resource_name -def add_hotel_campaign(client, customer_id, budget_resource_name, - hotel_center_account_id, bid_ceiling_micro_amount): - campaign_service = client.get_service('CampaignService', version='v4') +def add_hotel_campaign( + client, + customer_id, + budget_resource_name, + hotel_center_account_id, + bid_ceiling_micro_amount, +): + campaign_service = client.get_service("CampaignService", version="v5") # Create campaign. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = 'Interplanetary Cruise Campaign %s' % uuid.uuid4() + campaign.name = "Interplanetary Cruise Campaign %s" % uuid.uuid4() # Configures settings related to hotel campaigns including advertising # channel type and hotel setting info. campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum').HOTEL - campaign.hotel_setting.hotel_center_id.value = hotel_center_account_id + "AdvertisingChannelTypeEnum" + ).HOTEL + campaign.hotel_setting.hotel_center_id = hotel_center_account_id # Recommendation: Set the campaign to PAUSED when creating it to prevent the # ads from immediately serving. Set to ENABLED once you've added targeting # and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # Set the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC # can be used for hotel campaigns. - campaign.percent_cpc.cpc_bid_ceiling_micros.value = ( - bid_ceiling_micro_amount) + campaign.percent_cpc.cpc_bid_ceiling_micros = bid_ceiling_micro_amount # Sets the budget. - campaign.campaign_budget.value = budget_resource_name + campaign.campaign_budget = budget_resource_name # Set the campaign network options. Only Google Search is allowed for hotel # campaigns. - campaign.network_settings.target_google_search.value = True + campaign.network_settings.target_google_search = True # Add the campaign. try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) campaign_resource_name = campaign_response.results[0].resource_name - print('Added a hotel campaign with resource name "%s".' - % campaign_resource_name) + print( + 'Added a hotel campaign with resource name "%s".' + % campaign_resource_name + ) return campaign_resource_name -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds an expanded text ad to the specified ad group ID, ' - 'for the given customer ID.')) + description=( + "Adds an expanded text ad to the specified ad group ID, " + "for the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-b', '--bid_ceiling_micro_amount', type=int, - required=True, help=('The bid ceiling micro amount for ' - 'the hotel campaign.')) - parser.add_argument('-a', '--hotel_center_account_id', type=int, - required=True, help='The hotel center account ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-b", + "--bid_ceiling_micro_amount", + type=int, + required=True, + help=("The bid ceiling micro amount for " "the hotel campaign."), + ) + parser.add_argument( + "-a", + "--hotel_center_account_id", + type=int, + required=True, + help="The hotel center account ID.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.hotel_center_account_id, - args.bid_ceiling_micro_amount) + main( + google_ads_client, + args.customer_id, + args.hotel_center_account_id, + args.bid_ceiling_micro_amount, + ) diff --git a/examples/hotel_ads/add_hotel_ad_group_bid_modifiers.py b/examples/hotel_ads/add_hotel_ad_group_bid_modifiers.py index c6366d47f..c69db5b00 100755 --- a/examples/hotel_ads/add_hotel_ad_group_bid_modifiers.py +++ b/examples/hotel_ads/add_hotel_ad_group_bid_modifiers.py @@ -25,70 +25,91 @@ def main(client, customer_id, ad_group_id): - ad_group_service = client.get_service('AdGroupService', version='v4') - ag_bm_service = client.get_service('AdGroupBidModifierService', - version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + ag_bm_service = client.get_service( + "AdGroupBidModifierService", version="v5" + ) # Create ad group bid modifier based on hotel check-in day. - check_in_ag_bm_operation = client.get_type('AdGroupBidModifierOperation', - version='v4') + check_in_ag_bm_operation = client.get_type( + "AdGroupBidModifierOperation", version="v5" + ) check_in_ag_bid_modifier = check_in_ag_bm_operation.create - check_in_ag_bid_modifier.hotel_check_in_day.day_of_week = ( - client.get_type('DayOfWeekEnum', version='v4').MONDAY) - check_in_ag_bid_modifier.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + check_in_ag_bid_modifier.hotel_check_in_day.day_of_week = client.get_type( + "DayOfWeekEnum", version="v5" + ).MONDAY + check_in_ag_bid_modifier.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Sets the bid modifier value to 150%. - check_in_ag_bid_modifier.bid_modifier.value = 1.5 + check_in_ag_bid_modifier.bid_modifier = 1.5 # Create ad group bid modifier based on hotel length of stay info. - los_ag_bm_operation = client.get_type('AdGroupBidModifierOperation', - version='v4') + los_ag_bm_operation = client.get_type( + "AdGroupBidModifierOperation", version="v5" + ) los_ag_bid_modifier = los_ag_bm_operation.create - los_ag_bid_modifier.ad_group.value = ad_group_service.ad_group_path( - customer_id, ad_group_id) + los_ag_bid_modifier.ad_group = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Creates the hotel length of stay info. hotel_length_of_stay_info = los_ag_bid_modifier.hotel_length_of_stay - hotel_length_of_stay_info.min_nights.value = 3 - hotel_length_of_stay_info.max_nights.value = 7 + hotel_length_of_stay_info.min_nights = 3 + hotel_length_of_stay_info.max_nights = 7 # Sets the bid modifier value to 170%. - los_ag_bid_modifier.bid_modifier.value = 1.7 + los_ag_bid_modifier.bid_modifier = 1.7 # Add the bid modifiers try: ag_bm_response = ag_bm_service.mutate_ad_groups( - customer_id, [check_in_ag_bm_operation, los_ag_bm_operation]) + customer_id, [check_in_ag_bm_operation, los_ag_bm_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) # Print out resource names of the added ad group bid modifiers. - print('Added %d hotel ad group bid modifiers:' - % len(ag_bm_response.results)) + print( + "Added %d hotel ad group bid modifiers:" % len(ag_bm_response.results) + ) for result in ag_bm_response.results: print(result.resource_name) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds an ad group bid modifier to a hotel ad group.')) + description=("Adds an ad group bid modifier to a hotel ad group.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, - help='The ad group ID of the hotel ad group.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=True, + help="The ad group ID of the hotel ad group.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/migration/create_complete_campaign_adwords_api_only.py b/examples/migration/create_complete_campaign_adwords_api_only.py index c574e6f48..e5f728b92 100755 --- a/examples/migration/create_complete_campaign_adwords_api_only.py +++ b/examples/migration/create_complete_campaign_adwords_api_only.py @@ -35,7 +35,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] def create_campaign_budget(client): @@ -48,24 +48,22 @@ def create_campaign_budget(client): Returns: (str) Budget ID of the newly created budget. """ - budget_service = client.GetService('BudgetService', version='v201809') + budget_service = client.GetService("BudgetService", version="v201809") budget = { - 'name' : 'Interplanetary Cruise Budget #{}'.format(uuid.uuid4()), - 'amount': { - 'microAmount' : '50000000' - }, - 'deliveryMethod' : 'STANDARD' + "name": "Interplanetary Cruise Budget #{}".format(uuid.uuid4()), + "amount": {"microAmount": "50000000"}, + "deliveryMethod": "STANDARD", } - budget_operations = [{ - 'operator': 'ADD', - 'operand': budget - }] + budget_operations = [{"operator": "ADD", "operand": budget}] # Add budget. results = budget_service.mutate(budget_operations) - created_budget = results['value'][0] - print('Budget with ID {} and name {} was created'.format( - created_budget['budgetId'], created_budget['name'])) - return created_budget['budgetId'] + created_budget = results["value"][0] + print( + "Budget with ID {} and name {} was created".format( + created_budget["budgetId"], created_budget["name"] + ) + ) + return created_budget["budgetId"] def create_campaign(client, budget_id): @@ -78,39 +76,37 @@ def create_campaign(client, budget_id): Returns: (str) Campaign ID of the newly created Campaign. """ - campaign_service = client.GetService('CampaignService', version='v201809') + campaign_service = client.GetService("CampaignService", version="v201809") campaign = { - 'name': 'Interplanetary Cruise #{}'.format(uuid.uuid4()), - 'advertisingChannelType': 'SEARCH', + "name": "Interplanetary Cruise #{}".format(uuid.uuid4()), + "advertisingChannelType": "SEARCH", # Recommendation: Set the campaign to PAUSED when creating it to stop the # ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - 'status': 'PAUSED', - 'biddingStrategyConfiguration': { - 'biddingStrategyType': 'MANUAL_CPC', - }, - 'startDate': (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d'), - 'endDate': (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d'), + "status": "PAUSED", + "biddingStrategyConfiguration": {"biddingStrategyType": "MANUAL_CPC",}, + "startDate": (datetime.datetime.now() + datetime.timedelta(1)).strftime( + "%Y%m%d" + ), + "endDate": (datetime.datetime.now() + datetime.timedelta(365)).strftime( + "%Y%m%d" + ), # Budget (required) - note only the budget ID is required. - 'budget': { - 'budgetId': budget_id + "budget": {"budgetId": budget_id}, + "networkSetting": { + "targetGoogleSearch": "true", + "targetSearchNetwork": "true", }, - 'networkSetting': { - 'targetGoogleSearch': 'true', - 'targetSearchNetwork': 'true', - } } - campaign_operations = [{ - 'operator': 'ADD', - 'operand': campaign - }] + campaign_operations = [{"operator": "ADD", "operand": campaign}] results = campaign_service.mutate(campaign_operations) - created_campaign = results['value'][0] - print('CreatedCampign with ID {} and name {} was created'.format( - created_campaign['id'], created_campaign['name'])) - return created_campaign['id'] + created_campaign = results["value"][0] + print( + "CreatedCampign with ID {} and name {} was created".format( + created_campaign["id"], created_campaign["name"] + ) + ) + return created_campaign["id"] def create_ad_group(client, campaign_id): @@ -124,34 +120,34 @@ def create_ad_group(client, campaign_id): Returns: (str) Ad group ID of the newly created ad group. """ - ad_group_service = client.GetService('AdGroupService', 'v201809') + ad_group_service = client.GetService("AdGroupService", "v201809") ad_group = { - 'name': 'Earth to Mars Cruise #{}'.format(uuid.uuid4()), - 'campaignId': campaign_id, - 'status': 'ENABLED', - 'biddingStrategyConfiguration' : { - 'bids': [{ - # The 'xsi_type' field allows you to specify the xsi:type of the - # object being created. It's only necessary when you must provide - # an explicit type that the client library can't infer. - 'xsi_type': 'CpcBid', - 'bid': { - 'microAmount': 10000000 + "name": "Earth to Mars Cruise #{}".format(uuid.uuid4()), + "campaignId": campaign_id, + "status": "ENABLED", + "biddingStrategyConfiguration": { + "bids": [ + { + # The 'xsi_type' field allows you to specify the xsi:type of the + # object being created. It's only necessary when you must provide + # an explicit type that the client library can't infer. + "xsi_type": "CpcBid", + "bid": {"microAmount": 10000000}, } - }] + ] }, - 'adGroupAdRotationMode': 'OPTIMIZE' + "adGroupAdRotationMode": "OPTIMIZE", } - adgroup_operations = [{ - 'operator': 'ADD', - 'operand': ad_group - }] + adgroup_operations = [{"operator": "ADD", "operand": ad_group}] results = ad_group_service.mutate(adgroup_operations) - created_ad_group = results['value'][0] - print('Ad group with ID {} and name {} was created'.format( - created_ad_group['id'], created_ad_group['name'])) - return created_ad_group['id'] + created_ad_group = results["value"][0] + print( + "Ad group with ID {} and name {} was created".format( + created_ad_group["id"], created_ad_group["name"] + ) + ) + return created_ad_group["id"] def create_text_ads(client, ad_group_id): @@ -161,37 +157,40 @@ def create_text_ads(client, ad_group_id): client: A google.ads.google_ads.client.GoogleAdsClient instance. ad_group_id: (str) Ad group ID to be referenced when creating text ads. """ - ad_group_service = client.GetService('AdGroupAdService', 'v201809') + ad_group_service = client.GetService("AdGroupAdService", "v201809") operations = [] for i in range(NUMBER_OF_ADS): operation = { - 'xsi_type': 'AdGroupAd', - 'adGroupId': ad_group_id, + "xsi_type": "AdGroupAd", + "adGroupId": ad_group_id, # Additional properties (non-required). - 'status': 'PAUSED', - 'ad': { - 'xsi_type': 'ExpandedTextAd', - 'headlinePart1': 'Cruise #{} to Mars'.format( - str(uuid.uuid4())[:8]), - 'headlinePart2': 'Best Space Cruise Line', - 'headlinePart3': 'For Your Loved Ones', - 'description': 'Buy your tickets now!', - 'description2': 'Discount ends soon', - 'finalUrls': ['http://www.example.com/'] - } + "status": "PAUSED", + "ad": { + "xsi_type": "ExpandedTextAd", + "headlinePart1": "Cruise #{} to Mars".format( + str(uuid.uuid4())[:8] + ), + "headlinePart2": "Best Space Cruise Line", + "headlinePart3": "For Your Loved Ones", + "description": "Buy your tickets now!", + "description2": "Discount ends soon", + "finalUrls": ["http://www.example.com/"], + }, } - adgroup_operations = { - 'operator': 'ADD', - 'operand': operation - } + adgroup_operations = {"operator": "ADD", "operand": operation} operations.append(adgroup_operations) results = ad_group_service.mutate(operations) - for result in results['value']: - print('Expanded text ad with ID {} and ' - 'headline {}-{} {} was created'.format( - result['ad']['id'], result['ad']['headlinePart1'], - result['ad']['headlinePart2'], result['ad']['headlinePart3'])) + for result in results["value"]: + print( + "Expanded text ad with ID {} and " + "headline {}-{} {} was created".format( + result["ad"]["id"], + result["ad"]["headlinePart1"], + result["ad"]["headlinePart2"], + result["ad"]["headlinePart3"], + ) + ) def create_keywords(client, ad_group_id, keywords_to_add): @@ -203,37 +202,43 @@ def create_keywords(client, ad_group_id, keywords_to_add): keywords_to_add: (list) A list of keywords to be added to a given ad group. """ - ad_group_criterion_service = client.GetService('AdGroupCriterionService', - 'v201809') + ad_group_criterion_service = client.GetService( + "AdGroupCriterionService", "v201809" + ) operations = [] for keyword in keywords_to_add: operation = { - 'xsi_type': 'BiddableAdGroupCriterion', - 'adGroupId': ad_group_id, - 'criterion': { - 'xsi_type' : 'Keyword', - 'text': keyword, - 'matchType' : 'BROAD' + "xsi_type": "BiddableAdGroupCriterion", + "adGroupId": ad_group_id, + "criterion": { + "xsi_type": "Keyword", + "text": keyword, + "matchType": "BROAD", }, - 'userStatus': 'PAUSED', - 'finalUrls' : ['http://www.example.com/mars/cruise/?kw={}'.format( - urllib.parse.quote(keyword))] - } - create_keyword = { - 'operator': 'ADD', - 'operand': operation + "userStatus": "PAUSED", + "finalUrls": [ + "http://www.example.com/mars/cruise/?kw={}".format( + urllib.parse.quote(keyword) + ) + ], } + create_keyword = {"operator": "ADD", "operand": operation} operations.append(create_keyword) results = ad_group_criterion_service.mutate(operations) - for result in results['value']: - print('Keyword with ad group ID {}, keyword ID {}, text {} and match' - 'type {} was created'.format(result['adGroupId'], - result['criterion']['id'], result['criterion']['text'], - result['criterion']['matchType'])) - - -if __name__ == '__main__': + for result in results["value"]: + print( + "Keyword with ad group ID {}, keyword ID {}, text {} and match" + "type {} was created".format( + result["adGroupId"], + result["criterion"]["id"], + result["criterion"]["text"], + result["criterion"]["matchType"], + ) + ) + + +if __name__ == "__main__": # Initialize the client object. # By default, it will read the config file from the Home Directory. adwords_client = adwords.AdWordsClient.LoadFromStorage() diff --git a/examples/migration/create_complete_campaign_both_apis_phase_1.py b/examples/migration/create_complete_campaign_both_apis_phase_1.py index ffe1f0046..f320eaf0c 100755 --- a/examples/migration/create_complete_campaign_both_apis_phase_1.py +++ b/examples/migration/create_complete_campaign_both_apis_phase_1.py @@ -42,7 +42,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] PAGE_SIZE = 1000 @@ -54,29 +54,30 @@ def create_campaign_budget(client, customer_id): customer_id: (str) Customer ID associated with the account. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - campaign_service = client.get_service('CampaignBudgetService', version='v4') - operation = client.get_type('CampaignBudgetOperation', version='v4') + campaign_service = client.get_service("CampaignBudgetService", version="v5") + operation = client.get_type("CampaignBudgetOperation", version="v5") criterion = operation.create - criterion.name.value = 'Interplanetary Cruise Budget #{}'.format( - uuid.uuid4()) + criterion.name = "Interplanetary Cruise Budget #{}".format(uuid.uuid4()) criterion.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', - version='v4').STANDARD - criterion.amount_micros.value = 500000 - response = campaign_service.mutate_campaign_budgets(customer_id, - [operation]) + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + criterion.amount_micros = 500000 + response = campaign_service.mutate_campaign_budgets( + customer_id, [operation] + ) campaign_budget_resource_name = response.results[0].resource_name - new_campaign_budget = get_campaign_budget(client, customer_id, - campaign_budget_resource_name) - print('Added budget named {}'.format(new_campaign_budget.name.value)) + new_campaign_budget = get_campaign_budget( + client, customer_id, campaign_budget_resource_name + ) + print("Added budget named {}".format(new_campaign_budget.name)) return new_campaign_budget def get_campaign_budget(client, customer_id, resource_name): - """Retrieves an instance of google.ads.google_ads.v4.types.CampaignBudget + """Retrieves an instance of google.ads.google_ads.v5.types.CampaignBudget message class that is associated with a given resource name. Args: @@ -86,13 +87,15 @@ def get_campaign_budget(client, customer_id, resource_name): campaign. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign_budget.id, campaign_budget.name, ' - 'campaign_budget.resource_name FROM campaign_budget WHERE ' - 'campaign_budget.resource_name = "{}"'.format(resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign_budget.id, campaign_budget.name, " + "campaign_budget.resource_name FROM campaign_budget WHERE " + 'campaign_budget.resource_name = "{}"'.format(resource_name) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) budget = list(response)[0].campaign_budget return budget @@ -108,39 +111,37 @@ def create_campaign(client, budget_id): Returns: (str) Campaign ID of the newly created Campaign. """ - campaign_service = client.GetService('CampaignService', version='v201809') + campaign_service = client.GetService("CampaignService", version="v201809") campaign = { - 'name': 'Interplanetary Cruise #{}'.format(uuid.uuid4()), - 'advertisingChannelType': 'SEARCH', + "name": "Interplanetary Cruise #{}".format(uuid.uuid4()), + "advertisingChannelType": "SEARCH", # Recommendation: Set the campaign to PAUSED when creating it to stop # the ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - 'status': 'PAUSED', - 'biddingStrategyConfiguration': { - 'biddingStrategyType': 'MANUAL_CPC', - }, - 'startDate': (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d'), - 'endDate': (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d'), + "status": "PAUSED", + "biddingStrategyConfiguration": {"biddingStrategyType": "MANUAL_CPC",}, + "startDate": (datetime.datetime.now() + datetime.timedelta(1)).strftime( + "%Y%m%d" + ), + "endDate": (datetime.datetime.now() + datetime.timedelta(365)).strftime( + "%Y%m%d" + ), # Budget (required) - note only the budget ID is required. - 'budget': { - 'budgetId': budget_id + "budget": {"budgetId": budget_id}, + "networkSetting": { + "targetGoogleSearch": "true", + "targetSearchNetwork": "true", }, - 'networkSetting': { - 'targetGoogleSearch': 'true', - 'targetSearchNetwork': 'true', - } } - campaign_operations = [{ - 'operator': 'ADD', - 'operand': campaign - }] + campaign_operations = [{"operator": "ADD", "operand": campaign}] results = campaign_service.mutate(campaign_operations) - created_campaign = results['value'][0] - print('CreatedCampign with ID {} and name {} was created'.format( - created_campaign['id'], created_campaign['name'])) - return created_campaign['id'] + created_campaign = results["value"][0] + print( + "CreatedCampign with ID {} and name {} was created".format( + created_campaign["id"], created_campaign["name"] + ) + ) + return created_campaign["id"] def create_ad_group(client, campaign_id): @@ -153,34 +154,34 @@ def create_ad_group(client, campaign_id): Returns: (str) Ad group ID of the newly created ad group. """ - ad_group_service = client.GetService('AdGroupService', 'v201809') + ad_group_service = client.GetService("AdGroupService", "v201809") ad_group = { - 'name': 'Earth to Mars Cruise #{}'.format(uuid.uuid4()), - 'campaignId': campaign_id, - 'status': 'ENABLED', - 'biddingStrategyConfiguration' : { - 'bids': [{ - # The 'xsi_type' field allows you to specify the xsi:type of the - # object being created. It's only necessary when you must - # provide an explicit type that the client library can't infer. - 'xsi_type': 'CpcBid', - 'bid': { - 'microAmount': 10000000 + "name": "Earth to Mars Cruise #{}".format(uuid.uuid4()), + "campaignId": campaign_id, + "status": "ENABLED", + "biddingStrategyConfiguration": { + "bids": [ + { + # The 'xsi_type' field allows you to specify the xsi:type of the + # object being created. It's only necessary when you must + # provide an explicit type that the client library can't infer. + "xsi_type": "CpcBid", + "bid": {"microAmount": 10000000}, } - }] + ] }, - 'adGroupAdRotationMode': 'OPTIMIZE' + "adGroupAdRotationMode": "OPTIMIZE", } - adgroup_operations = [{ - 'operator': 'ADD', - 'operand': ad_group - }] + adgroup_operations = [{"operator": "ADD", "operand": ad_group}] results = ad_group_service.mutate(adgroup_operations) - created_ad_group = results['value'][0] - print('Ad group with ID {} and name {} was created'.format( - created_ad_group['id'], created_ad_group['name'])) - return created_ad_group['id'] + created_ad_group = results["value"][0] + print( + "Ad group with ID {} and name {} was created".format( + created_ad_group["id"], created_ad_group["name"] + ) + ) + return created_ad_group["id"] def create_text_ads(client, ad_group_id): @@ -190,37 +191,40 @@ def create_text_ads(client, ad_group_id): client: An instance of the googleads.adwords.AdWordsClient class. ad_group_id: (str) Ad group ID to be referenced when creating text ads. """ - ad_group_service = client.GetService('AdGroupAdService', 'v201809') + ad_group_service = client.GetService("AdGroupAdService", "v201809") operations = [] for i in range(NUMBER_OF_ADS): operation = { - 'xsi_type': 'AdGroupAd', - 'adGroupId': ad_group_id, + "xsi_type": "AdGroupAd", + "adGroupId": ad_group_id, # Additional properties (non-required). - 'status': 'PAUSED', - 'ad': { - 'xsi_type': 'ExpandedTextAd', - 'headlinePart1': 'Cruise #{} to Mars'.format( - str(uuid.uuid4())[:8]), - 'headlinePart2': 'Best Space Cruise Line', - 'headlinePart3': 'For Your Loved Ones', - 'description': 'Buy your tickets now!', - 'description2': 'Discount ends soon', - 'finalUrls': ['http://www.example.com/'] - } + "status": "PAUSED", + "ad": { + "xsi_type": "ExpandedTextAd", + "headlinePart1": "Cruise #{} to Mars".format( + str(uuid.uuid4())[:8] + ), + "headlinePart2": "Best Space Cruise Line", + "headlinePart3": "For Your Loved Ones", + "description": "Buy your tickets now!", + "description2": "Discount ends soon", + "finalUrls": ["http://www.example.com/"], + }, } - adgroup_operations = { - 'operator': 'ADD', - 'operand': operation - } + adgroup_operations = {"operator": "ADD", "operand": operation} operations.append(adgroup_operations) results = ad_group_service.mutate(operations) - for result in results['value']: - print('Expanded text ad with ID {} and ' - 'headline {}-{} {} was created'.format( - result['ad']['id'], result['ad']['headlinePart1'], - result['ad']['headlinePart2'], result['ad']['headlinePart3'])) + for result in results["value"]: + print( + "Expanded text ad with ID {} and " + "headline {}-{} {} was created".format( + result["ad"]["id"], + result["ad"]["headlinePart1"], + result["ad"]["headlinePart2"], + result["ad"]["headlinePart3"], + ) + ) def create_keywords(client, ad_group_id, keywords_to_add): @@ -232,50 +236,62 @@ def create_keywords(client, ad_group_id, keywords_to_add): keywords_to_add: (list) A list of keywords to be added to a given ad group. """ - ad_group_criterion_service = client.GetService('AdGroupCriterionService', - 'v201809') + ad_group_criterion_service = client.GetService( + "AdGroupCriterionService", "v201809" + ) operations = [] for keyword in keywords_to_add: operation = { - 'xsi_type': 'BiddableAdGroupCriterion', - 'adGroupId': ad_group_id, - 'criterion': { - 'xsi_type' : 'Keyword', - 'text': keyword, - 'matchType' : 'BROAD' + "xsi_type": "BiddableAdGroupCriterion", + "adGroupId": ad_group_id, + "criterion": { + "xsi_type": "Keyword", + "text": keyword, + "matchType": "BROAD", }, - 'userStatus': 'PAUSED', - 'finalUrls' : ['http://www.example.com/mars/cruise/?kw={}'.format( - urllib.parse.quote(keyword))] - } - create_keyword = { - 'operator': 'ADD', - 'operand': operation + "userStatus": "PAUSED", + "finalUrls": [ + "http://www.example.com/mars/cruise/?kw={}".format( + urllib.parse.quote(keyword) + ) + ], } + create_keyword = {"operator": "ADD", "operand": operation} operations.append(create_keyword) results = ad_group_criterion_service.mutate(operations) - for result in results['value']: - print('Keyword with ad group ID {}, keyword ID {}, text {} and match' - 'type {} was created'.format(result['adGroupId'], - result['criterion']['id'], result['criterion']['text'], - result['criterion']['matchType'])) - - -if __name__ == '__main__': + for result in results["value"]: + print( + "Keyword with ad group ID {}, keyword ID {}, text {} and match" + "type {} was created".format( + result["adGroupId"], + result["criterion"]["id"], + result["criterion"]["text"], + result["criterion"]["matchType"], + ) + ) + + +if __name__ == "__main__": # Initialize client object. # It will read the config file. The default file path is the Home Directory. google_ads_client = GoogleAdsClient.load_from_storage() adwords_client = adwords.AdWordsClient.LoadFromStorage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() budget = create_campaign_budget(google_ads_client, args.customer_id) - campaign_id = create_campaign(adwords_client, budget.id.value) + campaign_id = create_campaign(adwords_client, budget.id) ad_group_id = create_ad_group(adwords_client, campaign_id) create_text_ads(adwords_client, ad_group_id) create_keywords(adwords_client, ad_group_id, KEYWORDS_TO_ADD) diff --git a/examples/migration/create_complete_campaign_both_apis_phase_2.py b/examples/migration/create_complete_campaign_both_apis_phase_2.py index bbdc2ef64..dd001d75f 100755 --- a/examples/migration/create_complete_campaign_both_apis_phase_2.py +++ b/examples/migration/create_complete_campaign_both_apis_phase_2.py @@ -41,7 +41,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] PAGE_SIZE = 1000 @@ -53,29 +53,30 @@ def create_campaign_budget(client, customer_id): customer_id: (str) Customer ID associated with the account. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - campaign_service = client.get_service('CampaignBudgetService', version='v4') - operation = client.get_type('CampaignBudgetOperation', version='v4') + campaign_service = client.get_service("CampaignBudgetService", version="v5") + operation = client.get_type("CampaignBudgetOperation", version="v5") criterion = operation.create - criterion.name.value = 'Interplanetary Cruise Budget #{}'.format( - uuid.uuid4()) + criterion.name = "Interplanetary Cruise Budget #{}".format(uuid.uuid4()) criterion.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', - version='v4').STANDARD - criterion.amount_micros.value = 500000 - response = campaign_service.mutate_campaign_budgets(customer_id, - [operation]) + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + criterion.amount_micros = 500000 + response = campaign_service.mutate_campaign_budgets( + customer_id, [operation] + ) campaign_budget_resource_name = response.results[0].resource_name - new_campaign_budget = get_campaign_budget(client, customer_id, - campaign_budget_resource_name) - print('Added budget named {}'.format(new_campaign_budget.name.value)) + new_campaign_budget = get_campaign_budget( + client, customer_id, campaign_budget_resource_name + ) + print("Added budget named {}".format(new_campaign_budget.name)) return new_campaign_budget def get_campaign_budget(client, customer_id, resource_name): - """Retrieves a google.ads.google_ads.v4.types.CampaignBudget instance.. + """Retrieves a google.ads.google_ads.v5.types.CampaignBudget instance.. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -83,13 +84,15 @@ def get_campaign_budget(client, customer_id, resource_name): resource_name: (str) Resource name associated with the newly created campaign. : - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign_budget.id, campaign_budget.name, ' - 'campaign_budget.resource_name FROM campaign_budget WHERE ' - 'campaign_budget.resource_name = "{}"'.format(resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign_budget.id, campaign_budget.name, " + "campaign_budget.resource_name FROM campaign_budget WHERE " + 'campaign_budget.resource_name = "{}"'.format(resource_name) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) budget = list(response)[0].campaign_budget return budget @@ -101,42 +104,44 @@ def create_campaign(client, customer_id, campaign_budget): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign_budget: A google.ads.google_ads.v4.types.CampaignBudget + campaign_budget: A google.ads.google_ads.v5.types.CampaignBudget message class instance. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - operation = client.get_type('CampaignOperation', version='v4') + operation = client.get_type("CampaignOperation", version="v5") campaign = operation.create - campaign_service = client.get_service('CampaignService', version='v4') - campaign.name.value = 'Interplanetary Cruise#{}'.format(uuid.uuid4()) + campaign_service = client.get_service("CampaignService", version="v5") + campaign.name = "Interplanetary Cruise#{}".format(uuid.uuid4()) campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', - version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to stop the # ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = campaign_budget.resource_name - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False - campaign.start_date.value = (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d') - campaign.end_date.value = (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d') + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget.resource_name + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False + campaign.start_date = ( + datetime.datetime.now() + datetime.timedelta(1) + ).strftime("%Y%m%d") + campaign.end_date = ( + datetime.datetime.now() + datetime.timedelta(365) + ).strftime("%Y%m%d") response = campaign_service.mutate_campaigns(customer_id, [operation]) campaign_resource_name = response.results[0].resource_name new_campaign = get_campaign(client, customer_id, campaign_resource_name) - print('Added campaign named {}'.format(new_campaign.name.value)) + print("Added campaign named {}".format(new_campaign.name)) return new_campaign def get_campaign(client, customer_id, campaign_resource_name): - """Retrieves a google.ads.google_ads.v4.types.Campaign instance. + """Retrieves a google.ads.google_ads.v5.types.Campaign instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -145,12 +150,15 @@ def get_campaign(client, customer_id, campaign_resource_name): created campaign budget. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign.id, campaign.name, campaign.resource_name ' - 'FROM campaign WHERE campaign.resource_name = "{}" ' - .format(campaign_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign.id, campaign.name, campaign.resource_name " + 'FROM campaign WHERE campaign.resource_name = "{}" '.format( + campaign_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) campaign = list(response)[0].campaign return campaign @@ -166,34 +174,34 @@ def create_ad_group(client, campaign_id): Returns: (str) Ad group ID of the newly created ad group. """ - ad_group_service = client.GetService('AdGroupService', 'v201809') + ad_group_service = client.GetService("AdGroupService", "v201809") ad_group = { - 'name': 'Earth to Mars Cruise #{}'.format(uuid.uuid4()), - 'campaignId': campaign_id, - 'status': 'ENABLED', - 'biddingStrategyConfiguration' : { - 'bids': [{ - # The 'xsi_type' field allows you to specify the xsi:type of the - # object being created. It's only necessary when you must - # provide an explicit type that the client library can't infer. - 'xsi_type': 'CpcBid', - 'bid': { - 'microAmount': 10000000 + "name": "Earth to Mars Cruise #{}".format(uuid.uuid4()), + "campaignId": campaign_id, + "status": "ENABLED", + "biddingStrategyConfiguration": { + "bids": [ + { + # The 'xsi_type' field allows you to specify the xsi:type of the + # object being created. It's only necessary when you must + # provide an explicit type that the client library can't infer. + "xsi_type": "CpcBid", + "bid": {"microAmount": 10000000}, } - }] + ] }, - 'adGroupAdRotationMode': 'OPTIMIZE' + "adGroupAdRotationMode": "OPTIMIZE", } - adgroup_operations = [{ - 'operator': 'ADD', - 'operand': ad_group - }] + adgroup_operations = [{"operator": "ADD", "operand": ad_group}] results = ad_group_service.mutate(adgroup_operations) - created_ad_group = results['value'][0] - print('Ad group with ID {} and name {} was created'.format( - created_ad_group['id'], created_ad_group['name'])) - return created_ad_group['id'] + created_ad_group = results["value"][0] + print( + "Ad group with ID {} and name {} was created".format( + created_ad_group["id"], created_ad_group["name"] + ) + ) + return created_ad_group["id"] def create_text_ads(client, ad_group_id): @@ -203,37 +211,40 @@ def create_text_ads(client, ad_group_id): client: An instance of the googleads.adwords.AdWordsClient class. ad_group_id: (str) Ad group ID to be referenced when creating text ads. """ - ad_group_service = client.GetService('AdGroupAdService', 'v201809') + ad_group_service = client.GetService("AdGroupAdService", "v201809") operations = [] for i in range(NUMBER_OF_ADS): operation = { - 'xsi_type': 'AdGroupAd', - 'adGroupId': ad_group_id, + "xsi_type": "AdGroupAd", + "adGroupId": ad_group_id, # Additional properties (non-required). - 'status': 'PAUSED', - 'ad': { - 'xsi_type': 'ExpandedTextAd', - 'headlinePart1': 'Cruise #{} to Mars'.format( - str(uuid.uuid4())[:8]), - 'headlinePart2': 'Best Space Cruise Line', - 'headlinePart3': 'For Your Loved Ones', - 'description': 'Buy your tickets now!', - 'description2': 'Discount ends soon', - 'finalUrls': ['http://www.example.com/'] - } + "status": "PAUSED", + "ad": { + "xsi_type": "ExpandedTextAd", + "headlinePart1": "Cruise #{} to Mars".format( + str(uuid.uuid4())[:8] + ), + "headlinePart2": "Best Space Cruise Line", + "headlinePart3": "For Your Loved Ones", + "description": "Buy your tickets now!", + "description2": "Discount ends soon", + "finalUrls": ["http://www.example.com/"], + }, } - adgroup_operations = { - 'operator': 'ADD', - 'operand': operation - } + adgroup_operations = {"operator": "ADD", "operand": operation} operations.append(adgroup_operations) results = ad_group_service.mutate(operations) - for result in results['value']: - print('Expanded text ad with ID {} and ' - 'headline {}-{} {} was created'.format( - result['ad']['id'], result['ad']['headlinePart1'], - result['ad']['headlinePart2'], result['ad']['headlinePart3'])) + for result in results["value"]: + print( + "Expanded text ad with ID {} and " + "headline {}-{} {} was created".format( + result["ad"]["id"], + result["ad"]["headlinePart1"], + result["ad"]["headlinePart2"], + result["ad"]["headlinePart3"], + ) + ) def create_keywords(client, ad_group_id, keywords_to_add): @@ -244,50 +255,62 @@ def create_keywords(client, ad_group_id, keywords_to_add): ad_group_id: (str) ad group ID to be referenced while creating text ads. keywords_to_add: (list) A list of keywords to be added to the ad group. """ - ad_group_criterion_service = client.GetService('AdGroupCriterionService', - 'v201809') + ad_group_criterion_service = client.GetService( + "AdGroupCriterionService", "v201809" + ) operations = [] for keyword in keywords_to_add: operation = { - 'xsi_type': 'BiddableAdGroupCriterion', - 'adGroupId': ad_group_id, - 'criterion': { - 'xsi_type' : 'Keyword', - 'text': keyword, - 'matchType' : 'BROAD' + "xsi_type": "BiddableAdGroupCriterion", + "adGroupId": ad_group_id, + "criterion": { + "xsi_type": "Keyword", + "text": keyword, + "matchType": "BROAD", }, - 'userStatus': 'PAUSED', - 'finalUrls' : ['http://www.example.com/mars/cruise/?kw={}'.format( - urllib.parse.quote(keyword))] - } - create_keyword = { - 'operator': 'ADD', - 'operand': operation + "userStatus": "PAUSED", + "finalUrls": [ + "http://www.example.com/mars/cruise/?kw={}".format( + urllib.parse.quote(keyword) + ) + ], } + create_keyword = {"operator": "ADD", "operand": operation} operations.append(create_keyword) results = ad_group_criterion_service.mutate(operations) - for result in results['value']: - print('Keyword with ad group ID {}, keyword ID {}, text {} and match' - 'type {} was created'.format(result['adGroupId'], - result['criterion']['id'], result['criterion']['text'], - result['criterion']['matchType'])) - - -if __name__ == '__main__': + for result in results["value"]: + print( + "Keyword with ad group ID {}, keyword ID {}, text {} and match" + "type {} was created".format( + result["adGroupId"], + result["criterion"]["id"], + result["criterion"]["text"], + result["criterion"]["matchType"], + ) + ) + + +if __name__ == "__main__": # Initialize client object. # It will read the config file. The default file path is the Home Directory. google_ads_client = GoogleAdsClient.load_from_storage() adwords_client = adwords.AdWordsClient.LoadFromStorage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() budget = create_campaign_budget(google_ads_client, args.customer_id) campaign = create_campaign(google_ads_client, args.customer_id, budget) - ad_group_id = create_ad_group(adwords_client, campaign.id.value) + ad_group_id = create_ad_group(adwords_client, campaign.id) create_text_ads(adwords_client, ad_group_id) create_keywords(adwords_client, ad_group_id, KEYWORDS_TO_ADD) diff --git a/examples/migration/create_complete_campaign_both_apis_phase_3.py b/examples/migration/create_complete_campaign_both_apis_phase_3.py index fdfd27f5b..10c0b0296 100755 --- a/examples/migration/create_complete_campaign_both_apis_phase_3.py +++ b/examples/migration/create_complete_campaign_both_apis_phase_3.py @@ -41,7 +41,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] PAGE_SIZE = 1000 @@ -53,29 +53,30 @@ def create_campaign_budget(client, customer_id): customer_id: (str) Customer ID associated with the account. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - campaign_service = client.get_service('CampaignBudgetService', version='v4') - operation = client.get_type('CampaignBudgetOperation', version='v4') + campaign_service = client.get_service("CampaignBudgetService", version="v5") + operation = client.get_type("CampaignBudgetOperation", version="v5") criterion = operation.create - criterion.name.value = 'Interplanetary Cruise Budget #{}'.format( - uuid.uuid4()) + criterion.name = "Interplanetary Cruise Budget #{}".format(uuid.uuid4()) criterion.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', - version='v4').STANDARD - criterion.amount_micros.value = 500000 - response = campaign_service.mutate_campaign_budgets(customer_id, - [operation]) + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + criterion.amount_micros = 500000 + response = campaign_service.mutate_campaign_budgets( + customer_id, [operation] + ) campaign_budget_resource_name = response.results[0].resource_name - new_campaign_budget = get_campaign_budget(client, customer_id, - campaign_budget_resource_name) - print('Added budget named {}'.format(new_campaign_budget.name.value)) + new_campaign_budget = get_campaign_budget( + client, customer_id, campaign_budget_resource_name + ) + print("Added budget named {}".format(new_campaign_budget.name)) return new_campaign_budget def get_campaign_budget(client, customer_id, resource_name): - """Retrieves a google.ads.google_ads.v4.types.CampaignBudget instance. + """Retrieves a google.ads.google_ads.v5.types.CampaignBudget instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -84,13 +85,15 @@ def get_campaign_budget(client, customer_id, resource_name): campaign. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign_budget.id, campaign_budget.name, ' - 'campaign_budget.resource_name FROM campaign_budget WHERE ' - 'campaign_budget.resource_name = "{}"'.format(resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign_budget.id, campaign_budget.name, " + "campaign_budget.resource_name FROM campaign_budget WHERE " + 'campaign_budget.resource_name = "{}"'.format(resource_name) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) budget = list(response)[0].campaign_budget return budget @@ -102,42 +105,44 @@ def create_campaign(client, customer_id, campaign_budget): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign_budget: A google.ads.google_ads.v4.types.CampaignBudget + campaign_budget: A google.ads.google_ads.v5.types.CampaignBudget instance. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.v5.types.GoogleAdsClient message class instance. """ - operation = client.get_type('CampaignOperation', version='v4') + operation = client.get_type("CampaignOperation", version="v5") campaign = operation.create - campaign_service = client.get_service('CampaignService', version='v4') - campaign.name.value = 'Interplanetary Cruise#{}'.format(uuid.uuid4()) + campaign_service = client.get_service("CampaignService", version="v5") + campaign.name = "Interplanetary Cruise#{}".format(uuid.uuid4()) campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', - version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to stop the # ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = campaign_budget.resource_name - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False - campaign.start_date.value = (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d') - campaign.end_date.value = (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d') + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget.resource_name + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False + campaign.start_date = ( + datetime.datetime.now() + datetime.timedelta(1) + ).strftime("%Y%m%d") + campaign.end_date = ( + datetime.datetime.now() + datetime.timedelta(365) + ).strftime("%Y%m%d") response = campaign_service.mutate_campaigns(customer_id, [operation]) campaign_resource_name = response.results[0].resource_name new_campaign = get_campaign(client, customer_id, campaign_resource_name) - print('Added campaign named {}'.format(new_campaign.name.value)) + print("Added campaign named {}".format(new_campaign.name)) return new_campaign def get_campaign(client, customer_id, campaign_resource_name): - """Retrieves a google.ads.google_ads.v4.types.Campaign instance. + """Retrieves a google.ads.google_ads.v5.types.Campaign instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -146,12 +151,15 @@ def get_campaign(client, customer_id, campaign_resource_name): created campaign budget. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign.id, campaign.name, campaign.resource_name ' - 'FROM campaign WHERE campaign.resource_name = "{}" ' - .format(campaign_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign.id, campaign.name, campaign.resource_name " + 'FROM campaign WHERE campaign.resource_name = "{}" '.format( + campaign_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) campaign = list(response)[0].campaign return campaign @@ -163,32 +171,32 @@ def create_ad_group(client, customer_id, campaign): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign: An instance of the google.ads.google_ads.v4.types.Campaign + campaign: An instance of the google.ads.google_ads.v5.types.Campaign message class. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - operation = client.get_type('AdGroupOperation', version='v4') + operation = client.get_type("AdGroupOperation", version="v5") adgroup = operation.create - adgroup_service = client.get_service('AdGroupService', version='v4') - adgroup.name.value = 'Earth to Mars Cruises #{}'.format(uuid.uuid4()) - adgroup.campaign.value = campaign.resource_name - adgroup.status = client.get_type('AdGroupStatusEnum', - version='v4').ENABLED - adgroup.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_STANDARD - adgroup.cpc_bid_micros.value = 10000000 + adgroup_service = client.get_service("AdGroupService", version="v5") + adgroup.name = "Earth to Mars Cruises #{}".format(uuid.uuid4()) + adgroup.campaign = campaign.resource_name + adgroup.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + adgroup.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_STANDARD + adgroup.cpc_bid_micros = 10000000 response = adgroup_service.mutate_ad_groups(customer_id, [operation]) ad_group_resource_name = response.results[0].resource_name ad_group = get_ad_group(client, customer_id, ad_group_resource_name) - print('Added AdGroup named {}'.format(ad_group.name.value)) + print("Added AdGroup named {}".format(ad_group.name)) return ad_group def get_ad_group(client, customer_id, ad_group_resource_name): - """Retrieves a google.ads.googleads_v4.types.AdGroup instance. + """Retrieves a google.ads.google_ads.v5.types.AdGroup instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -197,13 +205,16 @@ def get_ad_group(client, customer_id, ad_group_resource_name): created Ad group. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group.id, ad_group.name, ad_group.resource_name ' - 'FROM ad_group WHERE ad_group.resource_name = "{}" ' - .format(ad_group_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group.id, ad_group.name, ad_group.resource_name " + 'FROM ad_group WHERE ad_group.resource_name = "{}" '.format( + ad_group_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) adGroup = list(response)[0].ad_group return adGroup @@ -216,37 +227,40 @@ def create_text_ads(client, ad_group_id): client: An instance of the googleads.adwords.AdWordsClient class. ad_group_id: (str) Ad group ID to be referenced when creating text ads. """ - ad_group_service = client.GetService('AdGroupAdService', 'v201809') + ad_group_service = client.GetService("AdGroupAdService", "v201809") operations = [] for i in range(NUMBER_OF_ADS): operation = { - 'xsi_type': 'AdGroupAd', - 'adGroupId': ad_group_id, + "xsi_type": "AdGroupAd", + "adGroupId": ad_group_id, # Additional properties (non-required). - 'status': 'PAUSED', - 'ad': { - 'xsi_type': 'ExpandedTextAd', - 'headlinePart1': 'Cruise #{} to Mars'.format( - str(uuid.uuid4())[:8]), - 'headlinePart2': 'Best Space Cruise Line', - 'headlinePart3': 'For Your Loved Ones', - 'description': 'Buy your tickets now!', - 'description2': 'Discount ends soon', - 'finalUrls': ['http://www.example.com/'] - } + "status": "PAUSED", + "ad": { + "xsi_type": "ExpandedTextAd", + "headlinePart1": "Cruise #{} to Mars".format( + str(uuid.uuid4())[:8] + ), + "headlinePart2": "Best Space Cruise Line", + "headlinePart3": "For Your Loved Ones", + "description": "Buy your tickets now!", + "description2": "Discount ends soon", + "finalUrls": ["http://www.example.com/"], + }, } - adgroup_operations = { - 'operator': 'ADD', - 'operand': operation - } + adgroup_operations = {"operator": "ADD", "operand": operation} operations.append(adgroup_operations) results = ad_group_service.mutate(operations) - for result in results['value']: - print('Expanded text ad with ID {} and ' - 'headline {}-{} {} was created'.format( - result['ad']['id'], result['ad']['headlinePart1'], - result['ad']['headlinePart2'], result['ad']['headlinePart3'])) + for result in results["value"]: + print( + "Expanded text ad with ID {} and " + "headline {}-{} {} was created".format( + result["ad"]["id"], + result["ad"]["headlinePart1"], + result["ad"]["headlinePart2"], + result["ad"]["headlinePart3"], + ) + ) def create_keywords(client, ad_group_id, keywords_to_add): @@ -258,50 +272,62 @@ def create_keywords(client, ad_group_id, keywords_to_add): keywords_to_add: (list) A list of keywords to be added to a given ad group. """ - ad_group_criterion_service = client.GetService('AdGroupCriterionService', - 'v201809') + ad_group_criterion_service = client.GetService( + "AdGroupCriterionService", "v201809" + ) operations = [] for keyword in keywords_to_add: operation = { - 'xsi_type': 'BiddableAdGroupCriterion', - 'adGroupId': ad_group_id, - 'criterion': { - 'xsi_type' : 'Keyword', - 'text': keyword, - 'matchType' : 'BROAD' + "xsi_type": "BiddableAdGroupCriterion", + "adGroupId": ad_group_id, + "criterion": { + "xsi_type": "Keyword", + "text": keyword, + "matchType": "BROAD", }, - 'userStatus': 'PAUSED', - 'finalUrls' : ['http://www.example.com/mars/cruise/?kw={}'.format( - urllib.parse.quote(keyword))] - } - create_keyword = { - 'operator': 'ADD', - 'operand': operation + "userStatus": "PAUSED", + "finalUrls": [ + "http://www.example.com/mars/cruise/?kw={}".format( + urllib.parse.quote(keyword) + ) + ], } + create_keyword = {"operator": "ADD", "operand": operation} operations.append(create_keyword) results = ad_group_criterion_service.mutate(operations) - for result in results['value']: - print('Keyword with ad group ID {}, keyword ID {}, text {} and match' - 'type {} was created'.format(result['adGroupId'], - result['criterion']['id'], result['criterion']['text'], - result['criterion']['matchType'])) - - -if __name__ == '__main__': + for result in results["value"]: + print( + "Keyword with ad group ID {}, keyword ID {}, text {} and match" + "type {} was created".format( + result["adGroupId"], + result["criterion"]["id"], + result["criterion"]["text"], + result["criterion"]["matchType"], + ) + ) + + +if __name__ == "__main__": # Initialize client object. # It will read the config file. The default file path is the Home Directory. google_ads_client = GoogleAdsClient.load_from_storage() adwords_client = adwords.AdWordsClient.LoadFromStorage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() budget = create_campaign_budget(google_ads_client, args.customer_id) campaign = create_campaign(google_ads_client, args.customer_id, budget) ad_group = create_ad_group(google_ads_client, args.customer_id, campaign) - create_text_ads(adwords_client, ad_group.id.value) - create_keywords(adwords_client, ad_group.id.value, KEYWORDS_TO_ADD) + create_text_ads(adwords_client, ad_group.id) + create_keywords(adwords_client, ad_group.id, KEYWORDS_TO_ADD) diff --git a/examples/migration/create_complete_campaign_both_apis_phase_4.py b/examples/migration/create_complete_campaign_both_apis_phase_4.py index 9b1b2226f..6835a6e76 100755 --- a/examples/migration/create_complete_campaign_both_apis_phase_4.py +++ b/examples/migration/create_complete_campaign_both_apis_phase_4.py @@ -41,7 +41,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] PAGE_SIZE = 1000 @@ -53,29 +53,30 @@ def create_campaign_budget(client, customer_id): customer_id: (str) Customer ID associated with the account. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - campaign_service = client.get_service('CampaignBudgetService', version='v4') - operation = client.get_type('CampaignBudgetOperation', version='v4') + campaign_service = client.get_service("CampaignBudgetService", version="v5") + operation = client.get_type("CampaignBudgetOperation", version="v5") criterion = operation.create - criterion.name.value = 'Interplanetary Cruise Budget #{}'.format( - uuid.uuid4()) + criterion.name = "Interplanetary Cruise Budget #{}".format(uuid.uuid4()) criterion.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', - version='v4').STANDARD - criterion.amount_micros.value = 500000 - response = campaign_service.mutate_campaign_budgets(customer_id, - [operation]) + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + criterion.amount_micros = 500000 + response = campaign_service.mutate_campaign_budgets( + customer_id, [operation] + ) campaign_budget_resource_name = response.results[0].resource_name - new_campaign_budget = get_campaign_budget(client, customer_id, - campaign_budget_resource_name) - print('Added budget named {}'.format(new_campaign_budget.name.value)) + new_campaign_budget = get_campaign_budget( + client, customer_id, campaign_budget_resource_name + ) + print("Added budget named {}".format(new_campaign_budget.name)) return new_campaign_budget def get_campaign_budget(client, customer_id, resource_name): - """Retrieves a google.ads.google_ads.v4.types.CampaignBudget instance . + """Retrieves a google.ads.google_ads.v5.types.CampaignBudget instance . Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -84,13 +85,15 @@ def get_campaign_budget(client, customer_id, resource_name): created campaign. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign_budget.id, campaign_budget.name, ' - 'campaign_budget.resource_name FROM campaign_budget WHERE ' - 'campaign_budget.resource_name = "{}"'.format(resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign_budget.id, campaign_budget.name, " + "campaign_budget.resource_name FROM campaign_budget WHERE " + 'campaign_budget.resource_name = "{}"'.format(resource_name) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) budget = list(response)[0].campaign_budget return budget @@ -102,42 +105,44 @@ def create_campaign(client, customer_id, campaign_budget): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign_budget: A google.ads.google_ads.v4.types.CampaignBudget + campaign_budget: A google.ads.google_ads.v5.types.CampaignBudget instance. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.v5.types.GoogleAdsClient message class instance. """ - operation = client.get_type('CampaignOperation', version='v4') + operation = client.get_type("CampaignOperation", version="v5") campaign = operation.create - campaign_service = client.get_service('CampaignService', version='v4') - campaign.name.value = 'Interplanetary Cruise#{}'.format(uuid.uuid4()) + campaign_service = client.get_service("CampaignService", version="v5") + campaign.name = "Interplanetary Cruise#{}".format(uuid.uuid4()) campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', - version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to stop the # ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = campaign_budget.resource_name - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False - campaign.start_date.value = (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d') - campaign.end_date.value = (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d') + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget.resource_name + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False + campaign.start_date = ( + datetime.datetime.now() + datetime.timedelta(1) + ).strftime("%Y%m%d") + campaign.end_date = ( + datetime.datetime.now() + datetime.timedelta(365) + ).strftime("%Y%m%d") response = campaign_service.mutate_campaigns(customer_id, [operation]) campaign_resource_name = response.results[0].resource_name new_campaign = get_campaign(client, customer_id, campaign_resource_name) - print('Added campaign named {}'.format(new_campaign.name.value)) + print("Added campaign named {}".format(new_campaign.name)) return new_campaign def get_campaign(client, customer_id, campaign_resource_name): - """Retrieves a google.ads.google_ads.v4.types.Campaign instance. + """Retrieves a google.ads.google_ads.v5.types.Campaign instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -146,12 +151,15 @@ def get_campaign(client, customer_id, campaign_resource_name): created campaign budget. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign.id, campaign.name, campaign.resource_name ' - 'FROM campaign WHERE campaign.resource_name = "{}" ' - .format(campaign_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign.id, campaign.name, campaign.resource_name " + 'FROM campaign WHERE campaign.resource_name = "{}" '.format( + campaign_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) campaign = list(response)[0].campaign return campaign @@ -163,31 +171,31 @@ def create_ad_group(client, customer_id, campaign): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign: A google.ads.google_ads.v4.types.Campaign instance. + campaign: A google.ads.google_ads.v5.types.Campaign instance. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - operation = client.get_type('AdGroupOperation', version='v4') + operation = client.get_type("AdGroupOperation", version="v5") adgroup = operation.create - adgroup_service = client.get_service('AdGroupService', version='v4') - adgroup.name.value = 'Earth to Mars Cruises #{}'.format(uuid.uuid4()) - adgroup.campaign.value = campaign.resource_name - adgroup.status = client.get_type('AdGroupStatusEnum', - version='v4').ENABLED - adgroup.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_STANDARD - adgroup.cpc_bid_micros.value = 10000000 + adgroup_service = client.get_service("AdGroupService", version="v5") + adgroup.name = "Earth to Mars Cruises #{}".format(uuid.uuid4()) + adgroup.campaign = campaign.resource_name + adgroup.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + adgroup.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_STANDARD + adgroup.cpc_bid_micros = 10000000 response = adgroup_service.mutate_ad_groups(customer_id, [operation]) ad_group_resource_name = response.results[0].resource_name ad_group = get_ad_group(client, customer_id, ad_group_resource_name) - print('Added AdGroup named {}'.format(ad_group.name.value)) + print("Added AdGroup named {}".format(ad_group.name)) return ad_group def get_ad_group(client, customer_id, ad_group_resource_name): - """Retrieves a google.ads.googleads_v4.types.AdGroup instance. + """Retrieves a google.ads.googleads_v5.types.AdGroup instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -196,13 +204,16 @@ def get_ad_group(client, customer_id, ad_group_resource_name): created Ad group. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group.id, ad_group.name, ad_group.resource_name ' - 'FROM ad_group WHERE ad_group.resource_name = "{}" ' - .format(ad_group_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group.id, ad_group.name, ad_group.resource_name " + 'FROM ad_group WHERE ad_group.resource_name = "{}" '.format( + ad_group_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) adGroup = list(response)[0].ad_group return adGroup @@ -214,45 +225,53 @@ def create_text_ads(client, customer_id, ad_group): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - ad_group: A google.ads.google_ads.v4.types.AdGroup instance. + ad_group: A google.ads.google_ads.v5.types.AdGroup instance. """ operations = [] for i in range(0, NUMBER_OF_ADS): - operation = client.get_type('AdGroupAdOperation', version='v4') + operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_operation = operation.create - ad_group_operation.ad_group.value = ad_group.resource_name - ad_group_operation.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED - ad_group_operation.ad.expanded_text_ad.headline_part1.value = \ - 'Cruise to Mars #{}'.format(str(uuid.uuid4())[:4]) - ad_group_operation.ad.expanded_text_ad.headline_part2.value = \ - 'Best Space Cruise Line' - ad_group_operation.ad.expanded_text_ad.description.value = \ - 'Buy your tickets now!' - final_urls = client.get_type('StringValue', version='v4') - final_urls.value = 'http://www.example.com' - ad_group_operation.ad.final_urls.extend([final_urls]) + ad_group_operation.ad_group = ad_group.resource_name + ad_group_operation.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + ad_group_operation.ad.expanded_text_ad.headline_part1 = "Cruise to Mars #{}".format( + str(uuid.uuid4())[:4] + ) + ad_group_operation.ad.expanded_text_ad.headline_part2 = ( + "Best Space Cruise Line" + ) + ad_group_operation.ad.expanded_text_ad.description = ( + "Buy your tickets now!" + ) + ad_group_operation.ad.final_urls.append("http://www.example.com") operations.append(operation) - adgroup_service = client.get_service('AdGroupAdService', version='v4') - ad_group_ad_response = adgroup_service.mutate_ad_group_ads(customer_id, - operations) + adgroup_service = client.get_service("AdGroupAdService", version="v5") + ad_group_ad_response = adgroup_service.mutate_ad_group_ads( + customer_id, operations + ) new_ad_resource_names = [] for i in range(NUMBER_OF_ADS): new_ad_resource_names.append( - ad_group_ad_response.results[i].resource_name) + ad_group_ad_response.results[i].resource_name + ) new_ads = get_ads(client, customer_id, new_ad_resource_names) for i in range(len(new_ads)): - print('Created expanded text ad with ID {}, status {} and ' - 'headline {}.{}'.format(new_ads[i].ad.id.value, - new_ads[i].status, - new_ads[i].ad.expanded_text_ad.headline_part1.value, - new_ads[i].ad.expanded_text_ad.headline_part2.value)) + print( + "Created expanded text ad with ID {}, status {} and " + "headline {}.{}".format( + new_ads[i].ad.id, + new_ads[i].status, + new_ads[i].ad.expanded_text_ad.headline_part1, + new_ads[i].ad.expanded_text_ad.headline_part2, + ) + ) def get_ads(client, customer_id, new_ad_resource_names): - """Retrieves a google.ads.google_ads.v4.types.AdGroupAd instance . + """Retrieves a google.ads.google_ads.v5.types.AdGroupAd instance . Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -260,9 +279,10 @@ def get_ads(client, customer_id, new_ad_resource_names): new_ad_resource_names: (str) Resource name associated with the Ad group. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroupAd message + An instance of the google.ads.google_ads.v5.types.AdGroupAd message class of the newly created ad group ad. """ + def formatter(given_string): """This helper function is used to assign ' ' to names of resources so that this formatted string can be used within an IN clause. @@ -273,24 +293,26 @@ def formatter(given_string): results = [] for i in given_string: results.append(repr(i)) - return ','.join(results) + return ",".join(results) + resouce_names = formatter(new_ad_resource_names) - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group_ad.ad.id, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part1, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part2, ' - 'ad_group_ad.status, ad_group_ad.ad.final_urls, ' - 'ad_group_ad.resource_name ' - 'FROM ad_group_ad ' - 'WHERE ad_group_ad.resource_name in ({}) '. - format(resouce_names)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group_ad.ad.id, " + "ad_group_ad.ad.expanded_text_ad.headline_part1, " + "ad_group_ad.ad.expanded_text_ad.headline_part2, " + "ad_group_ad.status, ad_group_ad.ad.final_urls, " + "ad_group_ad.resource_name " + "FROM ad_group_ad " + "WHERE ad_group_ad.resource_name in ({}) ".format(resouce_names) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) - response =iter(response) + response = iter(response) ads = [] - while response: + while response: try: current_row = next(response) ads.append(current_row.ad_group_ad) @@ -309,50 +331,62 @@ def create_keywords(client, ad_group_id, keywords_to_add): keywords_to_add: (list) A list of keywords to be added to a given ad group. """ - ad_group_criterion_service = client.GetService('AdGroupCriterionService', - 'v201809') + ad_group_criterion_service = client.GetService( + "AdGroupCriterionService", "v201809" + ) operations = [] for keyword in keywords_to_add: operation = { - 'xsi_type': 'BiddableAdGroupCriterion', - 'adGroupId': ad_group_id, - 'criterion': { - 'xsi_type' : 'Keyword', - 'text': keyword, - 'matchType' : 'BROAD' + "xsi_type": "BiddableAdGroupCriterion", + "adGroupId": ad_group_id, + "criterion": { + "xsi_type": "Keyword", + "text": keyword, + "matchType": "BROAD", }, - 'userStatus': 'PAUSED', - 'finalUrls' : ['http://www.example.com/mars/cruise/?kw={}'.format( - urllib.parse.quote(keyword))] - } - create_keyword = { - 'operator': 'ADD', - 'operand': operation + "userStatus": "PAUSED", + "finalUrls": [ + "http://www.example.com/mars/cruise/?kw={}".format( + urllib.parse.quote(keyword) + ) + ], } + create_keyword = {"operator": "ADD", "operand": operation} operations.append(create_keyword) results = ad_group_criterion_service.mutate(operations) - for result in results['value']: - print('Keyword with ad group ID {}, keyword ID {}, text {} and match' - 'type {} was created'.format(result['adGroupId'], - result['criterion']['id'], result['criterion']['text'], - result['criterion']['matchType'])) - - -if __name__ == '__main__': + for result in results["value"]: + print( + "Keyword with ad group ID {}, keyword ID {}, text {} and match" + "type {} was created".format( + result["adGroupId"], + result["criterion"]["id"], + result["criterion"]["text"], + result["criterion"]["matchType"], + ) + ) + + +if __name__ == "__main__": # Initialize client object. # It will read the config file. The default file path is the Home Directory. google_ads_client = GoogleAdsClient.load_from_storage() adwords_client = adwords.AdWordsClient.LoadFromStorage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() budget = create_campaign_budget(google_ads_client, args.customer_id) campaign = create_campaign(google_ads_client, args.customer_id, budget) ad_group = create_ad_group(google_ads_client, args.customer_id, campaign) create_text_ads(google_ads_client, args.customer_id, ad_group) - create_keywords(adwords_client, ad_group.id.value, KEYWORDS_TO_ADD) + create_keywords(adwords_client, ad_group.id, KEYWORDS_TO_ADD) diff --git a/examples/migration/create_complete_campaign_google_ads_api_only.py b/examples/migration/create_complete_campaign_google_ads_api_only.py index 4a5d59a1c..3f995272c 100755 --- a/examples/migration/create_complete_campaign_google_ads_api_only.py +++ b/examples/migration/create_complete_campaign_google_ads_api_only.py @@ -39,7 +39,7 @@ # Number of ads being added/updated in this code example. NUMBER_OF_ADS = 5 # The list of keywords being added in this code example. -KEYWORDS_TO_ADD = ['mars cruise', 'space hotel'] +KEYWORDS_TO_ADD = ["mars cruise", "space hotel"] PAGE_SIZE = 1000 @@ -51,29 +51,30 @@ def create_campaign_budget(client, customer_id): customer_id: (str) Customer ID associated with the account. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - campaign_service = client.get_service('CampaignBudgetService', version='v4') - operation = client.get_type('CampaignBudgetOperation', version='v4') + campaign_service = client.get_service("CampaignBudgetService", version="v5") + operation = client.get_type("CampaignBudgetOperation", version="v5") criterion = operation.create - criterion.name.value = 'Interplanetary Cruise Budget #{}'.format( - uuid.uuid4()) + criterion.name = "Interplanetary Cruise Budget #{}".format(uuid.uuid4()) criterion.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum', - version='v4').STANDARD - criterion.amount_micros.value = 500000 - response = campaign_service.mutate_campaign_budgets(customer_id, - [operation]) + "BudgetDeliveryMethodEnum", version="v5" + ).STANDARD + criterion.amount_micros = 500000 + response = campaign_service.mutate_campaign_budgets( + customer_id, [operation] + ) campaign_budget_resource_name = response.results[0].resource_name - new_campaign_budget = get_campaign_budget(client, customer_id, - campaign_budget_resource_name) - print('Added budget named {}'.format(new_campaign_budget.name.value)) + new_campaign_budget = get_campaign_budget( + client, customer_id, campaign_budget_resource_name + ) + print("Added budget named {}".format(new_campaign_budget.name)) return new_campaign_budget def get_campaign_budget(client, customer_id, resource_name): - """Retrieves a google.ads.google_ads.v4.types.CampaignBudget instance. + """Retrieves a google.ads.google_ads.v5.types.CampaignBudget instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -82,13 +83,15 @@ def get_campaign_budget(client, customer_id, resource_name): campaign. Returns: - An instance of google.ads.google_ads.v4.types.CampaignBudget for the + An instance of google.ads.google_ads.v5.types.CampaignBudget for the newly created Budget. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign_budget.id, campaign_budget.name, ' - 'campaign_budget.resource_name FROM campaign_budget WHERE ' - 'campaign_budget.resource_name = "{}"'.format(resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign_budget.id, campaign_budget.name, " + "campaign_budget.resource_name FROM campaign_budget WHERE " + 'campaign_budget.resource_name = "{}"'.format(resource_name) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) budget = list(response)[0].campaign_budget return budget @@ -100,42 +103,44 @@ def create_campaign(client, customer_id, campaign_budget): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign_budget: A google.ads.google_ads.v4.types.CampaignBudget + campaign_budget: A google.ads.google_ads.v5.types.CampaignBudget instance. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - operation = client.get_type('CampaignOperation', version='v4') + operation = client.get_type("CampaignOperation", version="v5") campaign = operation.create - campaign_service = client.get_service('CampaignService', version='v4') - campaign.name.value = 'Interplanetary Cruise#{}'.format(uuid.uuid4()) + campaign_service = client.get_service("CampaignService", version="v5") + campaign.name = "Interplanetary Cruise#{}".format(uuid.uuid4()) campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum', - version='v4').SEARCH + "AdvertisingChannelTypeEnum", version="v5" + ).SEARCH # Recommendation: Set the campaign to PAUSED when creating it to stop the # ads from immediately serving. Set to ENABLED once you've added # targeting and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED - campaign.manual_cpc.enhanced_cpc_enabled.value = True - campaign.campaign_budget.value = campaign_budget.resource_name - campaign.network_settings.target_google_search.value = True - campaign.network_settings.target_search_network.value = True - campaign.network_settings.target_content_network.value = False - campaign.network_settings.target_partner_search_network.value = False - campaign.start_date.value = (datetime.datetime.now() + - datetime.timedelta(1)).strftime('%Y%m%d') - campaign.end_date.value = (datetime.datetime.now() + - datetime.timedelta(365)).strftime('%Y%m%d') + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED + campaign.manual_cpc.enhanced_cpc_enabled = True + campaign.campaign_budget = campaign_budget.resource_name + campaign.network_settings.target_google_search = True + campaign.network_settings.target_search_network = True + campaign.network_settings.target_content_network = False + campaign.network_settings.target_partner_search_network = False + campaign.start_date = ( + datetime.datetime.now() + datetime.timedelta(1) + ).strftime("%Y%m%d") + campaign.end_date = ( + datetime.datetime.now() + datetime.timedelta(365) + ).strftime("%Y%m%d") response = campaign_service.mutate_campaigns(customer_id, [operation]) campaign_resource_name = response.results[0].resource_name new_campaign = get_campaign(client, customer_id, campaign_resource_name) - print('Added campaign named {}'.format(new_campaign.name.value)) + print("Added campaign named {}".format(new_campaign.name)) return new_campaign def get_campaign(client, customer_id, campaign_resource_name): - """Retrieves a google.ads.google_ads.v4.types.Campaign instance. + """Retrieves a google.ads.google_ads.v5.types.Campaign instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -144,12 +149,15 @@ def get_campaign(client, customer_id, campaign_resource_name): created campaign budget. Returns: - A google.ads.google_ads.v4.types.GoogleAdsClient message class instance. + A google.ads.google_ads.client.GoogleAdsClient message class instance. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT campaign.id, campaign.name, campaign.resource_name ' - 'FROM campaign WHERE campaign.resource_name = "{}" ' - .format(campaign_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT campaign.id, campaign.name, campaign.resource_name " + 'FROM campaign WHERE campaign.resource_name = "{}" '.format( + campaign_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) campaign = list(response)[0].campaign return campaign @@ -161,31 +169,31 @@ def create_ad_group(client, customer_id, campaign): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - campaign: A google.ads.google_ads.v4.types.Campaign instance. + campaign: A google.ads.google_ads.v5.types.Campaign instance. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - operation = client.get_type('AdGroupOperation', version='v4') + operation = client.get_type("AdGroupOperation", version="v5") adgroup = operation.create - adgroup_service = client.get_service('AdGroupService', version='v4') - adgroup.name.value = 'Earth to Mars Cruises #{}'.format(uuid.uuid4()) - adgroup.campaign.value = campaign.resource_name - adgroup.status = client.get_type('AdGroupStatusEnum', - version='v4').ENABLED - adgroup.type = client.get_type('AdGroupTypeEnum', - version='v4').SEARCH_STANDARD - adgroup.cpc_bid_micros.value = 10000000 + adgroup_service = client.get_service("AdGroupService", version="v5") + adgroup.name = "Earth to Mars Cruises #{}".format(uuid.uuid4()) + adgroup.campaign = campaign.resource_name + adgroup.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + adgroup.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SEARCH_STANDARD + adgroup.cpc_bid_micros = 10000000 response = adgroup_service.mutate_ad_groups(customer_id, [operation]) ad_group_resource_name = response.results[0].resource_name ad_group = get_ad_group(client, customer_id, ad_group_resource_name) - print('Added AdGroup named {}'.format(ad_group.name.value)) + print("Added AdGroup named {}".format(ad_group.name)) return ad_group def get_ad_group(client, customer_id, ad_group_resource_name): - """Retrieves a google.ads.googleads_v4.types.AdGroup instance. + """Retrieves a google.ads.google_ads.v5.types.AdGroup instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -194,13 +202,16 @@ def get_ad_group(client, customer_id, ad_group_resource_name): created Ad group. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroup message class + An instance of the google.ads.google_ads.v5.types.AdGroup message class of the newly created ad group. """ - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group.id, ad_group.name, ad_group.resource_name ' - 'FROM ad_group WHERE ad_group.resource_name = "{}" ' - .format(ad_group_resource_name)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group.id, ad_group.name, ad_group.resource_name " + 'FROM ad_group WHERE ad_group.resource_name = "{}" '.format( + ad_group_resource_name + ) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) adGroup = list(response)[0].ad_group return adGroup @@ -212,45 +223,53 @@ def create_text_ads(client, customer_id, ad_group): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - ad_group: A google.ads.google_ads.v4.types.AdGroup instance. + ad_group: A google.ads.google_ads.v5.types.AdGroup instance. """ operations = [] for i in range(0, NUMBER_OF_ADS): - operation = client.get_type('AdGroupAdOperation', version='v4') + operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_operation = operation.create - ad_group_operation.ad_group.value = ad_group.resource_name - ad_group_operation.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED - ad_group_operation.ad.expanded_text_ad.headline_part1.value = \ - 'Cruise to Mars #{}'.format(str(uuid.uuid4())[:4]) - ad_group_operation.ad.expanded_text_ad.headline_part2.value = \ - 'Best Space Cruise Line' - ad_group_operation.ad.expanded_text_ad.description.value = \ - 'Buy your tickets now!' - final_urls = client.get_type('StringValue', version='v4') - final_urls.value = 'http://www.example.com' - ad_group_operation.ad.final_urls.extend([final_urls]) + ad_group_operation.ad_group = ad_group.resource_name + ad_group_operation.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + ad_group_operation.ad.expanded_text_ad.headline_part1 = "Cruise to Mars #{}".format( + str(uuid.uuid4())[:4] + ) + ad_group_operation.ad.expanded_text_ad.headline_part2 = ( + "Best Space Cruise Line" + ) + ad_group_operation.ad.expanded_text_ad.description = ( + "Buy your tickets now!" + ) + ad_group_operation.ad.final_urls.append("http://www.example.com") operations.append(operation) - adgroup_service = client.get_service('AdGroupAdService', version='v4') - ad_group_ad_response = adgroup_service.mutate_ad_group_ads(customer_id, - operations) + adgroup_service = client.get_service("AdGroupAdService", version="v5") + ad_group_ad_response = adgroup_service.mutate_ad_group_ads( + customer_id, operations + ) new_ad_resource_names = [] for i in range(NUMBER_OF_ADS): new_ad_resource_names.append( - ad_group_ad_response.results[i].resource_name) + ad_group_ad_response.results[i].resource_name + ) new_ads = get_ads(client, customer_id, new_ad_resource_names) for i in range(len(new_ads)): - print('Created expanded text ad with ID {}, status {} and ' - 'headline {}.{}'.format(new_ads[i].ad.id.value, - new_ads[i].status, - new_ads[i].ad.expanded_text_ad.headline_part1.value, - new_ads[i].ad.expanded_text_ad.headline_part2.value)) + print( + "Created expanded text ad with ID {}, status {} and " + "headline {}.{}".format( + new_ads[i].ad.id, + new_ads[i].status, + new_ads[i].ad.expanded_text_ad.headline_part1, + new_ads[i].ad.expanded_text_ad.headline_part2, + ) + ) def get_ads(client, customer_id, new_ad_resource_names): - """Retrieves a google.ads.google_ads.v4.types.AdGroupAd instance. + """Retrieves a google.ads.google_ads.v5.types.AdGroupAd instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instanc e. @@ -258,9 +277,10 @@ def get_ads(client, customer_id, new_ad_resource_names): new_ad_resource_names: (str) Resource name associated with the Ad group. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroupAd message + An instance of the google.ads.google_ads.v5.types.AdGroupAd message class of the newly created ad group ad. """ + def formatter(given_string): """This helper function is used to assign ' ' to names of resources so that this formatted string can be used within an IN clause. @@ -271,24 +291,26 @@ def formatter(given_string): results = [] for i in given_string: results.append(repr(i)) - return ','.join(results) + return ",".join(results) + resouce_names = formatter(new_ad_resource_names) - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group_ad.ad.id, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part1, ' - 'ad_group_ad.ad.expanded_text_ad.headline_part2, ' - 'ad_group_ad.status, ad_group_ad.ad.final_urls, ' - 'ad_group_ad.resource_name ' - 'FROM ad_group_ad ' - 'WHERE ad_group_ad.resource_name in ({}) '. - format(resouce_names)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group_ad.ad.id, " + "ad_group_ad.ad.expanded_text_ad.headline_part1, " + "ad_group_ad.ad.expanded_text_ad.headline_part2, " + "ad_group_ad.status, ad_group_ad.ad.final_urls, " + "ad_group_ad.resource_name " + "FROM ad_group_ad " + "WHERE ad_group_ad.resource_name in ({}) ".format(resouce_names) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) - response =iter(response) + response = iter(response) ads = [] - while response: + while response: try: current_row = next(response) ads.append(current_row.ad_group_ad) @@ -304,45 +326,51 @@ def create_keywords(client, customer_id, ad_group, keywords_to_add): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. customer_id: (str) Customer ID associated with the account. - ad_group: A google.ads.google_ads.v4.types.AdGroup instance. + ad_group: A google.ads.google_ads.v5.types.AdGroup instance. keywords_to_add: keywords_to_add: (list) A list of keywords which are to be added to a given ad group. """ ad_group_criterion_operations = [] for keyword in keywords_to_add: - operation = client.get_type('AdGroupCriterionOperation', version='v4') + operation = client.get_type("AdGroupCriterionOperation", version="v5") ad_group_criterion_operation = operation.create - ad_group_criterion_operation.ad_group.value = ad_group.resource_name + ad_group_criterion_operation.ad_group = ad_group.resource_name ad_group_criterion_operation.status = client.get_type( - 'AdGroupCriterionStatusEnum', - version='v4').ENABLED - ad_group_criterion_operation.keyword.text.value = keyword + "AdGroupCriterionStatusEnum", version="v5" + ).ENABLED + ad_group_criterion_operation.keyword.text = keyword ad_group_criterion_operation.keyword.match_type = client.get_type( - 'KeywordMatchTypeEnum', version='v4').EXACT + "KeywordMatchTypeEnum", version="v5" + ).EXACT ad_group_criterion_operations.append(operation) ad_group_criterion_service_client = client.get_service( - 'AdGroupCriterionService', version='v4') - ad_group_criterion_response = ad_group_criterion_service_client.\ - mutate_ad_group_criteria(customer_id, - ad_group_criterion_operations) + "AdGroupCriterionService", version="v5" + ) + ad_group_criterion_response = ad_group_criterion_service_client.mutate_ad_group_criteria( + customer_id, ad_group_criterion_operations + ) new_ad_resource_names = [] for i in range(len(keywords_to_add)): new_ad_resource_names.append( - ad_group_criterion_response.results[i].resource_name) + ad_group_criterion_response.results[i].resource_name + ) new_keywords = get_keywords(client, customer_id, new_ad_resource_names) for i in range(len(new_keywords)): - print('Keyword with text {}, id = {} and ' - 'match type {} was created'.format( - new_keywords[i].keyword.text.value, - new_keywords[i].criterion_id.value, - new_keywords[i].keyword.match_type)) + print( + "Keyword with text {}, id = {} and " + "match type {} was created".format( + new_keywords[i].keyword.text, + new_keywords[i].criterion_id, + new_keywords[i].keyword.match_type, + ) + ) def get_keywords(client, customer_id, keyword_resource_names): - """Retrieves a google.ads.google_ads.v4.types.AdGroupCriterion instance. + """Retrieves a google.ads.google_ads.v5.types.AdGroupCriterion instance. Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. @@ -351,9 +379,10 @@ def get_keywords(client, customer_id, keyword_resource_names): created ad group criterion. Returns: - An instance of the google.ads.google_ads.v4.types.AdGroupCriterion + An instance of the google.ads.google_ads.v5.types.AdGroupCriterion message class of the newly created ad group criterion. """ + def formatter(given_string): """This helper function is used to assign ' ' to names of resources so that this formatted string can be used within an IN clause. @@ -361,20 +390,22 @@ def formatter(given_string): Args: given_string: (str) The string to be formatted. """ - results =[] + results = [] for i in given_string: results.append(repr(i)) - return ','.join(results) + return ",".join(results) resouce_names = formatter(keyword_resource_names) - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT ad_group.id, ad_group.status, ' - 'ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ' - 'ad_group_criterion.keyword.match_type FROM ad_group_criterion ' - 'WHERE ad_group_criterion.type = "KEYWORD" ' - 'AND ad_group.status = "ENABLED" ' - 'AND ad_group_criterion.status IN ("ENABLED", "PAUSED") ' - 'AND ad_group_criterion.resource_name IN ({})'.format(resouce_names)) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT ad_group.id, ad_group.status, " + "ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, " + "ad_group_criterion.keyword.match_type FROM ad_group_criterion " + 'WHERE ad_group_criterion.type = "KEYWORD" ' + 'AND ad_group.status = "ENABLED" ' + 'AND ad_group_criterion.status IN ("ENABLED", "PAUSED") ' + "AND ad_group_criterion.resource_name IN ({})".format(resouce_names) + ) response = ga_service.search(customer_id, query, PAGE_SIZE) response = iter(response) @@ -390,20 +421,27 @@ def formatter(given_string): return keywords -if __name__ == '__main__': +if __name__ == "__main__": # Initialize client object. # It will read the config file. The default file path is the Home Directory. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Lists all campaigns for specified customer.') + description="Lists all campaigns for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() budget = create_campaign_budget(google_ads_client, args.customer_id) campaign = create_campaign(google_ads_client, args.customer_id, budget) ad_group = create_ad_group(google_ads_client, args.customer_id, campaign) create_text_ads(google_ads_client, args.customer_id, ad_group) - create_keywords(google_ads_client, args.customer_id, ad_group, - KEYWORDS_TO_ADD) + create_keywords( + google_ads_client, args.customer_id, ad_group, KEYWORDS_TO_ADD + ) diff --git a/examples/misc/get_all_image_assets.py b/examples/misc/get_all_image_assets.py index c7d9f49d9..d6a8e1d99 100755 --- a/examples/misc/get_all_image_assets.py +++ b/examples/misc/get_all_image_assets.py @@ -25,50 +25,65 @@ def main(client, customer_id, page_size): """Main method, to run this code example as a standalone application.""" - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT asset.name, asset.image_asset.file_size, ' - 'asset.image_asset.full_size.width_pixels, ' - 'asset.image_asset.full_size.height_pixels, ' - 'asset.image_asset.full_size.url FROM asset ' - 'WHERE asset.type = \'IMAGE\'') - - results = ga_service.search(customer_id, query=query, page_size=page_size) + query = ( + "SELECT asset.name, asset.image_asset.file_size, " + "asset.image_asset.full_size.width_pixels, " + "asset.image_asset.full_size.height_pixels, " + "asset.image_asset.full_size.url FROM asset " + "WHERE asset.type = 'IMAGE'" + ) try: - count = 0 + results = ga_service.search( + customer_id, query=query, page_size=page_size, + ) + for row in results: asset = row.asset image_asset = asset.image_asset - count += 1 - print(f'Image with name "{asset.name}" found:\n' - f'\tfile size {image_asset.file_size.value} bytes\n' - f'\twidth {image_asset.full_size.width_pixels.value}px\n' - f'\theight {image_asset.full_size.height_pixels.value}px\n' - f'\turl "{image_asset.full_size.url.value}"') + print( + f'Image with name "{asset.name}" found:\n' + f"\tfile size {image_asset.file_size} bytes\n" + f"\twidth {image_asset.full_size.width_pixels}px\n" + f"\theight {image_asset.full_size.height_pixels}px\n" + f'\turl "{image_asset.full_size.url}"' + ) - print(f'Total of {count} image(s) found.') + # The "num_results" field returns the number of items that have been + # iterated in the results not the total number of rows returned by the + # search query. + print(f"Total of {results.num_results} image(s) found.") except GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='List all image assets for specified customer.') + description="List all image assets for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/misc/get_all_videos_and_images.py b/examples/misc/get_all_videos_and_images.py index 46583a5b4..79eedfd52 100755 --- a/examples/misc/get_all_videos_and_images.py +++ b/examples/misc/get_all_videos_and_images.py @@ -25,45 +25,57 @@ def main(client, customer_id, page_size): """Main method, to run this code example as a standalone application.""" - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") # Creates a query that will retrieve all video and image files. - query = ('SELECT media_file.id, media_file.name, media_file.type ' - 'FROM media_file ORDER BY media_file.id') + query = ( + "SELECT media_file.id, media_file.name, media_file.type " + "FROM media_file ORDER BY media_file.id" + ) # Issues a search request by specifying page size. results = ga_service.search(customer_id, query=query, page_size=page_size) - media_type_enum = client.get_type('MediaTypeEnum', version='v4').MediaType + media_type_enum = client.get_type("MediaTypeEnum", version="v5").MediaType # Iterates over all rows and prints the information about each media file. try: for row in results: media_file = row.media_file - print(f'Media file with ID {media_file.id.value}, ' - f'name "{media_file.name.value}", ' - f'type {media_type_enum.Name(media_file.type)} was found.') + print( + f"Media file with ID {media_file.id}, " + f'name "{media_file.name}", ' + f"type {media_type_enum.Name(media_file.type)} was found." + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='List all videos and images for specified customer.') + description="List all videos and images for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/misc/upload_image.py b/examples/misc/upload_image.py index 33ad7d4bb..af3f70c76 100644 --- a/examples/misc/upload_image.py +++ b/examples/misc/upload_image.py @@ -27,46 +27,51 @@ def main(client, customer_id): """Main method, to run this code example as a standalone application.""" URL = "https://goo.gl/3b9Wfh" - media_file_operation = client.get_type('MediaFileOperation', version='v4') + media_file_operation = client.get_type("MediaFileOperation", version="v5") media_file = media_file_operation.create - media_file.name.value = "Ad Image" - media_file.type = client.get_type('MediaTypeEnum', version='v4').IMAGE - media_file.source_url.value = URL + media_file.name = "Ad Image" + media_file.type = client.get_type("MediaTypeEnum", version="v5").IMAGE + media_file.source_url = URL # Download the image as bytes from the URL - media_file.image.data.value = requests.get(URL).content + media_file.image.data = requests.get(URL).content - media_file_service = client.get_service('MediaFileService', version='v4') + media_file_service = client.get_service("MediaFileService", version="v5") try: - mutate_media_files_response = ( - media_file_service.mutate_media_files(customer_id, - [media_file_operation]) + mutate_media_files_response = media_file_service.mutate_media_files( + customer_id, [media_file_operation] ) - print(f'Uploaded file(s):') + print(f"Uploaded file(s):") for row in mutate_media_files_response.results: - print(f'\tResource name: {row.resource_name}') + print(f"\tResource name: {row.resource_name}") except GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() - parser = argparse.ArgumentParser( - description='Upload an image from a URL.') + parser = argparse.ArgumentParser(description="Upload an image from a URL.") # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/misc/upload_image_asset.py b/examples/misc/upload_image_asset.py index ffa81b528..3822b77b7 100644 --- a/examples/misc/upload_image_asset.py +++ b/examples/misc/upload_image_asset.py @@ -29,57 +29,64 @@ def main(client, customer_id): """Main method, to run this code example as a standalone application.""" # Download image from URL - URL = 'https://goo.gl/3b9Wfh' + URL = "https://goo.gl/3b9Wfh" image_content = requests.get(URL).content - asset_operation = client.get_type('AssetOperation', version='v4') + asset_operation = client.get_type("AssetOperation", version="v5") asset = asset_operation.create - asset.type = client.get_type('AssetTypeEnum', version='v4').IMAGE - asset.image_asset.data.value = image_content - asset.image_asset.file_size.value = len(image_content) - asset.image_asset.mime_type = client.get_type('MimeTypeEnum').IMAGE_JPEG + asset.type = client.get_type("AssetTypeEnum", version="v5").IMAGE + asset.image_asset.data = image_content + asset.image_asset.file_size = len(image_content) + asset.image_asset.mime_type = client.get_type("MimeTypeEnum").IMAGE_JPEG # Use your favorite image library to determine dimensions - asset.image_asset.full_size.height_pixels.value = 315 - asset.image_asset.full_size.width_pixels.value = 600 - asset.image_asset.full_size.url.value = URL + asset.image_asset.full_size.height_pixels = 315 + asset.image_asset.full_size.width_pixels = 600 + asset.image_asset.full_size.url = URL # Optional: Provide a unique friendly name to identify your asset. # If you specify the name field, then both the asset name and the image # being uploaded should be unique, and should not match another ACTIVE # asset in this customer account. # asset.name = 'Jupiter Trip #' + uuid.uuid4() - asset_service = client.get_service('AssetService', version='v4') + asset_service = client.get_service("AssetService", version="v5") try: - mutate_asset_response = ( - asset_service.mutate_assets(customer_id, - [asset_operation]) + mutate_asset_response = asset_service.mutate_assets( + customer_id, [asset_operation] ) - print('Uploaded file(s):') + print("Uploaded file(s):") for row in mutate_asset_response.results: - print(f'\tResource name: {row.resource_name}') + print(f"\tResource name: {row.resource_name}") except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Upload an image asset from a URL.') + description="Upload an image asset from a URL." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/misc/upload_media_bundle.py b/examples/misc/upload_media_bundle.py index 2b59de1dc..5dc12559e 100755 --- a/examples/misc/upload_media_bundle.py +++ b/examples/misc/upload_media_bundle.py @@ -24,48 +24,57 @@ from google.ads.google_ads.errors import GoogleAdsException -BUNDLE_URL = 'https://goo.gl/9Y7qI2' +BUNDLE_URL = "https://goo.gl/9Y7qI2" + def main(client, customer_id): - media_file_operation = client.get_type('MediaFileOperation', version='v4') + media_file_operation = client.get_type("MediaFileOperation", version="v5") media_file = media_file_operation.create - media_file.name.value = 'Ad Media Bundle' - media_file.type = (client.get_type('MediaTypeEnum', - version='v4').MEDIA_BUNDLE) + media_file.name = "Ad Media Bundle" + media_file.type = client.get_type( + "MediaTypeEnum", version="v5" + ).MEDIA_BUNDLE # Download the ZIP as bytes from the URL - media_file.media_bundle.data.value = requests.get(BUNDLE_URL).content + media_file.media_bundle.data = requests.get(BUNDLE_URL).content - media_file_service = client.get_service('MediaFileService', version='v4') + media_file_service = client.get_service("MediaFileService", version="v5") try: - mutate_media_files_response = ( - media_file_service.mutate_media_files(customer_id, - [media_file_operation]) + mutate_media_files_response = media_file_service.mutate_media_files( + customer_id, [media_file_operation] + ) + print( + f"Uploaded file with resource name " + f'"{mutate_media_files_response.results[0].resource_name}"' ) - print(f'Uploaded file with resource name ' - f'"{mutate_media_files_response.results[0].resource_name}"') except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors: ') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors: ' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() - parser = argparse.ArgumentParser( - description='Uploads a media bundle.') + parser = argparse.ArgumentParser(description="Uploads a media bundle.") # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/planning/add_keyword_plan.py b/examples/planning/add_keyword_plan.py index 556e3a932..a840763d4 100755 --- a/examples/planning/add_keyword_plan.py +++ b/examples/planning/add_keyword_plan.py @@ -39,13 +39,15 @@ def main(client, customer_id): try: add_keyword_plan(client, customer_id) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) @@ -60,14 +62,18 @@ def add_keyword_plan(client, customer_id): GoogleAdsException: If an error is returned from the API. """ keyword_plan = create_keyword_plan(client, customer_id) - keyword_plan_campaign = create_keyword_plan_campaign(client, customer_id, - keyword_plan) - keyword_plan_ad_group = create_keyword_plan_ad_group(client, customer_id, - keyword_plan_campaign) - create_keyword_plan_ad_group_keywords(client, customer_id, - keyword_plan_ad_group) - create_keyword_plan_negative_campaign_keywords(client, customer_id, - keyword_plan_campaign) + keyword_plan_campaign = create_keyword_plan_campaign( + client, customer_id, keyword_plan + ) + keyword_plan_ad_group = create_keyword_plan_ad_group( + client, customer_id, keyword_plan_campaign + ) + create_keyword_plan_ad_group_keywords( + client, customer_id, keyword_plan_ad_group + ) + create_keyword_plan_negative_campaign_keywords( + client, customer_id, keyword_plan_campaign + ) def create_keyword_plan(client, customer_id): @@ -83,23 +89,27 @@ def create_keyword_plan(client, customer_id): Raises: GoogleAdsException: If an error is returned from the API. """ - operation = client.get_type('KeywordPlanOperation', version='v4') + operation = client.get_type("KeywordPlanOperation", version="v5") keyword_plan = operation.create keyword_plan.name.value = ( - f'Keyword plan for traffic estimate {uuid.uuid4()}') + f"Keyword plan for traffic estimate {uuid.uuid4()}" + ) - forecast_interval = client.get_type('KeywordPlanForecastIntervalEnum', - version='v4').NEXT_QUARTER + forecast_interval = client.get_type( + "KeywordPlanForecastIntervalEnum", version="v5" + ).NEXT_QUARTER keyword_plan.forecast_period.date_interval = forecast_interval - keyword_plan_service = client.get_service('KeywordPlanService', - version='v4') - response = keyword_plan_service.mutate_keyword_plans(customer_id, - [operation]) + keyword_plan_service = client.get_service( + "KeywordPlanService", version="v5" + ) + response = keyword_plan_service.mutate_keyword_plans( + customer_id, [operation] + ) resource_name = response.results[0].resource_name - print(f'Created keyword plan with resource name: {resource_name}') + print(f"Created keyword plan with resource name: {resource_name}") return resource_name @@ -119,37 +129,40 @@ def create_keyword_plan_campaign(client, customer_id, keyword_plan): Raises: GoogleAdsException: If an error is returned from the API. """ - operation = client.get_type('KeywordPlanCampaignOperation', version='v4') + operation = client.get_type("KeywordPlanCampaignOperation", version="v5") keyword_plan_campaign = operation.create - keyword_plan_campaign.name.value = f'Keyword plan campaign {uuid.uuid4()}' + keyword_plan_campaign.name.value = f"Keyword plan campaign {uuid.uuid4()}" keyword_plan_campaign.cpc_bid_micros.value = 1000000 keyword_plan_campaign.keyword_plan.value = keyword_plan - keyword_plan_network = client.get_type('KeywordPlanNetworkEnum', - version='v4') + keyword_plan_network = client.get_type( + "KeywordPlanNetworkEnum", version="v5" + ) network = keyword_plan_network.GOOGLE_SEARCH keyword_plan_campaign.keyword_plan_network = network - geo_target = client.get_type('KeywordPlanGeoTarget', version='v4') + geo_target = client.get_type("KeywordPlanGeoTarget", version="v5") # Constant for U.S. Other geo target constants can be referenced here: # https://developers.google.com/adwords/api/docs/appendix/geotargeting - geo_target.geo_target_constant.value = 'geoTargetConstants/2840' + geo_target.geo_target_constant.value = "geoTargetConstants/2840" keyword_plan_campaign.geo_targets.extend([geo_target]) - language = client.get_type('StringValue', version='v4') + language = client.get_type("StringValue", version="v5") # Constant for English - language.value = 'languageConstants/1000' + language.value = "languageConstants/1000" keyword_plan_campaign.language_constants.extend([language]) keyword_plan_campaign_service = client.get_service( - 'KeywordPlanCampaignService', version='v4') + "KeywordPlanCampaignService", version="v5" + ) response = keyword_plan_campaign_service.mutate_keyword_plan_campaigns( - customer_id, [operation]) + customer_id, [operation] + ) resource_name = response.results[0].resource_name - print(f'Created keyword plan campaign with resource name: {resource_name}') + print(f"Created keyword plan campaign with resource name: {resource_name}") return resource_name @@ -169,21 +182,23 @@ def create_keyword_plan_ad_group(client, customer_id, keyword_plan_campaign): Raises: GoogleAdsException: If an error is returned from the API. """ - operation = client.get_type('KeywordPlanAdGroupOperation', version='v4') + operation = client.get_type("KeywordPlanAdGroupOperation", version="v5") keyword_plan_ad_group = operation.create - keyword_plan_ad_group.name.value = f'Keyword plan ad group {uuid.uuid4()}' + keyword_plan_ad_group.name.value = f"Keyword plan ad group {uuid.uuid4()}" keyword_plan_ad_group.cpc_bid_micros.value = 2500000 keyword_plan_ad_group.keyword_plan_campaign.value = keyword_plan_campaign keyword_plan_ad_group_service = client.get_service( - 'KeywordPlanAdGroupService', version='v4') + "KeywordPlanAdGroupService", version="v5" + ) response = keyword_plan_ad_group_service.mutate_keyword_plan_ad_groups( - customer_id, [operation]) + customer_id, [operation] + ) resource_name = response.results[0].resource_name - print(f'Created keyword plan ad group with resource name: {resource_name}') + print(f"Created keyword plan ad group with resource name: {resource_name}") return resource_name @@ -200,51 +215,62 @@ def create_keyword_plan_ad_group_keywords(client, customer_id, plan_ad_group): Raises: GoogleAdsException: If an error is returned from the API. """ - match_types = client.get_type('KeywordMatchTypeEnum', version='v4') + match_types = client.get_type("KeywordMatchTypeEnum", version="v5") keyword_plan_ad_group_keyword1 = client.get_type( - 'KeywordPlanAdGroupKeyword', version='v4') - keyword_plan_ad_group_keyword1.text.value = 'mars cruise' + "KeywordPlanAdGroupKeyword", version="v5" + ) + keyword_plan_ad_group_keyword1.text.value = "mars cruise" keyword_plan_ad_group_keyword1.cpc_bid_micros.value = 2000000 keyword_plan_ad_group_keyword1.match_type = match_types.BROAD keyword_plan_ad_group_keyword1.keyword_plan_ad_group.value = plan_ad_group keyword_plan_ad_group_keyword2 = client.get_type( - 'KeywordPlanAdGroupKeyword', version='v4') - keyword_plan_ad_group_keyword2.text.value = 'cheap cruise' + "KeywordPlanAdGroupKeyword", version="v5" + ) + keyword_plan_ad_group_keyword2.text.value = "cheap cruise" keyword_plan_ad_group_keyword2.cpc_bid_micros.value = 1500000 keyword_plan_ad_group_keyword2.match_type = match_types.PHRASE keyword_plan_ad_group_keyword2.keyword_plan_ad_group.value = plan_ad_group keyword_plan_ad_group_keyword3 = client.get_type( - 'KeywordPlanAdGroupKeyword', version='v4') - keyword_plan_ad_group_keyword3.text.value = 'jupiter cruise' + "KeywordPlanAdGroupKeyword", version="v5" + ) + keyword_plan_ad_group_keyword3.text.value = "jupiter cruise" keyword_plan_ad_group_keyword3.cpc_bid_micros.value = 1990000 keyword_plan_ad_group_keyword3.match_type = match_types.EXACT keyword_plan_ad_group_keyword3.keyword_plan_ad_group.value = plan_ad_group operations = [] - for keyword in [keyword_plan_ad_group_keyword1, - keyword_plan_ad_group_keyword2, - keyword_plan_ad_group_keyword3]: - operation = client.get_type('KeywordPlanAdGroupKeywordOperation', - version='v4') + for keyword in [ + keyword_plan_ad_group_keyword1, + keyword_plan_ad_group_keyword2, + keyword_plan_ad_group_keyword3, + ]: + operation = client.get_type( + "KeywordPlanAdGroupKeywordOperation", version="v5" + ) operation.create.CopyFrom(keyword) operations.append(operation) keyword_plan_ad_group_keyword_service = client.get_service( - 'KeywordPlanAdGroupKeywordService', version='v4') + "KeywordPlanAdGroupKeywordService", version="v5" + ) - response = (keyword_plan_ad_group_keyword_service - .mutate_keyword_plan_ad_group_keywords(customer_id, operations)) + response = keyword_plan_ad_group_keyword_service.mutate_keyword_plan_ad_group_keywords( + customer_id, operations + ) for result in response.results: - print('Created keyword plan ad group keyword with resource name: ' - f'{result.resource_name}') + print( + "Created keyword plan ad group keyword with resource name: " + f"{result.resource_name}" + ) -def create_keyword_plan_negative_campaign_keywords(client, customer_id, - plan_campaign): +def create_keyword_plan_negative_campaign_keywords( + client, customer_id, plan_campaign +): """Adds a keyword plan negative campaign keyword to the given keyword plan campaign. @@ -257,36 +283,46 @@ def create_keyword_plan_negative_campaign_keywords(client, customer_id, Raises: GoogleAdsException: If an error is returned from the API. """ - match_types = client.get_type('KeywordMatchTypeEnum', version='v4') - operation = client.get_type('KeywordPlanCampaignKeywordOperation', - version='v4') + match_types = client.get_type("KeywordMatchTypeEnum", version="v5") + operation = client.get_type( + "KeywordPlanCampaignKeywordOperation", version="v5" + ) keyword_plan_campaign_keyword = operation.create - keyword_plan_campaign_keyword.text.value = 'moon walk' + keyword_plan_campaign_keyword.text.value = "moon walk" keyword_plan_campaign_keyword.match_type = match_types.BROAD keyword_plan_campaign_keyword.keyword_plan_campaign.value = plan_campaign keyword_plan_campaign_keyword.negative.value = True - keyword_plan_negative_keyword_service = client.get_service( - 'KeywordPlanCampaignKeywordService', version='v4') - response = (keyword_plan_campaign_keyword_service - .mutate_keyword_plan_campaign_keywords( - customer_id, [operation])) + keyword_plan_campaign_keyword_service = client.get_service( + "KeywordPlanCampaignKeywordService", version="v5" + ) + response = keyword_plan_campaign_keyword_service.mutate_keyword_plan_campaign_keywords( + customer_id, [operation] + ) - print('Created keyword plan campaign keyword with resource name: ' - f'{response.results[0].resource_name}') + print( + "Created keyword plan campaign keyword with resource name: " + f"{response.results[0].resource_name}" + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Creates a keyword plan for specified customer.') + description="Creates a keyword plan for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/planning/forecast_reach.py b/examples/planning/forecast_reach.py index 77a2ff9c2..481da9f08 100755 --- a/examples/planning/forecast_reach.py +++ b/examples/planning/forecast_reach.py @@ -38,7 +38,7 @@ def _string_value(client, value): An instance of google.protobuf.wrappers_pb2.StringValue with its "value" property updates with the given value. """ - string_val = client.get_type('StringValue', version='v4') + string_val = client.get_type("StringValue", version="v5") string_val.value = value return string_val @@ -54,7 +54,7 @@ def _int_32_value(client, value): An instance of google.protobuf.wrappers_pb2.Int32Value with its "value" property updates with the given value. """ - int_32_val = client.get_type('Int32Value', version='v4') + int_32_val = client.get_type("Int32Value", version="v5") int_32_val.value = math.trunc(value) return int_32_val @@ -70,7 +70,7 @@ def _int_64_value(client, value): An instance of google.protobuf.wrappers_pb2.Int64Value with its "value" property updates with the given value. """ - int_64_val = client.get_type('Int64Value', version='v4') + int_64_val = client.get_type("Int64Value", version="v5") int_64_val.value = math.trunc(value) return int_64_val @@ -81,16 +81,19 @@ def show_plannable_locations(client): Args: client: A google.ads.google_ads.client.GoogleAdsClient instance. """ - reach_plan_service = client.get_service('ReachPlanService', version='v4') + reach_plan_service = client.get_service("ReachPlanService", version="v5") response = reach_plan_service.list_plannable_locations() - print('Plannable Locations') - print('Name,\tId,\tParentCountryId') + print("Plannable Locations") + print("Name,\tId,\tParentCountryId") for location in response.plannable_locations: - print(u'"{}",\t{},\t{}'.format( - location.name.value, - location.id.value, - location.parent_country_id.value)) + print( + '"{}",\t{},\t{}'.format( + location.name.value, + location.id.value, + location.parent_country_id.value, + ) + ) def show_plannable_products(client, location_id): @@ -102,15 +105,17 @@ def show_plannable_products(client, location_id): https://developers.google.com/adwords/api/docs/appendix/geotargeting or by calling ListPlannableLocations on the ReachPlanService. """ - reach_plan_service = client.get_service('ReachPlanService', version='v4') + reach_plan_service = client.get_service("ReachPlanService", version="v5") response = reach_plan_service.list_plannable_products( - plannable_location_id=_string_value(client, location_id)) - print('Plannable Products for Location ID {}'.format(location_id)) + plannable_location_id=_string_value(client, location_id) + ) + print("Plannable Products for Location ID {}".format(location_id)) print(response) def _request_reach_curve( - client, customer_id, product_mix, location_id, currency_code): + client, customer_id, product_mix, location_id, currency_code +): """Creates a sample request for a given product mix. Args: @@ -122,74 +127,86 @@ def _request_reach_curve( by calling ListPlannableLocations on the ReachPlanService. currency_code: Three-character ISO 4217 currency code. """ - reach_request = client.get_type('GenerateReachForecastRequest', version='v4') + reach_request = client.get_type( + "GenerateReachForecastRequest", version="v5" + ) reach_request.customer_id = customer_id # Valid durations are between 1 and 90 days. - duration = reach_request.campaign_duration - duration.duration_in_days.value = 28 + campaign_duration = reach_request.campaign_duration + campaign_duration.duration_in_days.value = 28 targeting = reach_request.targeting targeting.plannable_location_id.value = location_id targeting.age_range = client.get_type( - 'ReachPlanAgeRangeEnum', version='v4').AGE_RANGE_18_65_UP + "ReachPlanAgeRangeEnum", version="v5" + ).AGE_RANGE_18_65_UP genders = targeting.genders gender_types = [ - client.get_type('GenderTypeEnum', version='v4').FEMALE, - client.get_type('GenderTypeEnum', version='v4').MALE, + client.get_type("GenderTypeEnum", version="v5").FEMALE, + client.get_type("GenderTypeEnum", version="v5").MALE, ] for gender_type in gender_types: - gender = client.get_type('GenderInfo', version='v4') + gender = client.get_type("GenderInfo", version="v5") gender.type = gender_type genders.append(gender) devices = targeting.devices device_types = [ - client.get_type('DeviceEnum', version='v4').DESKTOP, - client.get_type('DeviceEnum', version='v4').MOBILE, - client.get_type('DeviceEnum', version='v4').TABLET, + client.get_type("DeviceEnum", version="v5").DESKTOP, + client.get_type("DeviceEnum", version="v5").MOBILE, + client.get_type("DeviceEnum", version="v5").TABLET, ] for device_type in device_types: - device = client.get_type('DeviceInfo', version='v4') + device = client.get_type("DeviceInfo", version="v5") device.type = device_type devices.append(device) - reach_plan_service = client.get_service('ReachPlanService', version='v4') + reach_plan_service = client.get_service("ReachPlanService", version="v5") # See the docs for defaults and valid ranges: - # https://developers.google.com/google-ads/api/reference/rpc/google.ads.googleads.v4.services#google.ads.googleads.v4.services.GenerateReachForecastRequest + # https://developers.google.com/google-ads/api/reference/rpc/latest/GenerateReachForecastRequest response = reach_plan_service.generate_reach_forecast( - customer_id=customer_id, - currency_code=_string_value(client, currency_code), - campaign_duration=duration, - cookie_frequency_cap=_int_32_value(client, 0), - min_effective_frequency=_int_32_value(client, 1), - targeting=targeting, - planned_products=product_mix + customer_id, + campaign_duration, + product_mix, + currency_code=_string_value(client, currency_code), + cookie_frequency_cap=_int_32_value(client, 0), + min_effective_frequency=_int_32_value(client, 1), + targeting=targeting, ) - print('Currency, Cost, On-Target Reach, On-Target Imprs, Total Reach,' - ' Total Imprs, Products') + print( + "Currency, Cost, On-Target Reach, On-Target Imprs, Total Reach," + " Total Imprs, Products" + ) for point in response.reach_curve.reach_forecasts: product_splits = [] for p in point.forecasted_product_allocations: - product_splits.append({ - p.plannable_product_code.value: - p.budget_micros.value / ONE_MILLION}) - print([ + product_splits.append( + { + p.plannable_product_code.value: p.budget_micros.value + / ONE_MILLION + } + ) + print( + [ currency_code, point.cost_micros.value / ONE_MILLION, point.forecast.on_target_reach.value, point.forecast.on_target_impressions.value, point.forecast.total_reach.value, point.forecast.total_impressions.value, - product_splits]) + product_splits, + ] + ) def forecast_manual_mix( - client, customer_id, location_id, currency_code, budget): + client, customer_id, location_id, currency_code, budget +): """Pulls a forecast for product mix created manually. Args: @@ -205,22 +222,25 @@ def forecast_manual_mix( trueview_allocation = 0.15 bumper_allocation = 1 - trueview_allocation product_splits = [ - ('TRUEVIEW_IN_STREAM', trueview_allocation), - ('BUMPER', bumper_allocation), + ("TRUEVIEW_IN_STREAM", trueview_allocation), + ("BUMPER", bumper_allocation), ] for product, split in product_splits: - planned_product = client.get_type('PlannedProduct', version='v4') + planned_product = client.get_type("PlannedProduct", version="v5") planned_product.plannable_product_code.value = product planned_product.budget_micros.value = math.trunc( - budget * ONE_MILLION * split) + budget * ONE_MILLION * split + ) product_mix.append(planned_product) _request_reach_curve( - client, customer_id, product_mix, location_id, currency_code) + client, customer_id, product_mix, location_id, currency_code + ) def forecast_suggested_mix( - client, customer_id, location_id, currency_code, budget): + client, customer_id, location_id, currency_code, budget +): """Pulls a forecast for a product mix based on your set of preferences. Args: @@ -232,71 +252,86 @@ def forecast_suggested_mix( currency_code: Three-character ISO 4217 currency code. budget: Budget to allocate to the plan. """ - preferences = client.get_type('Preferences', version='v4') + preferences = client.get_type("Preferences", version="v5") preferences.has_guaranteed_price.value = True preferences.starts_with_sound.value = True preferences.is_skippable.value = False preferences.top_content_only.value = True preferences.ad_length = client.get_type( - 'ReachPlanAdLengthEnum', version='v4').FIFTEEN_OR_TWENTY_SECONDS + "ReachPlanAdLengthEnum", version="v5" + ).FIFTEEN_OR_TWENTY_SECONDS - reach_plan_service = client.get_service('ReachPlanService', version='v4') + reach_plan_service = client.get_service("ReachPlanService", version="v5") mix_response = reach_plan_service.generate_product_mix_ideas( - customer_id=customer_id, - plannable_location_id=_string_value(client, location_id), - preferences=preferences, - currency_code=_string_value(client, currency_code), - budget_micros=_int_64_value(client, budget * ONE_MILLION)) + customer_id=customer_id, + plannable_location_id=_string_value(client, location_id), + preferences=preferences, + currency_code=_string_value(client, currency_code), + budget_micros=_int_64_value(client, budget * ONE_MILLION), + ) product_mix = [] for product in mix_response.product_allocation: - planned_product = client.get_type('PlannedProduct', version='v4') + planned_product = client.get_type("PlannedProduct", version="v5") planned_product.plannable_product_code.value = ( - product.plannable_product_code.value) + product.plannable_product_code.value + ) planned_product.budget_micros.value = product.budget_micros.value product_mix.append(planned_product) _request_reach_curve( - client, customer_id, product_mix, location_id, currency_code) + client, customer_id, product_mix, location_id, currency_code + ) def main(client, customer_id): # location_id: Location ID to plan for. You can get a valid loction ID from # https://developers.google.com/adwords/api/docs/appendix/geotargeting or by # calling ListPlannableLocations on the ReachPlanService. - location_id = '2840' # US - currency_code = 'USD' + location_id = "2840" # US + currency_code = "USD" budget = 500000 try: show_plannable_locations(client) show_plannable_products(client, location_id) forecast_manual_mix( - client, customer_id, location_id, currency_code, budget) + client, customer_id, location_id, currency_code, budget + ) forecast_suggested_mix( - client, customer_id, location_id, currency_code, budget) + client, customer_id, location_id, currency_code, budget + ) except GoogleAdsException as ex: - print('Request with ID "{}" failed with status "%s" and includes the ' - 'following errors:'.format(ex.request_id, ex.error.code().name)) + print( + 'Request with ID "{}" failed with status "%s" and includes the ' + "following errors:".format(ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format( - field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Generates video ads reach forecast.') + description="Generates video ads reach forecast." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/planning/generate_forecast_metrics.py b/examples/planning/generate_forecast_metrics.py index 556c74da4..fdcd1a5e4 100755 --- a/examples/planning/generate_forecast_metrics.py +++ b/examples/planning/generate_forecast_metrics.py @@ -26,53 +26,72 @@ def main(client, customer_id, keyword_plan_id): - keyword_plan_service = client.get_service('KeywordPlanService') - resource_name = keyword_plan_service.keyword_plan_path(customer_id, - keyword_plan_id) + keyword_plan_service = client.get_service("KeywordPlanService") + resource_name = keyword_plan_service.keyword_plan_path( + customer_id, keyword_plan_id + ) try: response = keyword_plan_service.generate_forecast_metrics(resource_name) except GoogleAdsException as ex: - print('Request with ID "{}" failed with status "%s" and includes the ' - 'following errors:'.format(ex.request_id, ex.error.code().name)) + print( + 'Request with ID "{}" failed with status "%s" and includes the ' + "following errors:".format(ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "{}".'.format(error.message)) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: {}'.format(field_path_element.field_name)) + print( + "\t\tOn field: {}".format(field_path_element.field_name) + ) sys.exit(1) for i, forecast in enumerate(response.keyword_forecasts): - print('#{} Keyword ID: {}'.format(i + 1, - forecast.keyword_plan_ad_group_keyword.value)) + print( + "#{} Keyword ID: {}".format( + i + 1, forecast.keyword_plan_ad_group_keyword.value + ) + ) metrics = forecast.keyword_forecast click_val = metrics.clicks.value - clicks = '{:.2f}'.format(click_val) if click_val else 'unspecified' - print('Estimated daily clicks: {}'.format(clicks)) + clicks = "{:.2f}".format(click_val) if click_val else "unspecified" + print("Estimated daily clicks: {}".format(clicks)) imp_val = metrics.impressions.value - impressions = '{:.2f}'.format(imp_val) if imp_val else 'unspecified' - print('Estimated daily impressions: {}'.format(impressions)) + impressions = "{:.2f}".format(imp_val) if imp_val else "unspecified" + print("Estimated daily impressions: {}".format(impressions)) cpc_val = metrics.average_cpc.value - cpc = '{:.2f}'.format(cpc_val) if cpc_val else 'unspecified' - print('Estimated average cpc: {}\n'.format(cpc)) + cpc = "{:.2f}".format(cpc_val) if cpc_val else "unspecified" + print("Estimated average cpc: {}\n".format(cpc)) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Generates forecast metrics for a keyword plan.') + description="Generates forecast metrics for a keyword plan." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-k', '--keyword_plan_id', type=str, - required=True, help='A Keyword Plan ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-k", + "--keyword_plan_id", + type=str, + required=True, + help="A Keyword Plan ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.keyword_plan_id) diff --git a/examples/planning/generate_keyword_ideas.py b/examples/planning/generate_keyword_ideas.py index 5ca0636de..61deb9619 100755 --- a/examples/planning/generate_keyword_ideas.py +++ b/examples/planning/generate_keyword_ideas.py @@ -23,22 +23,25 @@ # Location IDs are listed here: https://developers.google.com/adwords/api/docs/appendix/geotargeting # and they can also be retrieved using the GeoTargetConstantService as shown # here: https://developers.google.com/google-ads/api/docs/targeting/location-targeting -_DEFAULT_LOCATION_IDS = ['1023191'] # location ID for New York, NY +_DEFAULT_LOCATION_IDS = ["1023191"] # location ID for New York, NY # A language criterion ID. For example, specify 1000 for English. For more # information on determining this value, see the below link: # https://developers.google.com/adwords/api/docs/appendix/codes-formats#languages. -_DEFAULT_LANGUAGE_ID = '1000' # language ID for English +_DEFAULT_LANGUAGE_ID = "1000" # language ID for English -def main(client, customer_id, location_ids, language_id, keyword_texts, - page_url): - keyword_plan_idea_service = client.get_service('KeywordPlanIdeaService', - version='v4') +def main( + client, customer_id, location_ids, language_id, keyword_texts, page_url +): + keyword_plan_idea_service = client.get_service( + "KeywordPlanIdeaService", version="v5" + ) keyword_competition_level_enum = client.get_type( - 'KeywordPlanCompetitionLevelEnum', - version='v4').KeywordPlanCompetitionLevel + "KeywordPlanCompetitionLevelEnum", version="v5" + ).KeywordPlanCompetitionLevel keyword_plan_network = client.get_type( - 'KeywordPlanNetworkEnum', version='v4').GOOGLE_SEARCH_AND_PARTNERS + "KeywordPlanNetworkEnum", version="v5" + ).GOOGLE_SEARCH_AND_PARTNERS locations = map_locations_to_string_values(client, location_ids) language = map_language_to_string_value(client, language_id) @@ -51,21 +54,22 @@ def main(client, customer_id, location_ids, language_id, keyword_texts, # Either keywords or a page_url are required to generate keyword ideas # so this raises an error if neither are provided. if not (keyword_texts or page_url): - raise ValueError('At least one of keywords or page URL is required, ' - 'but neither was specified.') + raise ValueError( + "At least one of keywords or page URL is required, " + "but neither was specified." + ) # To generate keyword ideas with only a page_url and no keywords we need # to initialize a UrlSeed object with the page_url as the "url" field. if not keyword_texts and page_url: - url_seed = client.get_type('UrlSeed', version='v4') + url_seed = client.get_type("UrlSeed", version="v5") url_seed.url.value = page_url - # To generate keyword ideas with only a list of keywords and no page_url # we need to initialize a KeywordSeed object and set the "keywords" field # to be a list of StringValue objects. if keyword_texts and not page_url: - keyword_seed = client.get_type('KeywordSeed', version='v4') + keyword_seed = client.get_type("KeywordSeed", version="v5") keyword_protos = map_keywords_to_string_values(client, keyword_texts) keyword_seed.keywords.extend(keyword_protos) @@ -73,91 +77,136 @@ def main(client, customer_id, location_ids, language_id, keyword_texts, # need to initialize a KeywordAndUrlSeed object, setting both the "url" and # "keywords" fields. if keyword_texts and page_url: - keyword_url_seed = client.get_type('KeywordAndUrlSeed', version='v4') + keyword_url_seed = client.get_type("KeywordAndUrlSeed", version="v5") keyword_url_seed.url.value = page_url keyword_protos = map_keywords_to_string_values(client, keyword_textss) keyword_url_seed.keywords.extend(keyword_protos) try: keyword_ideas = keyword_plan_idea_service.generate_keyword_ideas( - customer_id, language, locations, False, keyword_plan_network, - url_seed=url_seed, keyword_seed=keyword_seed, - keyword_and_url_seed=keyword_url_seed) + customer_id, + language, + locations, + False, + keyword_plan_network, + url_seed=url_seed, + keyword_seed=keyword_seed, + keyword_and_url_seed=keyword_url_seed, + ) for idea in keyword_ideas: competition_value = keyword_competition_level_enum.Name( - idea.keyword_idea_metrics.competition) - print(f'Keyword idea text "{idea.text.value}" has ' - f'"{idea.keyword_idea_metrics.avg_monthly_searches.value}" ' - f'average monthly searches and "{competition_value}" ' - 'competition.\n') + idea.keyword_idea_metrics.competition + ) + print( + f'Keyword idea text "{idea.text.value}" has ' + f'"{idea.keyword_idea_metrics.avg_monthly_searches.value}" ' + f'average monthly searches and "{competition_value}" ' + "competition.\n" + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) def map_keywords_to_string_values(client, keyword_texts): keyword_protos = [] for keyword in keyword_texts: - string_val = client.get_type('StringValue', version='v4') + string_val = client.get_type("StringValue", version="v5") string_val.value = keyword keyword_protos.append(string_val) return keyword_protos def map_locations_to_string_values(client, location_ids): - gtc_service = client.get_service('GeoTargetConstantService', version='v4') + gtc_service = client.get_service("GeoTargetConstantService", version="v5") locations = [] for location_id in location_ids: - location = client.get_type('StringValue', version='v4') + location = client.get_type("StringValue", version="v5") location.value = gtc_service.geo_target_constant_path(location_id) locations.append(location) return locations def map_language_to_string_value(client, language_id): - language = client.get_type('StringValue') - language.value = client.get_service('LanguageConstantService', - version='v4').language_constant_path( - language_id) + language = client.get_type("StringValue") + language.value = client.get_service( + "LanguageConstantService", version="v5" + ).language_constant_path(language_id) return language -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Generates keyword ideas from a list of seed keywords.') + description="Generates keyword ideas from a list of seed keywords." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-k', '--keyword_texts', nargs='+', type=str, - required=False, default=[], - help='Space-delimited list of starter keywords') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-k", + "--keyword_texts", + nargs="+", + type=str, + required=False, + default=[], + help="Space-delimited list of starter keywords", + ) # To determine the appropriate location IDs, see: # https://developers.google.com/adwords/api/docs/appendix/geotargeting. - parser.add_argument('-l', '--location_ids', nargs='+', type=str, - required=False, default=_DEFAULT_LOCATION_IDS, - help='Space-delimited list of location criteria IDs') + parser.add_argument( + "-l", + "--location_ids", + nargs="+", + type=str, + required=False, + default=_DEFAULT_LOCATION_IDS, + help="Space-delimited list of location criteria IDs", + ) # To determine the appropriate language ID, see: # https://developers.google.com/adwords/api/docs/appendix/codes-formats#languages. - parser.add_argument('-i', '--language_id', type=str, - required=False, default=_DEFAULT_LANGUAGE_ID, - help='The language criterion ID.') + parser.add_argument( + "-i", + "--language_id", + type=str, + required=False, + default=_DEFAULT_LANGUAGE_ID, + help="The language criterion ID.", + ) # Optional: Specify a URL string related to your business to generate ideas. - parser.add_argument('-p', '--page_url', type=str, required=False, - help='A URL string related to your business') + parser.add_argument( + "-p", + "--page_url", + type=str, + required=False, + help="A URL string related to your business", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.location_ids, - args.language_id, args.keyword_texts, args.page_url) + main( + google_ads_client, + args.customer_id, + args.location_ids, + args.language_id, + args.keyword_texts, + args.page_url, + ) diff --git a/examples/planning/get_ad_group_criterion_cpc_bid_simulations.py b/examples/planning/get_ad_group_criterion_cpc_bid_simulations.py new file mode 100755 index 000000000..1f9f65e4a --- /dev/null +++ b/examples/planning/get_ad_group_criterion_cpc_bid_simulations.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Gets available ad group criterion CPC bid simulations for a given ad group. + +To get ad groups, run get_ad_groups.py. +""" + + +import argparse +import sys + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, ad_group_id): + google_ads_service = client.get_service("GoogleAdsService", version="v5") + + query = f""" + SELECT + ad_group_criterion_simulation.ad_group_id, + ad_group_criterion_simulation.criterion_id, + ad_group_criterion_simulation.start_date, + ad_group_criterion_simulation.end_date, + ad_group_criterion_simulation.cpc_bid_point_list.points + FROM + ad_group_criterion_simulation + WHERE + ad_group_criterion_simulation.type = CPC_BID AND + ad_group_criterion_simulation.ad_group_id = {ad_group_id}""" + + try: + # Issues a search request using streaming. + response = google_ads_service.search_stream(customer_id, query=query) + + # Iterates over all rows in all messages and prints the requested field + # values for the ad group criterion CPC bid simulation in each row. + for batch in response: + for row in batch.results: + simulation = row.ad_group_criterion_simulation + + print( + "found ad group criterion CPC bid simulation for " + f"ad group ID {simulation.ad_group_id}, " + f"criterion ID {simulation.criterion_id}, " + f"start date {simulation.start_date}, " + f"end date {simulation.end_date}" + ) + + for point in simulation.cpc_bid_point_list.points: + print( + f"\tbid: {point.cpc_bid_micros} => " + f"clicks: {point.clicks}", + f"cost: {point.cost_micros}, " + f"impressions: {point.impressions}," + "biddable conversions: " + f"{point.biddable_conversions}," + f"biddable conversions value: " + f"{point.biddable_conversions_value}", + ) + + print() + + except GoogleAdsException as ex: + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) + for error in ex.failure.errors: + print(f'\tError with message "{error.message}".') + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Gets all available ad group criterion CPC bid " + "simulations for a given ad group." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--ad_group_id", + type=str, + required=True, + help="The ad group ID for which to get available bid " "simulations.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/planning/get_campaign_criterion_bid_modifier_simulations.py b/examples/planning/get_campaign_criterion_bid_modifier_simulations.py new file mode 100755 index 000000000..a17d5a347 --- /dev/null +++ b/examples/planning/get_campaign_criterion_bid_modifier_simulations.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Gets all available criterion bid modifier simulations for a given campaign. + +To get campaigns, run get_campaigns.py. +""" + + +import argparse +import sys + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id, campaign_id): + """Gets all available criterion bid modifier simulations for a campaign. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to get the simulations. + campaign_id: The campaign ID from which to get the simulations. + """ + google_ads_service = client.get_service("GoogleAdsService", version="v5") + + query = f""" + SELECT + campaign_criterion_simulation.criterion_id, + campaign_criterion_simulation.start_date, + campaign_criterion_simulation.end_date, + campaign_criterion_simulation.bid_modifier_point_list.points + FROM + campaign_criterion_simulation + WHERE + campaign_criterion_simulation.type = BID_MODIFIER + AND + campaign_criterion_simulation.campaign_id = {campaign_id}""" + + try: + # Issues a search request using streaming. + response = google_ads_service.search_stream(customer_id, query=query) + + # Iterates over all rows in all messages and prints the requested field + # values for the ad group criterion CPC bid simulation in each row. + for batch in response: + for row in batch.results: + simulation = row.campaign_criterion_simulation + + print( + "Found campaign-level criterion bid modifier simulation " + f"for criterion with ID {simulation.criterion_id}, start " + f"date {simulation.start_date}, end date " + f"{simulation.end_date}, and points:" + ) + + for point in simulation.bid_modifier_point_list.points: + print( + f"\tbid modifier: {'{point.bid_modifier:.2f}'} " + f"=> clicks: {point.clicks}, " + f"cost: {point.cost_micros}, " + f"impressions: {point.impressions}, " + f"parent clicks: {point.parent_clicks}, " + f"parent cost: {point.parent_cost_micros}, " + f"parent impressions: {point.parent_impressions}, " + "parent required budget: " + f"{point.parent_required_budget_micros}", + ) + + print() + + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Gets all available criterion bid modifier simulations " + "for a given campaign." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", + "--campaign_id", + type=str, + required=True, + help="The campaign ID from which to get available bid simulations.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/recommendations/apply_recommendation.py b/examples/recommendations/apply_recommendation.py index 2cdb80cad..7baa1347e 100755 --- a/examples/recommendations/apply_recommendation.py +++ b/examples/recommendations/apply_recommendation.py @@ -25,47 +25,65 @@ def main(client, customer_id, recommendation_id): - recommendation_service = client.get_service('RecommendationService', - version='v4') + recommendation_service = client.get_service( + "RecommendationService", version="v5" + ) apply_recommendation_operation = client.get_type( - 'ApplyRecommendationOperation') + "ApplyRecommendationOperation" + ) - apply_recommendation_operation.resource_name = ( - recommendation_service.recommendation_path( - customer_id, recommendation_id)) + apply_recommendation_operation.resource_name = recommendation_service.recommendation_path( + customer_id, recommendation_id + ) try: recommendation_response = recommendation_service.apply_recommendation( - customer_id, - [apply_recommendation_operation]) + customer_id, [apply_recommendation_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Applied recommendation with resource name: "%s".' - % recommendation_response.results[0].resource_name) + print( + 'Applied recommendation with resource name: "%s".' + % recommendation_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Pauses an ad in the specified customer\'s ad group.')) + description=("Pauses an ad in the specified customer's ad group.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-r', '--recommendation_id', type=str, - required=True, help='The recommendation ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-r", + "--recommendation_id", + type=str, + required=True, + help="The recommendation ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.recommendation_id) diff --git a/examples/recommendations/dismiss_recommendation.py b/examples/recommendations/dismiss_recommendation.py index 9a7c998dd..1963dc44a 100755 --- a/examples/recommendations/dismiss_recommendation.py +++ b/examples/recommendations/dismiss_recommendation.py @@ -25,49 +25,67 @@ def main(client, customer_id, recommendation_id): - recommendation_service = client.get_service('RecommendationService') + recommendation_service = client.get_service("RecommendationService") dismiss_recommendation_request = client.get_type( - 'DismissRecommendationRequest') + "DismissRecommendationRequest" + ) - dismiss_recommendation_operation = (dismiss_recommendation_request. - DismissRecommendationOperation()) + dismiss_recommendation_operation = ( + dismiss_recommendation_request.DismissRecommendationOperation() + ) - dismiss_recommendation_operation.resource_name = ( - recommendation_service.recommendation_path( - customer_id, recommendation_id)) + dismiss_recommendation_operation.resource_name = recommendation_service.recommendation_path( + customer_id, recommendation_id + ) try: dismissal_response = recommendation_service.dismiss_recommendation( - customer_id, - [dismiss_recommendation_operation]) + customer_id, [dismiss_recommendation_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Dismissed recommendation with resource name: "%s".' - % dismissal_response.results[0].resource_name) + print( + 'Dismissed recommendation with resource name: "%s".' + % dismissal_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Dismisses a recommendation with the given ID.')) + description=("Dismisses a recommendation with the given ID.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-r', '--recommendation_id', type=str, - required=True, help='The recommendation ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-r", + "--recommendation_id", + type=str, + required=True, + help="The recommendation ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.recommendation_id) diff --git a/examples/recommendations/get_text_ad_recommendations.py b/examples/recommendations/get_text_ad_recommendations.py index 899d2746e..ac737401b 100755 --- a/examples/recommendations/get_text_ad_recommendations.py +++ b/examples/recommendations/get_text_ad_recommendations.py @@ -28,11 +28,13 @@ def main(client, customer_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT recommendation.type, recommendation.campaign, ' - 'recommendation.text_ad_recommendation FROM recommendation ' - 'WHERE recommendation.type = TEXT_AD') + query = ( + "SELECT recommendation.type, recommendation.campaign, " + "recommendation.text_ad_recommendation FROM recommendation " + "WHERE recommendation.type = TEXT_AD" + ) results = ga_service.search(customer_id, query=query, page_size=page_size) @@ -40,8 +42,10 @@ def main(client, customer_id, page_size): for row in results: recommendation = row.recommendation recommended_ad = recommendation.text_ad_recommendation.ad - print('Recommendation ("%s") was found for campaign "%s".' - % (recommendation.resource_name, recommendation.campaign)) + print( + 'Recommendation ("%s") was found for campaign "%s".' + % (recommendation.resource_name, recommendation.campaign) + ) if recommended_ad.display_url: print('\tDisplay URL = "%s"' % recommended_ad.display_url) @@ -52,27 +56,36 @@ def main(client, customer_id, page_size): for url in recommended_ad.final_mobile_urls: print('\tFinal Mobile URL = "%s"' % url) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Lists TEXT_AD recommendations for specified customer.') + description="Lists TEXT_AD recommendations for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/remarketing/add_conversion_action.py b/examples/remarketing/add_conversion_action.py index ad3145676..71184a9bf 100755 --- a/examples/remarketing/add_conversion_action.py +++ b/examples/remarketing/add_conversion_action.py @@ -23,60 +23,77 @@ def main(client, customer_id): - conversion_action_service = client.get_service('ConversionActionService', - version='v4') + conversion_action_service = client.get_service( + "ConversionActionService", version="v5" + ) # Create the operation. - conversion_action_operation = client.get_type('ConversionActionOperation', - version='v4') + conversion_action_operation = client.get_type( + "ConversionActionOperation", version="v5" + ) # Create conversion action. conversion_action = conversion_action_operation.create - conversion_action.name.value = ( - 'Earth to Mars Cruises Conversion %s' % uuid.uuid4()) + conversion_action.name = ( + "Earth to Mars Cruises Conversion %s" % uuid.uuid4() + ) conversion_action.type = client.get_type( - 'ConversionActionTypeEnum').UPLOAD_CLICKS + "ConversionActionTypeEnum" + ).UPLOAD_CLICKS conversion_action.category = client.get_type( - 'ConversionActionCategoryEnum').DEFAULT + "ConversionActionCategoryEnum" + ).DEFAULT conversion_action.status = client.get_type( - 'ConversionActionStatusEnum').ENABLED - conversion_action.view_through_lookback_window_days.value = 15 + "ConversionActionStatusEnum" + ).ENABLED + conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings = conversion_action.value_settings - value_settings.default_value.value = 15.0 - value_settings.always_use_default_value.value = True + value_settings.default_value = 15.0 + value_settings.always_use_default_value = True # Add the conversion action. try: - conversion_action_response = ( - conversion_action_service.mutate_conversion_actions( - customer_id, [conversion_action_operation])) + conversion_action_response = conversion_action_service.mutate_conversion_actions( + customer_id, [conversion_action_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Created conversion action "%s".' - % conversion_action_response.results[0].resource_name) + print( + 'Created conversion action "%s".' + % conversion_action_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Adds a conversion action for specified customer.') + description="Adds a conversion action for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/remarketing/add_customer_match_user_list.py b/examples/remarketing/add_customer_match_user_list.py new file mode 100755 index 000000000..a8f8badd4 --- /dev/null +++ b/examples/remarketing/add_customer_match_user_list.py @@ -0,0 +1,324 @@ +#!/usr/bin/env python +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Uses Customer Match to create and add users to a new user (audience) list. + +Note: It may take up to several hours for the list to be populated with users. +Email addresses must be associated with a Google account. +For privacy purposes, the user list size will show as zero until the list has +at least 1,000 users. After that, the size will be rounded to the two most +significant digits. +""" + +import argparse +import hashlib +import sys +import uuid + +from google.ads.google_ads.client import GoogleAdsClient +from google.ads.google_ads.errors import GoogleAdsException + + +def main(client, customer_id): + """Uses Customer Match to create and add users to a new user list. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the user list. + """ + try: + user_list_resource_name = _create_customer_match_user_list( + client, customer_id + ) + _add_users_to_customer_match_user_list( + client, customer_id, user_list_resource_name + ) + _print_customer_match_user_list_info( + client, customer_id, user_list_resource_name + ) + except GoogleAdsException as ex: + print( + f"Request with ID '{ex.request_id}' failed with status " + f"'{ex.error.code().name}' and includes the following errors:" + ) + for error in ex.failure.errors: + print(f"\tError with message '{error.message}'.") + if error.location: + for field_path_element in error.location.field_path_elements: + print(f"\t\tOn field: {field_path_element.field_name}") + sys.exit(1) + + +def _create_customer_match_user_list(client, customer_id): + """Creates a Customer Match user list. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the user list. + + Returns: + The string resource name of the newly created user list. + """ + # Creates the UserListService client. + user_list_service_client = client.get_service( + "UserListService", version="v5" + ) + + # Creates the user list operation. + user_list_operation = client.get_type("UserListOperation", version="v5") + + # Creates the new user list. + user_list = user_list_operation.create + user_list.name.value = f"Customer Match list #{uuid.uuid4()}" + user_list.description.value = ( + "A list of customers that originated from email and physical addresses" + ) + user_list.crm_based_user_list.upload_key_type = client.get_type( + "CustomerMatchUploadKeyTypeEnum", version="v5" + ).CONTACT_INFO + # Customer Match user lists can set an unlimited membership life span; + # to do so, use the special life span value 10000. Otherwise, membership + # life span must be between 0 and 540 days inclusive. See: + # https://developers.devsite.corp.google.com/google-ads/api/reference/rpc/latest/UserList#membership_life_span + # Sets the membership life span to 30 days. + user_list.membership_life_span.value = 30 + + response = user_list_service_client.mutate_user_lists( + customer_id, operations=[user_list_operation] + ) + user_list_resource_name = response.results[0].resource_name + print( + f"User list with resource name '{user_list_resource_name}' was created." + ) + + return user_list_resource_name + + +def _add_users_to_customer_match_user_list( + client, customer_id, user_list_resource_name +): + """Uses Customer Match to create and add users to a new user list. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the user list. + user_list_resource_name: The resource name of the user list to which to + add users. + """ + # Creates the OfflineUserDataJobService client. + offline_user_data_job_service_client = client.get_service( + "OfflineUserDataJobService", version="v5" + ) + + # Creates a new offline user data job. + offline_user_data_job = client.get_type("OfflineUserDataJob", version="v5") + offline_user_data_job.type = client.get_type( + "OfflineUserDataJobTypeEnum", version="v5" + ).CUSTOMER_MATCH_USER_LIST + offline_user_data_job.customer_match_user_list_metadata.user_list.value = ( + user_list_resource_name + ) + + # Issues a request to create an offline user data job. + create_offline_user_data_job_response = offline_user_data_job_service_client.create_offline_user_data_job( + customer_id, offline_user_data_job + ) + offline_user_data_job_resource_name = ( + create_offline_user_data_job_response.resource_name + ) + print( + "Created an offline user data job with resource name: " + f"'{offline_user_data_job_resource_name}'." + ) + + true_value = client.get_type("BoolValue", version="v5") + true_value.value = True + + # Issues a request to add the operations to the offline user data job. + response = ( + offline_user_data_job_service_client.add_offline_user_data_job_operations( + resource_name=offline_user_data_job_resource_name, + operations=_build_offline_user_data_job_operations(client), + enable_partial_failure=true_value, + ) + ) + + # Prints the status message if any partial failure error is returned. + # Note: the details of each partial failure error are not printed here. + # Refer to the error_handling/handle_partial_failure.py example to learn + # more. + # Extracts the partial failure from the response status. + partial_failure = getattr(response, "partial_failure_error", None) + if getattr(partial_failure, "code", None) != 0: + error_details = getattr(partial_failure, "details", []) + for error_detail in error_details: + failure_message = client.get_type("GoogleAdsFailure", version="v5") + failure_object = failure_message.FromString(error_detail.value) + + for error in failure_object.errors: + print( + "A partial failure at index {} occurred.\n" + "Error message: {}\nError code: {}".format( + error.location.field_path_elements[0].index.value, + error.message, + error.error_code, + ) + ) + + print("The operations are added to the offline user data job.") + + # Issues an request to run the offline user data job for executing all + # added operations. + operation_response = offline_user_data_job_service_client.run_offline_user_data_job( + offline_user_data_job_resource_name + ) + + # Wait until the operation has finished. + print("Request to execute the added operations started.") + print("Waiting until operation completes...") + operation_response.result() + + print( + "Offline user data job with resource name " + f"'{offline_user_data_job_resource_name}' has finished." + ) + + +def _build_offline_user_data_job_operations(client): + """Builds and returns two sample offline user data job operations. + + Args: + client: The Google Ads client. + + Returns: + A list containing the operations. + """ + # Creates a first user data based on an email address. + user_data_with_email_address_operation = client.get_type( + "OfflineUserDataJobOperation", version="v5" + ) + user_data_with_email_address = user_data_with_email_address_operation.create + user_identifier_with_hashed_email = client.get_type( + "UserIdentifier", version="v5" + ) + # Hash normalized email addresses based on SHA-256 hashing algorithm. + user_identifier_with_hashed_email.hashed_email.value = _normalize_and_hash( + "customer@example.com" + ) + user_data_with_email_address.user_identifiers.append( + user_identifier_with_hashed_email + ) + + # Creates a second user data based on a physical address. + user_data_with_physical_address_operation = client.get_type( + "OfflineUserDataJobOperation", version="v5" + ) + user_data_with_physical_address = ( + user_data_with_physical_address_operation.create + ) + user_identifier_with_address = client.get_type( + "UserIdentifier", version="v5" + ) + # First and last name must be normalized and hashed. + user_identifier_with_address.address_info.hashed_first_name.value = _normalize_and_hash( + "John" + ) + user_identifier_with_address.address_info.hashed_last_name.value = _normalize_and_hash( + "Doe" + ) + # Country and zip codes are sent in plain text. + user_identifier_with_address.address_info.country_code.value = "US" + user_identifier_with_address.address_info.postal_code.value = "10011" + user_data_with_physical_address.user_identifiers.append( + user_identifier_with_address + ) + + return [ + user_data_with_email_address_operation, + user_data_with_physical_address_operation, + ] + + +def _print_customer_match_user_list_info( + client, customer_id, user_list_resource_name +): + """Prints information about the Customer Match user list. + + Args: + client: The Google Ads client. + customer_id: The customer ID for which to add the user list. + user_list_resource_name: The resource name of the user list to which to + add users. + """ + google_ads_service_client = client.get_service( + "GoogleAdsService", version="v5" + ) + + # Creates a query that retrieves the user list. + query = f""" + SELECT + user_list.size_for_display, + user_list.size_for_search + FROM user_list + WHERE + user_list.resource_name = '{user_list_resource_name}'""" + + # Issues a search request. + search_results = google_ads_service_client.search(customer_id, query) + + # Prints out some information about the user list. + user_list = next(iter(search_results)).user_list + print( + "The estimated number of users that the user list " + f"'{user_list.resource_name}' has is " + f"{user_list.size_for_display.value} for Display and " + f"{user_list.size_for_search.value} for Search." + ) + print( + "Reminder: It may take several hours for the user list to be " + "populated. Estimates of size zero are possible." + ) + + +def _normalize_and_hash(s): + """Normalizes and hashes a string with SHA-256. + + Args: + s: The string to perform this operation on. + + Returns: + A normalized (lowercase, remove whitespace) and SHA-256 hashed string. + """ + return hashlib.sha256(s.strip().lower().encode()).hexdigest() + + +if __name__ == "__main__": + # GoogleAdsClient will read the google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Adds a customer match user list for specified customer." + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id) diff --git a/examples/remarketing/add_remarketing_action.py b/examples/remarketing/add_remarketing_action.py index 680502924..444d87059 100755 --- a/examples/remarketing/add_remarketing_action.py +++ b/examples/remarketing/add_remarketing_action.py @@ -28,37 +28,43 @@ def main(client, customer_id, page_size): remarketing_action_resource_name = _add_remarketing_action( - client, customer_id) + client, customer_id + ) print(f'Created remarketing action "{remarketing_action_resource_name}".') queried_remarketing_action = _query_remarketing_action( - client, customer_id, remarketing_action_resource_name, page_size) + client, customer_id, remarketing_action_resource_name, page_size + ) _print_remarketing_action_attributes(client, queried_remarketing_action) def _add_remarketing_action(client, customer_id): remarketing_action_service = client.get_service( - 'RemarketingActionService', version='v4') + "RemarketingActionService", version="v5" + ) remarketing_action_operation = client.get_type( - 'RemarketingActionOperation', version='v4') + "RemarketingActionOperation", version="v5" + ) remarketing_action = remarketing_action_operation.create - remarketing_action.name.value = f'Remarketing action #{uuid4()}' + remarketing_action.name = f"Remarketing action #{uuid4()}" try: - remarketing_action_response = ( - remarketing_action_service.mutate_remarketing_actions( - customer_id, [remarketing_action_operation])) + remarketing_action_response = remarketing_action_service.mutate_remarketing_actions( + customer_id, [remarketing_action_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) return remarketing_action_response.results[0].resource_name @@ -67,69 +73,94 @@ def _add_remarketing_action(client, customer_id): def _query_remarketing_action(client, customer_id, resource_name, page_size): # Creates a query that retrieves the previously created remarketing action # with its generated tag snippets. - query = ('SELECT remarketing_action.id, ' - 'remarketing_action.name, ' - 'remarketing_action.tag_snippets ' - 'FROM remarketing_action ' - f'WHERE remarketing_action.resource_name = "{resource_name}"') + query = ( + "SELECT remarketing_action.id, " + "remarketing_action.name, " + "remarketing_action.tag_snippets " + "FROM remarketing_action " + f'WHERE remarketing_action.resource_name = "{resource_name}"' + ) google_ads_service_client = client.get_service( - 'GoogleAdsService', version='v4') + "GoogleAdsService", version="v5" + ) results = google_ads_service_client.search( - customer_id, query=query, page_size=page_size) + customer_id, query=query, page_size=page_size + ) try: return list(results)[0].remarketing_action except google.ads.google_ads.errors.GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) def _print_remarketing_action_attributes(client, remarketing_action): tracking_code_type_enum = client.get_type( - 'TrackingCodeTypeEnum', version='v4').TrackingCodeType + "TrackingCodeTypeEnum", version="v5" + ).TrackingCodeType tracking_code_page_format_enum = client.get_type( - 'TrackingCodePageFormatEnum', version='v4').TrackingCodePageFormat + "TrackingCodePageFormatEnum", version="v5" + ).TrackingCodePageFormat - print(f'Remarketing action has ID {remarketing_action.id.value} and name ' - f'"{remarketing_action.name.value}". \nIt has the following ' - 'generated tag snippets:\n') + print( + f"Remarketing action has ID {remarketing_action.id} and name " + f'"{remarketing_action.name}". \nIt has the following ' + "generated tag snippets:\n" + ) for tag_snippet in remarketing_action.tag_snippets: tracking_code_type = tracking_code_type_enum.Name(tag_snippet.type) tracking_code_page_format = tracking_code_page_format_enum.Name( - tag_snippet.page_format) + tag_snippet.page_format + ) - print('='*80) - print(f'Tag snippet with code type "{tracking_code_type}", and code ' - f'page format "{tracking_code_page_format}" has the following:\n') - print('-'*80) - print(f'Global site tag: \n\n{tag_snippet.global_site_tag.value}') - print('-'*80) - print(f'Event snippet: \n\n{tag_snippet.event_snippet.value}') + print("=" * 80) + print( + f'Tag snippet with code type "{tracking_code_type}", and code ' + f'page format "{tracking_code_page_format}" has the following:\n' + ) + print("-" * 80) + print(f"Global site tag: \n\n{tag_snippet.global_site_tag}") + print("-" * 80) + print(f"Event snippet: \n\n{tag_snippet.event_snippet}") -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description='Adds a remarketing action for specified customer.') + description="Adds a remarketing action for specified customer." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) # The following argument(s) are optional. - parser.add_argument('-p', '--page_size', type=int, default=1000, - help='Number of pages to be returned in the response.') + parser.add_argument( + "-p", + "--page_size", + type=int, + default=1000, + help="Number of pages to be returned in the response.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.page_size) diff --git a/examples/remarketing/upload_conversion_adjustment.py b/examples/remarketing/upload_conversion_adjustment.py index f73c660e8..27f9c1d1e 100644 --- a/examples/remarketing/upload_conversion_adjustment.py +++ b/examples/remarketing/upload_conversion_adjustment.py @@ -25,104 +25,161 @@ from google.ads.google_ads.errors import GoogleAdsException -def main(client, customer_id, conversion_action_id, gclid, adjustment_type, - conversion_date_time, adjustment_date_time, restatement_value): +def main( + client, + customer_id, + conversion_action_id, + gclid, + adjustment_type, + conversion_date_time, + adjustment_date_time, + restatement_value, +): # Determine the adjustment type. - conversion_adjustment_type_enum = ( - client.get_type('ConversionAdjustmentTypeEnum')) - if adjustment_type.lower() == 'retraction': + conversion_adjustment_type_enum = client.get_type( + "ConversionAdjustmentTypeEnum" + ) + if adjustment_type.lower() == "retraction": conversion_adjustment_type = conversion_adjustment_type_enum.RETRACTION - elif adjustment_type.lower() == 'restatement': - conversion_adjustment_type = ( - conversion_adjustment_type_enum.RESTATEMENT) + elif adjustment_type.lower() == "restatement": + conversion_adjustment_type = conversion_adjustment_type_enum.RESTATEMENT else: - raise ValueError('Invalid adjustment type specified.') + raise ValueError("Invalid adjustment type specified.") # Associates conversion adjustments with the existing conversion action. # The GCLID should have been uploaded before with a conversion - conversion_adjustment = (client.get_type('ConversionAdjustment', - version='v4')) - conversion_action_service = (client.get_service('ConversionActionService', - version='v4')) - conversion_adjustment.conversion_action.value = ( - conversion_action_service.conversion_action_path( - customer_id, conversion_action_id)) + conversion_adjustment = client.get_type( + "ConversionAdjustment", version="v5" + ) + conversion_action_service = client.get_service( + "ConversionActionService", version="v5" + ) + conversion_adjustment.conversion_action = conversion_action_service.conversion_action_path( + customer_id, conversion_action_id + ) conversion_adjustment.adjustment_type = conversion_adjustment_type - conversion_adjustment.adjustment_date_time.value = adjustment_date_time + conversion_adjustment.adjustment_date_time = adjustment_date_time # Set the Gclid Date - conversion_adjustment.gclid_date_time_pair.gclid.value = gclid - conversion_adjustment.gclid_date_time_pair.conversion_date_time.value = ( - conversion_date_time) + conversion_adjustment.gclid_date_time_pair.gclid = gclid + conversion_adjustment.gclid_date_time_pair.conversion_date_time = ( + conversion_date_time + ) # Sets adjusted value for adjustment type RESTATEMENT. - if (restatement_value and - conversion_adjustment_type == - conversion_adjustment_type_enum.RESTATEMENT): - conversion_adjustment.restatement_value.adjusted_value.value = ( - float(restatement_value)) + if ( + restatement_value + and conversion_adjustment_type + == conversion_adjustment_type_enum.RESTATEMENT + ): + conversion_adjustment.restatement_value.adjusted_value = float( + restatement_value + ) - conversion_adjustment_upload_service = ( - client.get_service('ConversionAdjustmentUploadService', version='v4')) + conversion_adjustment_upload_service = client.get_service( + "ConversionAdjustmentUploadService", version="v5" + ) try: - response = ( - conversion_adjustment_upload_service. - upload_conversion_adjustments(customer_id, - [conversion_adjustment], - partial_failure=True)) + response = conversion_adjustment_upload_service.upload_conversion_adjustments( + customer_id, [conversion_adjustment], partial_failure=True + ) conversion_adjustment_result = response.results[0] - print(f'Uploaded conversion that occurred at ' - f'"{conversion_adjustment_result.adjustment_date_time.value}" ' - f'from Gclid ' - f'"{conversion_adjustment_result.gclid_date_time_pair.gclid.value}"' - f' to "{conversion_adjustment_result.conversion_action.value}"') + print( + f"Uploaded conversion that occurred at " + f'"{conversion_adjustment_result.adjustment_date_time}" ' + f"from Gclid " + f'"{conversion_adjustment_result.gclid_date_time_pair.gclid}" ' + f'to "{conversion_adjustment_result.conversion_action}"' + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Uploads a conversion adjustment.') + description="Uploads a conversion adjustment." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--conversion_action_id', type=str, - required=True, help='The conversion action ID to be ' - 'uploaded to.') - parser.add_argument('-g', '--gclid', type=str, - required=True, help='The Google Click Identifier ID.') - parser.add_argument('-d', '--adjustment_type', type=str, - required=True, help='The Adjustment type, e.g. ' - 'RETRACTION, RESTATEMENT') - parser.add_argument('-t', '--conversion_date_time', type=str, - required=True, help='The the date and time of the ' - 'conversion. The format is ' - '"yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' - '“2019-01-01 12:32:45-08:00”') - parser.add_argument('-v', '--adjustment_date_time', type=str, - required=True, help='The the date and time of the ' - 'adjustment. The format is ' - '"yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' - '“2019-01-01 12:32:45-08:00”') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--conversion_action_id", + type=str, + required=True, + help="The conversion action ID to be " "uploaded to.", + ) + parser.add_argument( + "-g", + "--gclid", + type=str, + required=True, + help="The Google Click Identifier ID.", + ) + parser.add_argument( + "-d", + "--adjustment_type", + type=str, + required=True, + help="The Adjustment type, e.g. " "RETRACTION, RESTATEMENT", + ) + parser.add_argument( + "-t", + "--conversion_date_time", + type=str, + required=True, + help="The the date and time of the " + "conversion. The format is " + '"yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' + "“2019-01-01 12:32:45-08:00”", + ) + parser.add_argument( + "-v", + "--adjustment_date_time", + type=str, + required=True, + help="The the date and time of the " + "adjustment. The format is " + '"yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' + "“2019-01-01 12:32:45-08:00”", + ) # Optional: Specify an adjusted value for adjustment type RESTATEMENT. # This value will be ignored if you specify RETRACTION as adjustment type. - parser.add_argument('-r', '--restatement_value', type=str, - required=False, help='The adjusted value for ' - 'adjustment type RESTATEMENT.') + parser.add_argument( + "-r", + "--restatement_value", + type=str, + required=False, + help="The adjusted value for " "adjustment type RESTATEMENT.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.conversion_action_id, - args.gclid, args.adjustment_type, args.conversion_date_time, - args.adjustment_date_time, args.restatement_value) + main( + google_ads_client, + args.customer_id, + args.conversion_action_id, + args.gclid, + args.adjustment_type, + args.conversion_date_time, + args.adjustment_date_time, + args.restatement_value, + ) diff --git a/examples/remarketing/upload_offline_conversion.py b/examples/remarketing/upload_offline_conversion.py index 1c132946a..1847973b0 100644 --- a/examples/remarketing/upload_offline_conversion.py +++ b/examples/remarketing/upload_offline_conversion.py @@ -27,69 +27,113 @@ from google.ads.google_ads.errors import GoogleAdsException -def main(client, customer_id, conversion_action_id, gclid, - conversion_date_time, conversion_value): +def main( + client, + customer_id, + conversion_action_id, + gclid, + conversion_date_time, + conversion_value, +): """Creates a click conversion with a default currency of USD.""" - click_conversion = client.get_type('ClickConversion', version='v4') - conversion_action_service = client.get_service('ConversionActionService', - version='v4') - click_conversion.conversion_action.value = ( - conversion_action_service.conversion_action_path( - customer_id, conversion_action_id)) - click_conversion.gclid.value = gclid - click_conversion.conversion_value.value = float(conversion_value) - click_conversion.conversion_date_time.value = conversion_date_time - click_conversion.currency_code.value = 'USD' + click_conversion = client.get_type("ClickConversion", version="v5") + conversion_action_service = client.get_service( + "ConversionActionService", version="v5" + ) + click_conversion.conversion_action = conversion_action_service.conversion_action_path( + customer_id, conversion_action_id + ) + click_conversion.gclid = gclid + click_conversion.conversion_value = float(conversion_value) + click_conversion.conversion_date_time = conversion_date_time + click_conversion.currency_code = "USD" - conversion_upload_service = client.get_service('ConversionUploadService', - version='v4') + conversion_upload_service = client.get_service( + "ConversionUploadService", version="v5" + ) try: - conversion_upload_response = ( - conversion_upload_service.upload_click_conversions(customer_id, - [click_conversion], partial_failure=True)) + conversion_upload_response = conversion_upload_service.upload_click_conversions( + customer_id, [click_conversion], partial_failure=True + ) uploaded_click_conversion = conversion_upload_response.results[0] - print(f'Uploaded conversion that occurred at ' - f'"{uploaded_click_conversion.conversion_date_time.value}" from ' - f'Google Click ID "{uploaded_click_conversion.gclid.value}" ' - f'to "{uploaded_click_conversion.conversion_action.value}"') + print( + f"Uploaded conversion that occurred at " + f'"{uploaded_click_conversion.conversion_date_time}" from ' + f'Google Click ID "{uploaded_click_conversion.gclid}" ' + f'to "{uploaded_click_conversion.conversion_action}"' + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description='Uploads an offline conversion.') + description="Uploads an offline conversion." + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--conversion_action_id', type=str, - required=True, help='The conversion action ID.') - parser.add_argument('-g', '--gclid', type=str, - required=True, help='The Google Click Identifier ID ' - '(gclid) which should be newer than the number of ' - 'days set on the conversion window of the conversion ' - 'action.') - parser.add_argument('-t', '--conversion_date_time', type=str, - required=True, help='The the date and time of the ' - 'conversion (should be after the click time). The ' - 'format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' - '“2019-01-01 12:32:45-08:00”') - parser.add_argument('-v', '--conversion_value', type=str, - required=True, help='The conversion value.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", + "--conversion_action_id", + type=str, + required=True, + help="The conversion action ID.", + ) + parser.add_argument( + "-g", + "--gclid", + type=str, + required=True, + help="The Google Click Identifier ID " + "(gclid) which should be newer than the number of " + "days set on the conversion window of the conversion " + "action.", + ) + parser.add_argument( + "-t", + "--conversion_date_time", + type=str, + required=True, + help="The the date and time of the " + "conversion (should be after the click time). The " + 'format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", e.g. ' + "“2019-01-01 12:32:45-08:00”", + ) + parser.add_argument( + "-v", + "--conversion_value", + type=str, + required=True, + help="The conversion value.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.conversion_action_id, - args.gclid, args.conversion_date_time, args.conversion_value) + main( + google_ads_client, + args.customer_id, + args.conversion_action_id, + args.gclid, + args.conversion_date_time, + args.conversion_value, + ) diff --git a/examples/reporting/get_hotel_ads_performance.py b/examples/reporting/get_hotel_ads_performance.py index 4bc11f70d..2aaccbae7 100755 --- a/examples/reporting/get_hotel_ads_performance.py +++ b/examples/reporting/get_hotel_ads_performance.py @@ -27,19 +27,21 @@ def main(client, customer_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') - - query = ('SELECT campaign.id, campaign.advertising_channel_type, ' - 'ad_group.id, ad_group.status, metrics.impressions, ' - 'metrics.hotel_average_lead_value_micros, ' - 'segments.hotel_check_in_day_of_week, ' - 'segments.hotel_length_of_stay ' - 'FROM hotel_performance_view ' - 'WHERE segments.date DURING LAST_7_DAYS ' - 'AND campaign.advertising_channel_type = \'HOTEL\' ' - 'AND ad_group.status = \'ENABLED\' ' - 'ORDER BY metrics.impressions DESC ' - 'LIMIT 50') + ga_service = client.get_service("GoogleAdsService", version="v5") + + query = ( + "SELECT campaign.id, campaign.advertising_channel_type, " + "ad_group.id, ad_group.status, metrics.impressions, " + "metrics.hotel_average_lead_value_micros, " + "segments.hotel_check_in_day_of_week, " + "segments.hotel_length_of_stay " + "FROM hotel_performance_view " + "WHERE segments.date DURING LAST_7_DAYS " + "AND campaign.advertising_channel_type = 'HOTEL' " + "AND ad_group.status = 'ENABLED' " + "ORDER BY metrics.impressions DESC " + "LIMIT 50" + ) response = ga_service.search(customer_id, query, page_size=page_size) @@ -51,36 +53,51 @@ def main(client, customer_id, page_size): hotel_length_of_stay = row.segments.hotel_length_of_stay metrics = row.metrics - print('Ad group ID "%s" in campaign ID "%s" ' % (ad_group.id.value, - campaign.id.value)) - print('with hotel check-in on "%s" and "%s" day(s) stay ' % ( - hotel_check_in_day_of_week, hotel_length_of_stay.value)) - print('had %d impression(s) and %d average lead value (in micros) ' - 'during the last 7 days.\n' % (metrics.impressions.value, - metrics.hotel_average_lead_value_micros.value)) + print( + 'Ad group ID "%s" in campaign ID "%s" ' + % (ad_group.id, campaign.id) + ) + print( + 'with hotel check-in on "%s" and "%s" day(s) stay ' + % (hotel_check_in_day_of_week, hotel_length_of_stay) + ) + print( + "had %d impression(s) and %d average lead value (in micros) " + "during the last 7 days.\n" + % (metrics.impressions, metrics.hotel_average_lead_value_micros) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Retrieves Hotel-ads performance statistics.')) + description=("Retrieves Hotel-ads performance statistics.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/reporting/get_keyword_stats.py b/examples/reporting/get_keyword_stats.py index 25f20c5b9..6ccc842ec 100755 --- a/examples/reporting/get_keyword_stats.py +++ b/examples/reporting/get_keyword_stats.py @@ -25,24 +25,27 @@ def main(client, customer_id): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, ' - 'ad_group_criterion.criterion_id, ' - 'ad_group_criterion.keyword.text, ' - 'ad_group_criterion.keyword.match_type, ' - 'metrics.impressions, metrics.clicks, metrics.cost_micros ' - 'FROM keyword_view WHERE segments.date DURING LAST_7_DAYS ' - 'AND campaign.advertising_channel_type = \'SEARCH\' ' - 'AND ad_group.status = \'ENABLED\' ' - 'AND ad_group_criterion.status IN (\'ENABLED\', \'PAUSED\') ' - 'ORDER BY metrics.impressions DESC ' - 'LIMIT 50') + query = ( + "SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, " + "ad_group_criterion.criterion_id, " + "ad_group_criterion.keyword.text, " + "ad_group_criterion.keyword.match_type, " + "metrics.impressions, metrics.clicks, metrics.cost_micros " + "FROM keyword_view WHERE segments.date DURING LAST_7_DAYS " + "AND campaign.advertising_channel_type = 'SEARCH' " + "AND ad_group.status = 'ENABLED' " + "AND ad_group_criterion.status IN ('ENABLED', 'PAUSED') " + "ORDER BY metrics.impressions DESC " + "LIMIT 50" + ) # Issues a search request using streaming. response = ga_service.search_stream(customer_id, query) keyword_match_type_enum = client.get_type( - 'KeywordMatchTypeEnum', version='v4').KeywordMatchType + "KeywordMatchTypeEnum", version="v5" + ).KeywordMatchType try: for batch in response: for row in batch.results: @@ -51,39 +54,50 @@ def main(client, customer_id): criterion = row.ad_group_criterion metrics = row.metrics keyword_match_type = keyword_match_type_enum.Name( - criterion.keyword.match_type) - print(f'Keyword text "{criterion.keyword.text.value}" with ' - f'match type "{keyword_match_type}" ' - f'and ID {criterion.criterion_id.value} in ' - f'ad group "{ad_group.name.value}" ' - f'with ID "{ad_group.id.value}" ' - f'in campaign "{campaign.name.value}" ' - f'with ID {campaign.id.value} ' - f'had {metrics.impressions.value} impression(s), ' - f'{metrics.clicks.value} click(s), and ' - f'{metrics.cost_micros.value} cost (in micros) during ' - 'the last 7 days.') + criterion.keyword.match_type + ) + print( + f'Keyword text "{criterion.keyword.text}" with ' + f'match type "{keyword_match_type}" ' + f"and ID {criterion.criterion_id} in " + f'ad group "{ad_group.name}" ' + f'with ID "{ad_group.id}" ' + f'in campaign "{campaign.name}" ' + f"with ID {campaign.id} " + f"had {metrics.impressions} impression(s), " + f"{metrics.clicks} click(s), and " + f"{metrics.cost_micros} cost (in micros) during " + "the last 7 days." + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Retrieves a campaign\'s negative keywords.')) + description=("Retrieves a campaign's negative keywords.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) args = parser.parse_args() main(google_ads_client, args.customer_id) diff --git a/examples/shopping_ads/add_listing_scope.py b/examples/shopping_ads/add_listing_scope.py old mode 100644 new mode 100755 index 3f9c64038..52a2a97c5 --- a/examples/shopping_ads/add_listing_scope.py +++ b/examples/shopping_ads/add_listing_scope.py @@ -35,15 +35,17 @@ def main(client, customer_id, campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") campaign_resource_name = campaign_service.campaign_path( - customer_id, campaign_id) + customer_id, campaign_id + ) campaign_criterion_operation = client.get_type( - 'CampaignCriterionOperation', version='v4') + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_resource_name + campaign_criterion.campaign = campaign_resource_name # A listing scope allows you to filter the products that will be included in # a given campaign. You can specify multiple dimensions with conditions that @@ -51,71 +53,86 @@ def main(client, customer_id, campaign_id): # A typical listing scope might only have a few dimensions. This example # demonstrates a range of different dimensions you could use. _build_listing_scope_dimensions( - client, campaign_criterion.listing_scope.dimensions) + client, campaign_criterion.listing_scope.dimensions + ) - campaign_criterion_service = client.get_service('CampaignCriterionService', - version='v4') + campaign_criterion_service = client.get_service( + "CampaignCriterionService", version="v5" + ) try: - campaign_criterion_response = ( - campaign_criterion_service.mutate_campaign_criteria( - customer_id, [campaign_criterion_operation])) + campaign_criterion_response = campaign_criterion_service.mutate_campaign_criteria( + customer_id, [campaign_criterion_operation] + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) - print(f'Added {len(campaign_criterion_response.results)} campaign ' - 'criteria:') + print( + f"Added {len(campaign_criterion_response.results)} campaign " + "criteria:" + ) for campaign_criterion in campaign_criterion_response.results: print(campaign_criterion.resource_name) def _build_listing_scope_dimensions(client, dimensions): product_brand_dimension = dimensions.add() - product_brand_dimension.product_brand.value.value = 'google' + product_brand_dimension.product_brand.value = "google" product_custom_attribute_index_enum = client.get_type( - 'ProductCustomAttributeIndexEnum', version='v4') + "ProductCustomAttributeIndexEnum", version="v5" + ) product_custom_attribute_dimension = dimensions.add() product_custom_attribute = ( - product_custom_attribute_dimension.product_custom_attribute) + product_custom_attribute_dimension.product_custom_attribute + ) product_custom_attribute.index = product_custom_attribute_index_enum.INDEX0 - product_custom_attribute.value.value = 'top_selling_products' + product_custom_attribute.value = "top_selling_products" product_type_level_enum = client.get_type( - 'ProductTypeLevelEnum', version='v4') + "ProductTypeLevelEnum", version="v5" + ) product_type_dimension_1 = dimensions.add() product_type = product_type_dimension_1.product_type product_type.level = product_type_level_enum.LEVEL1 - product_type.value.value = 'electronics' + product_type.value = "electronics" product_type_dimension_2 = dimensions.add() product_type = product_type_dimension_2.product_type product_type.level = product_type_level_enum.LEVEL2 - product_type.value.value = 'smartphones' + product_type.value = "smartphones" -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds a shopping listing scope to a shopping campaign.')) + description=("Adds a shopping listing scope to a shopping campaign.") + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, required=True, - help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, required=True, - help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.campaign_id) - diff --git a/examples/shopping_ads/add_shopping_product_ad.py b/examples/shopping_ads/add_shopping_product_ad.py index b43b2d29e..65615edb6 100755 --- a/examples/shopping_ads/add_shopping_product_ad.py +++ b/examples/shopping_ads/add_shopping_product_ad.py @@ -32,207 +32,241 @@ import google.ads.google_ads.client -def main(client, customer_id, merchant_center_account_id, - create_default_listing_group): +def main( + client, + customer_id, + merchant_center_account_id, + create_default_listing_group, +): # Creates a budget to be used by the campaign that will be created below. budget_resource_name = add_campaign_budget(client, customer_id) # Create a standard shopping campaign. campaign_resource_name = add_standard_shopping_campaign( - client, customer_id, budget_resource_name, merchant_center_account_id) + client, customer_id, budget_resource_name, merchant_center_account_id + ) # Create a shoppng product ad group. - ad_group_resource_name = add_shopping_product_ad_group(client, customer_id, - campaign_resource_name) + ad_group_resource_name = add_shopping_product_ad_group( + client, customer_id, campaign_resource_name + ) # Create a shopping product ad group ad. - add_shopping_product_ad_group_ad(client, customer_id, - ad_group_resource_name) + add_shopping_product_ad_group_ad( + client, customer_id, ad_group_resource_name + ) - if (create_default_listing_group): + if create_default_listing_group: # Creates an ad group criterion containing a listing group. # This will be the listing group tree for 'All products' and will # contain a single biddable unit node. - add_default_shopping_listing_group(client, customer_id, - ad_group_resource_name) + add_default_shopping_listing_group( + client, customer_id, ad_group_resource_name + ) def add_campaign_budget(client, customer_id): """Creates a new campaign budget in the specified client account.""" - campaign_budget_service = client.get_service('CampaignBudgetService', - version='v4') + campaign_budget_service = client.get_service( + "CampaignBudgetService", version="v5" + ) # Create a budget, which can be shared by multiple campaigns. - campaign_budget_operation = client.get_type('CampaignBudgetOperation', - version='v4') + campaign_budget_operation = client.get_type( + "CampaignBudgetOperation", version="v5" + ) campaign_budget = campaign_budget_operation.create - campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.name = "Interplanetary Budget %s" % uuid.uuid4() campaign_budget.delivery_method = client.get_type( - 'BudgetDeliveryMethodEnum').STANDARD - campaign_budget.amount_micros.value = 500000 + "BudgetDeliveryMethodEnum" + ).STANDARD + campaign_budget.amount_micros = 500000 # Add budget. try: - campaign_budget_response = ( - campaign_budget_service.mutate_campaign_budgets( - customer_id, [campaign_budget_operation])) + campaign_budget_response = campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) budget_resource_name = campaign_budget_response.results[0].resource_name - print('Added a budget with resource name: %s' % budget_resource_name) + print("Added a budget with resource name: %s" % budget_resource_name) return budget_resource_name -def add_shopping_product_ad_group_ad(client, customer_id, - ad_group_resource_name): +def add_shopping_product_ad_group_ad( + client, customer_id, ad_group_resource_name +): """Creates a new shopping product ad group ad in the specified ad group.""" - ad_group_ad_service = client.get_service('AdGroupAdService', version='v4') + ad_group_ad_service = client.get_service("AdGroupAdService", version="v5") # Creates a new ad group ad and sets the product ad to it. - ad_group_ad_operation = client.get_type('AdGroupAdOperation', version='v4') + ad_group_ad_operation = client.get_type("AdGroupAdOperation", version="v5") ad_group_ad = ad_group_ad_operation.create - ad_group_ad.ad_group.value = ad_group_resource_name - ad_group_ad.status = client.get_type('AdGroupAdStatusEnum', - version='v4').PAUSED - ad_group_ad.ad.shopping_product_ad.CopyFrom(client.get_type( - 'ShoppingProductAdInfo')) + ad_group_ad.ad_group = ad_group_resource_name + ad_group_ad.status = client.get_type( + "AdGroupAdStatusEnum", version="v5" + ).PAUSED + ad_group_ad.ad.shopping_product_ad.CopyFrom( + client.get_type("ShoppingProductAdInfo") + ) # Add the ad group ad. try: ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( - customer_id, [ad_group_ad_operation]) + customer_id, [ad_group_ad_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) ad_group_ad_resource_name = ad_group_ad_response.results[0].resource_name - print('Created shopping product ad group ad %s.' % - ad_group_ad_resource_name) + print( + "Created shopping product ad group ad %s." % ad_group_ad_resource_name + ) return ad_group_resource_name def add_shopping_product_ad_group(client, customer_id, campaign_resource_name): """Creates a new shopping product ad group in the specified campaign.""" - ad_group_service = client.get_service('AdGroupService', version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") # Create ad group. - ad_group_operation = client.get_type('AdGroupOperation', version='v4') + ad_group_operation = client.get_type("AdGroupOperation", version="v5") ad_group = ad_group_operation.create - ad_group.name.value = 'Earth to Mars cruise %s' % uuid.uuid4() - ad_group.status = client.get_type('AdGroupStatusEnum', version='v4').ENABLED - ad_group.campaign.value = campaign_resource_name + ad_group.name = "Earth to Mars cruise %s" % uuid.uuid4() + ad_group.status = client.get_type("AdGroupStatusEnum", version="v5").ENABLED + ad_group.campaign = campaign_resource_name # Sets the ad group type to SHOPPING_PRODUCT_ADS. This is the only value # possible for ad groups that contain shopping product ads. - ad_group.type = client.get_type('AdGroupTypeEnum', - version='v4').SHOPPING_PRODUCT_ADS - ad_group.cpc_bid_micros.value = 10000000 + ad_group.type = client.get_type( + "AdGroupTypeEnum", version="v5" + ).SHOPPING_PRODUCT_ADS + ad_group.cpc_bid_micros = 10000000 # Add the ad group. try: ad_group_response = ad_group_service.mutate_ad_groups( - customer_id, [ad_group_operation]) + customer_id, [ad_group_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) ad_group_resource_name = ad_group_response.results[0].resource_name - print('Added a product shopping ad group with resource name "%s".' - % ad_group_resource_name) + print( + 'Added a product shopping ad group with resource name "%s".' + % ad_group_resource_name + ) return ad_group_resource_name -def add_standard_shopping_campaign(client, customer_id, budget_resource_name, - merchant_center_account_id): +def add_standard_shopping_campaign( + client, customer_id, budget_resource_name, merchant_center_account_id +): """Creates a new standard shopping campaign in the specified client account. """ - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Create standard shoppping campaign. - campaign_operation = client.get_type('CampaignOperation', version='v4') + campaign_operation = client.get_type("CampaignOperation", version="v5") campaign = campaign_operation.create - campaign.name.value = 'Interplanetary Cruise Campaign %s' % uuid.uuid4() + campaign.name = "Interplanetary Cruise Campaign %s" % uuid.uuid4() # Configures settings related to shopping campaigns including advertising # channel type and shopping setting. campaign.advertising_channel_type = client.get_type( - 'AdvertisingChannelTypeEnum').SHOPPING - campaign.shopping_setting.merchant_id.value = merchant_center_account_id + "AdvertisingChannelTypeEnum" + ).SHOPPING + campaign.shopping_setting.merchant_id = merchant_center_account_id # Sets the sales country of products to include in the campaign. - campaign.shopping_setting.sales_country.value = "US" + campaign.shopping_setting.sales_country = "US" # Sets the priority of the campaign. Higher numbers take priority over lower # numbers. For standard shopping campaigns, allowed values are between 0 and # 2, inclusive. - campaign.shopping_setting.campaign_priority.value = 0 + campaign.shopping_setting.campaign_priority = 0 # Enables local inventory ads for this campaign. - campaign.shopping_setting.enable_local.value = True + campaign.shopping_setting.enable_local = True # Recommendation: Set the campaign to PAUSED when creating it to prevent the # ads from immediately serving. Set to ENABLED once you've added targeting # and the ads are ready to serve. - campaign.status = client.get_type('CampaignStatusEnum', version='v4').PAUSED + campaign.status = client.get_type("CampaignStatusEnum", version="v5").PAUSED # Sets the bidding strategy to Manual CPC (with eCPC enabled) # Recommendation: Use one of the automated bidding strategies for Shopping # campaigns to help you optimize your advertising spend. More information # can be found here: https://support.google.com/google-ads/answer/6309029 - campaign.manual_cpc.enhanced_cpc_enabled.value = True + campaign.manual_cpc.enhanced_cpc_enabled = True # Sets the budget. - campaign.campaign_budget.value = budget_resource_name + campaign.campaign_budget = budget_resource_name # Add the campaign. try: campaign_response = campaign_service.mutate_campaigns( - customer_id, [campaign_operation]) + customer_id, [campaign_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) campaign_resource_name = campaign_response.results[0].resource_name - print('Added a standard shopping campaign with resource name "%s".' - % campaign_resource_name) + print( + 'Added a standard shopping campaign with resource name "%s".' + % campaign_resource_name + ) return campaign_resource_name -def add_default_shopping_listing_group(client, customer_id, - ad_group_resource_name): +def add_default_shopping_listing_group( + client, customer_id, ad_group_resource_name +): """Creates a new default shopping listing group for the specified ad group. A listing group is the Google Ads API representation of a "product group" @@ -240,60 +274,90 @@ def add_default_shopping_listing_group(client, customer_id, to the ad group using an "ad group criterion". The criterion will contain the bid for a given listing group. """ - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) # Creates a new ad group criterion. This will contain the "default" listing # group (All products). - ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation', - version='v4') + ad_group_criterion_operation = client.get_type( + "AdGroupCriterionOperation", version="v5" + ) ad_group_criterion = ad_group_criterion_operation.create - ad_group_criterion.ad_group.value = ad_group_resource_name + ad_group_criterion.ad_group = ad_group_resource_name ad_group_criterion.status = client.get_type( - 'AdGroupCriterionStatusEnum').ENABLED + "AdGroupCriterionStatusEnum" + ).ENABLED ad_group_criterion.listing_group.type = client.get_type( - 'ListingGroupTypeEnum').UNIT + "ListingGroupTypeEnum" + ).UNIT # Set the bid for products in this listing group unit. - ad_group_criterion.cpc_bid_micros.value = 500000 + ad_group_criterion.cpc_bid_micros = 500000 try: - ad_group_criterion_response = ( - ad_group_criterion_service.mutate_ad_group_criteria( - customer_id, [ad_group_criterion_operation])) + ad_group_criterion_response = ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation] + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) - print('Added an ad group criterion containing a listing group with \ - resource name: %s.' % - ad_group_criterion_response.results[0].resource_name) + print( + "Added an ad group criterion containing a listing group with \ + resource name: %s." + % ad_group_criterion_response.results[0].resource_name + ) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds a standard shopping campaign, a shopping product ad ' - 'group and a shopping product ad to the specified ' - 'merchant account.')) + description=( + "Adds a standard shopping campaign, a shopping product ad " + "group and a shopping product ad to the specified " + "merchant account." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-m', '--merchant_center_account_id', type=int, - required=True, help='The merchant center account ID.') - parser.add_argument('-d', '--create_default_listing_group', - action='store_true', default=False, - help='Create a default listing group.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-m", + "--merchant_center_account_id", + type=int, + required=True, + help="The merchant center account ID.", + ) + parser.add_argument( + "-d", + "--create_default_listing_group", + action="store_true", + default=False, + help="Create a default listing group.", + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.merchant_center_account_id, - args.create_default_listing_group) + main( + google_ads_client, + args.customer_id, + args.merchant_center_account_id, + args.create_default_listing_group, + ) diff --git a/examples/shopping_ads/get_product_bidding_category_constant.py b/examples/shopping_ads/get_product_bidding_category_constant.py index 22b088104..3de3c94db 100755 --- a/examples/shopping_ads/get_product_bidding_category_constant.py +++ b/examples/shopping_ads/get_product_bidding_category_constant.py @@ -24,67 +24,82 @@ _DEFAULT_PAGE_SIZE = 1000 -def display_categories(categories, prefix=''): - for category in categories: - print('{}{} [{}]'.format(prefix, category.name, category.id)) - if not category.children: - display_categories(category.children, prefix=prefix + category.name) +def display_categories(categories, prefix=""): + for category in categories: + print("{}{} [{}]".format(prefix, category.name, category.id)) + if not category.children: + display_categories(category.children, prefix=prefix + category.name) def main(client, customer_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') - query = ('SELECT product_bidding_category_constant.localized_name, ' - 'product_bidding_category_constant.product_bidding_category_constant_parent ' - 'FROM product_bidding_category_constant WHERE ' - 'product_bidding_category_constant.country_code IN ("US")') - - results = ga_service.search(customer_id, query=query, page_size=page_size) - - class Category: - def __init__(self, name=None, id=None, children=[]): - self.name = name - self.id = id - self.children = children - - all_categories = collections.defaultdict(lambda: Category()) - - root_categories = [] - - try: - for row in results: - product_bidding_category = row.product_bidding_category_constant - - category = Category(product_bidding_category.localized_name.value, - product_bidding_category.resource_name) - - all_categories[category.id] = category - parent = product_bidding_category.product_bidding_category_constant_parent - parent_id = getattr(parent, 'value', None) - - if parent_id: - all_categories[parent_id].children.append(category) - else: - root_categories.append(category) - - display_categories(root_categories) - except GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) - for error in ex.failure.errors: - print('\tError with message "%s".' % error.message) - if error.location: - for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) - sys.exit(1) - -if __name__ == '__main__': - google_ads_client = GoogleAdsClient.load_from_storage() - - parser = argparse.ArgumentParser( - description='Get Product Bidding Category Constant') - # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - args = parser.parse_args() - - main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) + ga_service = client.get_service("GoogleAdsService", version="v5") + query = ( + "SELECT product_bidding_category_constant.localized_name, " + "product_bidding_category_constant.product_bidding_category_constant_parent " + "FROM product_bidding_category_constant WHERE " + 'product_bidding_category_constant.country_code IN ("US")' + ) + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + class Category: + def __init__(self, name=None, id=None, children=[]): + self.name = name + self.id = id + self.children = children + + all_categories = collections.defaultdict(lambda: Category()) + + root_categories = [] + + try: + for row in results: + product_bidding_category = row.product_bidding_category_constant + + category = Category( + product_bidding_category.localized_name.value, + product_bidding_category.resource_name, + ) + + all_categories[category.id] = category + parent = ( + product_bidding_category.product_bidding_category_constant_parent + ) + parent_id = getattr(parent, "value", None) + + if parent_id: + all_categories[parent_id].children.append(category) + else: + root_categories.append(category) + + display_categories(root_categories) + except GoogleAdsException as ex: + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print("\t\tOn field: %s" % field_path_element.field_name) + sys.exit(1) + + +if __name__ == "__main__": + google_ads_client = GoogleAdsClient.load_from_storage() + + parser = argparse.ArgumentParser( + description="Get Product Bidding Category Constant" + ) + # The following argument(s) should be provided to run the example. + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/targeting/add_campaign_targeting_criteria.py b/examples/targeting/add_campaign_targeting_criteria.py index 03d6274fc..1d603878b 100755 --- a/examples/targeting/add_campaign_targeting_criteria.py +++ b/examples/targeting/add_campaign_targeting_criteria.py @@ -19,32 +19,36 @@ import sys from google.ads.google_ads.client import GoogleAdsClient -from google.ads.google_ads.errors import GoolgeAdsException +from google.ads.google_ads.errors import GoogleAdsException def main(client, customer_id, campaign_id, keyword_text, location_id): - campaign_criterion_service = client.get_service('CampaignCriterionService', - version='v4') + campaign_criterion_service = client.get_service( + "CampaignCriterionService", version="v5" + ) operations = [ create_location_op(client, customer_id, campaign_id, location_id), - create_negative_keyword_op(client, customer_id, campaign_id, - keyword_text), - create_proximity_op(client, customer_id, campaign_id) + create_negative_keyword_op( + client, customer_id, campaign_id, keyword_text + ), + create_proximity_op(client, customer_id, campaign_id), ] try: - campaign_criterion_response = ( - campaign_criterion_service.mutate_campaign_criteria( - customer_id, operations)) + campaign_criterion_response = campaign_criterion_service.mutate_campaign_criteria( + customer_id, operations + ) except GoogleAdsException as ex: - print(f'Request with ID "{ex.request_id}" failed with status ' - f'"{ex.error.code().name}" and includes the following errors:') + print( + f'Request with ID "{ex.request_id}" failed with status ' + f'"{ex.error.code().name}" and includes the following errors:' + ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: - print(f'\t\tOn field: {field_path_element.field_name}') + print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1) for result in campaign_criterion_response.results: @@ -52,91 +56,125 @@ def main(client, customer_id, campaign_id, keyword_text, location_id): def create_location_op(client, customer_id, campaign_id, location_id): - campaign_service = client.get_service('CampaignService', version='v4') - geo_target_constant_service = client.get_service('GeoTargetConstantService', - version='v4') + campaign_service = client.get_service("CampaignService", version="v5") + geo_target_constant_service = client.get_service( + "GeoTargetConstantService", version="v5" + ) # Create the campaign criterion. - campaign_criterion_operation = client.get_type('CampaignCriterionOperation', - version='v4') + campaign_criterion_operation = client.get_type( + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) + campaign_criterion.campaign = campaign_service.campaign_path( + customer_id, campaign_id + ) # Besides using location_id, you can also search by location names from # GeoTargetConstantService.suggest_geo_target_constants() and directly # apply GeoTargetConstant.resource_name here. An example can be found # in get_geo_target_constant_by_names.py. - campaign_criterion.location.geo_target_constant.value = ( - geo_target_constant_service.geo_target_constant_path(location_id)) + campaign_criterion.location.geo_target_constant = geo_target_constant_service.geo_target_constant_path( + location_id + ) return campaign_criterion_operation def create_negative_keyword_op(client, customer_id, campaign_id, keyword_text): - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Create the campaign criterion. - campaign_criterion_operation = client.get_type('CampaignCriterionOperation', - version='v4') + campaign_criterion_operation = client.get_type( + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) - campaign_criterion.negative.value = True + campaign_criterion.campaign = campaign_service.campaign_path( + customer_id, campaign_id + ) + campaign_criterion.negative = True criterion_keyword = campaign_criterion.keyword - criterion_keyword.text.value = keyword_text - criterion_keyword.match_type = client.get_type('KeywordMatchTypeEnum', - version='v4').BROAD + criterion_keyword.text = keyword_text + criterion_keyword.match_type = client.get_type( + "KeywordMatchTypeEnum", version="v5" + ).BROAD return campaign_criterion_operation def create_proximity_op(client, customer_id, campaign_id): - campaign_service = client.get_service('CampaignService', version='v4') + campaign_service = client.get_service("CampaignService", version="v5") # Create the campaign criterion. - campaign_criterion_operation = client.get_type('CampaignCriterionOperation', - version='v4') + campaign_criterion_operation = client.get_type( + "CampaignCriterionOperation", version="v5" + ) campaign_criterion = campaign_criterion_operation.create - campaign_criterion.campaign.value = campaign_service.campaign_path( - customer_id, campaign_id) - campaign_criterion.proximity.address.street_address.value = ( - '38 avenue de l\'Opera') - campaign_criterion.proximity.address.city_name.value = 'Paris' - campaign_criterion.proximity.address.postal_code.value = '75002' - campaign_criterion.proximity.address.country_code.value = 'FR' - campaign_criterion.proximity.radius.value = 10 + campaign_criterion.campaign = campaign_service.campaign_path( + customer_id, campaign_id + ) + campaign_criterion.proximity.address.street_address = "38 avenue de l'Opera" + campaign_criterion.proximity.address.city_name = "Paris" + campaign_criterion.proximity.address.postal_code = "75002" + campaign_criterion.proximity.address.country_code = "FR" + campaign_criterion.proximity.radius = 10 # Default is kilometers. campaign_criterion.proximity.radius_units = client.get_type( - 'ProximityRadiusUnitsEnum').MILES + "ProximityRadiusUnitsEnum" + ).MILES return campaign_criterion_operation -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. google_ads_client = GoogleAdsClient.load_from_storage() parser = argparse.ArgumentParser( - description=('Adds campaign targeting criteria for the specified ' - 'campaign under the given customer ID.')) + description=( + "Adds campaign targeting criteria for the specified " + "campaign under the given customer ID." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') - parser.add_argument('-k', '--keyword_text', type=str, required=True, - help='The keyword text to be added to the campaign.') parser.add_argument( - '-l', '--location_id', type=str, required=False, - default='21167', # New York - help=('A location criterion ID, this field is optional. If not ' - 'specified, will default to New York. For more information on ' - 'determining this value, see: ' - 'https://developers.google.com/adwords/api/docs/appendix/' - 'geotargeting.')) + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) + parser.add_argument( + "-k", + "--keyword_text", + type=str, + required=True, + help="The keyword text to be added to the campaign.", + ) + parser.add_argument( + "-l", + "--location_id", + type=str, + required=False, + default="21167", # New York + help=( + "A location criterion ID, this field is optional. If not " + "specified, will default to New York. For more information on " + "determining this value, see: " + "https://developers.google.com/adwords/api/docs/appendix/" + "geotargeting." + ), + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - args.keyword_text, args.location_id) + main( + google_ads_client, + args.customer_id, + args.campaign_id, + args.keyword_text, + args.location_id, + ) diff --git a/examples/targeting/add_demographic_targeting_criteria.py b/examples/targeting/add_demographic_targeting_criteria.py index d59cc0002..2fbe2e9ec 100755 --- a/examples/targeting/add_demographic_targeting_criteria.py +++ b/examples/targeting/add_demographic_targeting_criteria.py @@ -24,61 +24,84 @@ def main(client, customer_id, ad_group_id): - ad_group_service = client.get_service('AdGroupService', version='v4') - ad_group_criterion_service = client.get_service('AdGroupCriterionService', - version='v4') + ad_group_service = client.get_service("AdGroupService", version="v5") + ad_group_criterion_service = client.get_service( + "AdGroupCriterionService", version="v5" + ) - ad_group_resource_name = ad_group_service.ad_group_path(customer_id, ad_group_id) + ad_group_resource_name = ad_group_service.ad_group_path( + customer_id, ad_group_id + ) # Create a positive ad group criterion for the gender MALE. gender_ad_group_criterion_operation = client.get_type( - 'AdGroupCriterionOperation', version='v4') + "AdGroupCriterionOperation", version="v5" + ) gender_ad_group_criterion = gender_ad_group_criterion_operation.create - gender_ad_group_criterion.ad_group.value = ad_group_resource_name - gender_ad_group_criterion.gender.type = client.get_type('GenderTypeEnum').MALE + gender_ad_group_criterion.ad_group = ad_group_resource_name + gender_ad_group_criterion.gender.type = client.get_type( + "GenderTypeEnum" + ).MALE # Create a negative ad group criterion for age range of 18 to 24. age_range_ad_group_criterion_operation = client.get_type( - 'AdGroupCriterionOperation', version='v4') + "AdGroupCriterionOperation", version="v5" + ) age_range_ad_group_criterion = age_range_ad_group_criterion_operation.create - age_range_ad_group_criterion.ad_group.value = ad_group_resource_name - age_range_ad_group_criterion.negative.value = True + age_range_ad_group_criterion.ad_group = ad_group_resource_name + age_range_ad_group_criterion.negative = True age_range_ad_group_criterion.age_range.type = client.get_type( - 'AgeRangeTypeEnum').AGE_RANGE_18_24 + "AgeRangeTypeEnum" + ).AGE_RANGE_18_24 # Add two ad group criteria try: - ad_group_criterion_response = ( - ad_group_criterion_service.mutate_ad_group_criteria( - customer_id, [gender_ad_group_criterion_operation, - age_range_ad_group_criterion_operation])) + ad_group_criterion_response = ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, + [ + gender_ad_group_criterion_operation, + age_range_ad_group_criterion_operation, + ], + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) for result in ad_group_criterion_response.results: - print('Created keyword {}.'.format(result.resource_name)) + print("Created keyword {}.".format(result.resource_name)) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('Adds demographic targeting criteria to the provided' - ' ad group, for the specified customer.')) + description=( + "Adds demographic targeting criteria to the provided" + " ad group, for the specified customer." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-a', '--ad_group_id', type=str, - required=True, help='The ad group ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-a", "--ad_group_id", type=str, required=True, help="The ad group ID." + ) args = parser.parse_args() main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/targeting/get_campaign_targeting_criteria.py b/examples/targeting/get_campaign_targeting_criteria.py index 9bcfa8cbe..3c87b861e 100755 --- a/examples/targeting/get_campaign_targeting_criteria.py +++ b/examples/targeting/get_campaign_targeting_criteria.py @@ -26,57 +26,83 @@ def main(client, customer_id, campaign_id, page_size): - ga_service = client.get_service('GoogleAdsService', version='v4') + ga_service = client.get_service("GoogleAdsService", version="v5") - query = ('SELECT campaign.id, campaign_criterion.campaign, ' - 'campaign_criterion.criterion_id, campaign_criterion.negative, ' - 'campaign_criterion.type, campaign_criterion.keyword.text, ' - 'campaign_criterion.keyword.match_type ' - 'FROM campaign_criterion ' - 'WHERE campaign.id = %s') % campaign_id + query = ( + "SELECT campaign.id, campaign_criterion.campaign, " + "campaign_criterion.criterion_id, campaign_criterion.negative, " + "campaign_criterion.type, campaign_criterion.keyword.text, " + "campaign_criterion.keyword.match_type " + "FROM campaign_criterion " + "WHERE campaign.id = %s" + ) % campaign_id results = ga_service.search(customer_id, query=query, page_size=page_size) try: for row in results: criterion = row.campaign_criterion - print('Campaign criterion with ID "%s" was retrieved:' - % criterion.criterion_id.value) + print( + 'Campaign criterion with ID "%s" was retrieved:' + % criterion.criterion_id + ) - if criterion.type == client.get_type('CriterionTypeEnum', - version='v4').KEYWORD: - print('\t%sKeyword with text "%s" and match type %s.' - % ('' if criterion.negative.value else 'Negative', - criterion.keyword.text.value, - criterion.keyword.match_type)) + if ( + criterion.type + == client.get_type("CriterionTypeEnum", version="v5").KEYWORD + ): + print( + '\t%sKeyword with text "%s" and match type %s.' + % ( + "" if criterion.negative else "Negative", + criterion.keyword.text, + criterion.keyword.match_type, + ) + ) else: - print('Not a keyword!') + print("Not a keyword!") except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) parser = argparse.ArgumentParser( - description=('List campaign criteria, or negative keywords, for a ' - 'given campaign.')) + description=( + "List campaign criteria, or negative keywords, for a " + "given campaign." + ) + ) # The following argument(s) should be provided to run the example. - parser.add_argument('-c', '--customer_id', type=str, - required=True, help='The Google Ads customer ID.') - parser.add_argument('-i', '--campaign_id', type=str, - required=True, help='The campaign ID.') + parser.add_argument( + "-c", + "--customer_id", + type=str, + required=True, + help="The Google Ads customer ID.", + ) + parser.add_argument( + "-i", "--campaign_id", type=str, required=True, help="The campaign ID." + ) args = parser.parse_args() - main(google_ads_client, args.customer_id, args.campaign_id, - _DEFAULT_PAGE_SIZE) + main( + google_ads_client, + args.customer_id, + args.campaign_id, + _DEFAULT_PAGE_SIZE, + ) diff --git a/examples/targeting/get_geo_target_constants_by_names.py b/examples/targeting/get_geo_target_constants_by_names.py index 11094173b..7c502c61d 100755 --- a/examples/targeting/get_geo_target_constants_by_names.py +++ b/examples/targeting/get_geo_target_constants_by_names.py @@ -20,63 +20,69 @@ import google.ads.google_ads.client +# Locale is using ISO 639-1 format. If an invalid locale is given, +# 'en' is used by default. +LOCALE = "en" -def main(client): - gtc_service = client.get_service('GeoTargetConstantService', version='v4') +# A list of country codes can be referenced here: +# https://developers.google.com/adwords/api/docs/appendix/geotargeting +COUNTRY_CODE = "FR" - location_names = ( - client.get_type('SuggestGeoTargetConstantsRequest', - version='v4').LocationNames()) - for location in ['Paris', 'Quebec', 'Spain', 'Deutschland']: - location_name = location_names.names.add() - location_name.value = location +def main(client): + gtc_service = client.get_service("GeoTargetConstantService", version="v5") - # Locale is using ISO 639-1 format. If an invalid locale is given, - # 'en' is used by default. - locale = client.get_type('StringValue', version='v4') - locale.value = 'en' + location_names = client.get_type( + "SuggestGeoTargetConstantsRequest", version="v5" + ).LocationNames() - # A list of country codes can be referenced here: - # https://developers.google.com/adwords/api/docs/appendix/geotargeting - country_code = client.get_type('StringValue', version='v4') - country_code.value = 'FR' + location_names.names.extend(["Paris", "Quebec", "Spain", "Deutschland"]) results = gtc_service.suggest_geo_target_constants( - locale, country_code, location_names=location_names) + LOCALE, COUNTRY_CODE, location_names=location_names + ) geo_target_constant_status_enum = client.get_type( - 'GeoTargetConstantStatusEnum').GeoTargetConstantStatus + "GeoTargetConstantStatusEnum" + ).GeoTargetConstantStatus try: for suggestion in results.geo_target_constant_suggestions: geo_target_constant = suggestion.geo_target_constant - print('%s (%s, %s, %s, %s) is found in locale (%s) with reach (%d) ' - 'from search term (%s).' - % (geo_target_constant.resource_name, - geo_target_constant.name.value, - geo_target_constant.country_code.value, - geo_target_constant.target_type.value, - geo_target_constant_status_enum.Name( - geo_target_constant.status), - suggestion.locale.value, - suggestion.reach.value, - suggestion.search_term.value)) + print( + "%s (%s, %s, %s, %s) is found in locale (%s) with reach (%d) " + "from search term (%s)." + % ( + geo_target_constant.resource_name, + geo_target_constant.name, + geo_target_constant.country_code, + geo_target_constant.target_type, + geo_target_constant_status_enum.Name( + geo_target_constant.status + ), + suggestion.locale, + suggestion.reach, + suggestion.search_term, + ) + ) except google.ads.google_ads.errors.GoogleAdsException as ex: - print('Request with ID "%s" failed with status "%s" and includes the ' - 'following errors:' % (ex.request_id, ex.error.code().name)) + print( + 'Request with ID "%s" failed with status "%s" and includes the ' + "following errors:" % (ex.request_id, ex.error.code().name) + ) for error in ex.failure.errors: print('\tError with message "%s".' % error.message) if error.location: for field_path_element in error.location.field_path_elements: - print('\t\tOn field: %s' % field_path_element.field_name) + print("\t\tOn field: %s" % field_path_element.field_name) sys.exit(1) -if __name__ == '__main__': +if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. - google_ads_client = (google.ads.google_ads.client.GoogleAdsClient - .load_from_storage()) + google_ads_client = ( + google.ads.google_ads.client.GoogleAdsClient.load_from_storage() + ) main(google_ads_client) diff --git a/google/__init__.py b/google/__init__.py index f65701dd1..7aa71bb4e 100644 --- a/google/__init__.py +++ b/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/google/ads/__init__.py b/google/ads/__init__.py index 34d4f4080..36d8b71f6 100644 --- a/google/ads/__init__.py +++ b/google/ads/__init__.py @@ -15,7 +15,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/google/ads/google_ads/__init__.py b/google/ads/google_ads/__init__.py index a953d5cb4..6659336c2 100644 --- a/google/ads/google_ads/__init__.py +++ b/google/ads/google_ads/__init__.py @@ -13,11 +13,9 @@ # limitations under the License. - - import google.ads.google_ads.client import google.ads.google_ads.errors import google.ads.google_ads.util -VERSION = '6.0.0' +VERSION = "7.0.0" diff --git a/google/ads/google_ads/client.py b/google/ads/google_ads/client.py index 112f3cba3..430fcaecb 100644 --- a/google/ads/google_ads/client.py +++ b/google/ads/google_ads/client.py @@ -19,29 +19,33 @@ import grpc from google.ads.google_ads import config, oauth2, util -from google.ads.google_ads.interceptors import MetadataInterceptor, \ - ExceptionInterceptor, LoggingInterceptor +from google.ads.google_ads.interceptors import ( + MetadataInterceptor, + ExceptionInterceptor, + LoggingInterceptor, +) _logger = logging.getLogger(__name__) -_SERVICE_CLIENT_TEMPLATE = '{}Client' -_SERVICE_GRPC_TRANSPORT_TEMPLATE = '{}GrpcTransport' +_SERVICE_CLIENT_TEMPLATE = "{}Client" +_SERVICE_GRPC_TRANSPORT_TEMPLATE = "{}GrpcTransport" -_VALID_API_VERSIONS = ['v4', 'v3', 'v2'] +_VALID_API_VERSIONS = ["v5", "v4", "v3", "v2"] _DEFAULT_VERSION = _VALID_API_VERSIONS[0] _GRPC_CHANNEL_OPTIONS = [ - ('grpc.max_metadata_size', 16 * 1024 * 1024), - ('grpc.max_receive_message_length', 64 * 1024 * 1024)] + ("grpc.max_metadata_size", 16 * 1024 * 1024), + ("grpc.max_receive_message_length", 64 * 1024 * 1024), +] unary_stream_single_threading_option = util.get_nested_attr( - grpc, 'experimental.ChannelOptions.SingleThreadedUnaryStream', None) + grpc, "experimental.ChannelOptions.SingleThreadedUnaryStream", None +) if unary_stream_single_threading_option: - _GRPC_CHANNEL_OPTIONS.append( - (unary_stream_single_threading_option, 1)) + _GRPC_CHANNEL_OPTIONS.append((unary_stream_single_threading_option, 1)) class GoogleAdsClient(object): @@ -61,11 +65,13 @@ def _get_client_kwargs(cls, config_data): Raises: ValueError: If the configuration lacks a required field. """ - return {'credentials': oauth2.get_credentials(config_data), - 'developer_token': config_data.get('developer_token'), - 'endpoint': config_data.get('endpoint'), - 'login_customer_id': config_data.get('login_customer_id'), - 'logging_config': config_data.get('logging')} + return { + "credentials": oauth2.get_credentials(config_data), + "developer_token": config_data.get("developer_token"), + "endpoint": config_data.get("endpoint"), + "login_customer_id": config_data.get("login_customer_id"), + "logging_config": config_data.get("logging"), + } @classmethod def _get_api_services_by_version(cls, version): @@ -78,11 +84,14 @@ def _get_api_services_by_version(cls, version): A module containing all services and types for the a API version. """ try: - version_module = import_module(f'google.ads.google_ads.{version}') + version_module = import_module(f"google.ads.google_ads.{version}") except ImportError: - raise ValueError('Specified Google Ads API version "{}" does not ' - 'exist. Valid API versions are: "{}"'.format( - version, '", "'.join(_VALID_API_VERSIONS))) + raise ValueError( + 'Specified Google Ads API version "{}" does not ' + 'exist. Valid API versions are: "{}"'.format( + version, '", "'.join(_VALID_API_VERSIONS) + ) + ) return version_module @classmethod @@ -176,20 +185,29 @@ def get_type(cls, name, version=_DEFAULT_VERSION): AttributeError: If the type for the specified name doesn't exist in the given version. """ - if name.lower().endswith('pb2'): - raise ValueError(f'Specified type "{name}" must be a class,' - f' not a module') + if name.lower().endswith("pb2"): + raise ValueError( + f'Specified type "{name}" must be a class,' f" not a module" + ) try: type_classes = cls._get_api_services_by_version(version).types message_class = getattr(type_classes, name) except AttributeError: - raise ValueError(f'Specified type "{name}" does not exist in ' - f'Google Ads API {version}') + raise ValueError( + f'Specified type "{name}" does not exist in ' + f"Google Ads API {version}" + ) return message_class() - def __init__(self, credentials, developer_token, endpoint=None, - login_customer_id=None, logging_config=None): + def __init__( + self, + credentials, + developer_token, + endpoint=None, + login_customer_id=None, + logging_config=None, + ): """Initializer for the GoogleAdsClient. Args: @@ -230,35 +248,42 @@ def get_service(self, name, version=_DEFAULT_VERSION, interceptors=None): interceptors = interceptors or [] try: - service_client = getattr(api_module, - _SERVICE_CLIENT_TEMPLATE.format(name)) + service_client = getattr( + api_module, _SERVICE_CLIENT_TEMPLATE.format(name) + ) except AttributeError: - raise ValueError('Specified service {}" does not exist in Google ' - 'Ads API {}.'.format(name, version)) + raise ValueError( + 'Specified service {}" does not exist in Google ' + "Ads API {}.".format(name, version) + ) try: service_transport_class = getattr( - api_module, _SERVICE_GRPC_TRANSPORT_TEMPLATE.format(name)) + api_module, _SERVICE_GRPC_TRANSPORT_TEMPLATE.format(name) + ) except AttributeError: - raise ValueError('Grpc transport does not exist for the specified ' - 'service "{}".'.format(name)) + raise ValueError( + "Grpc transport does not exist for the specified " + 'service "{}".'.format(name) + ) - endpoint = (self.endpoint if self.endpoint - else service_client.SERVICE_ADDRESS) + endpoint = ( + self.endpoint if self.endpoint else service_client.SERVICE_ADDRESS + ) channel = service_transport_class.create_channel( address=endpoint, credentials=self.credentials, - options=_GRPC_CHANNEL_OPTIONS) + options=_GRPC_CHANNEL_OPTIONS, + ) interceptors = interceptors + [ MetadataInterceptor(self.developer_token, self.login_customer_id), LoggingInterceptor(_logger, version, endpoint), - ExceptionInterceptor(version)] + ExceptionInterceptor(version), + ] - channel = grpc.intercept_channel( - channel, - *interceptors) + channel = grpc.intercept_channel(channel, *interceptors) service_transport = service_transport_class(channel=channel) diff --git a/google/ads/google_ads/config.py b/google/ads/google_ads/config.py index ea99996f9..8e8eb48e7 100644 --- a/google/ads/google_ads/config.py +++ b/google/ads/google_ads/config.py @@ -18,17 +18,18 @@ import os import yaml -_ENV_PREFIX = 'GOOGLE_ADS_' -_REQUIRED_KEYS = ('developer_token',) -_OPTIONAL_KEYS = ('login_customer_id', 'endpoint', 'logging') -_OAUTH2_INSTALLED_APP_KEYS = ('client_id', 'client_secret', 'refresh_token') -_OAUTH2_SERVICE_ACCOUNT_KEYS = ('path_to_private_key_file', 'delegated_account') +_ENV_PREFIX = "GOOGLE_ADS_" +_REQUIRED_KEYS = ("developer_token",) +_OPTIONAL_KEYS = ("login_customer_id", "endpoint", "logging") +_OAUTH2_INSTALLED_APP_KEYS = ("client_id", "client_secret", "refresh_token") +_OAUTH2_SERVICE_ACCOUNT_KEYS = ("path_to_private_key_file", "delegated_account") _KEYS_ENV_VARIABLES_MAP = { - key: _ENV_PREFIX + key.upper() for key in - list(_REQUIRED_KEYS) + - list(_OPTIONAL_KEYS) + - list(_OAUTH2_INSTALLED_APP_KEYS) + - list(_OAUTH2_SERVICE_ACCOUNT_KEYS)} + key: _ENV_PREFIX + key.upper() + for key in list(_REQUIRED_KEYS) + + list(_OPTIONAL_KEYS) + + list(_OAUTH2_INSTALLED_APP_KEYS) + + list(_OAUTH2_SERVICE_ACCOUNT_KEYS) +} def _config_validation_decorator(func): @@ -39,11 +40,13 @@ def _config_validation_decorator(func): Raises: ValueError: If the configuration fails validation """ + @functools.wraps(func) def validation_wrapper(*args, **kwargs): config_dict = func(*args, **kwargs) validate_dict(config_dict) return config_dict + return validation_wrapper @@ -55,11 +58,13 @@ def _config_parser_decorator(func): need to be parsed to a different type. Add this decorator to any method that returns the config as a dict. """ + @functools.wraps(func) def parser_wrapper(*args, **kwargs): config_dict = func(*args, **kwargs) parsed_config = convert_login_customer_id_to_str(config_dict) return parsed_config + return parser_wrapper @@ -77,12 +82,13 @@ def validate_dict(config_data): ValueError: If the dict does not contain all required config keys. """ if not all(key in config_data for key in _REQUIRED_KEYS): - raise ValueError('A required field in the configuration data was not ' - 'found. The required fields are: {}'.format( - str(_REQUIRED_KEYS))) + raise ValueError( + "A required field in the configuration data was not " + "found. The required fields are: {}".format(str(_REQUIRED_KEYS)) + ) - if 'login_customer_id' in config_data: - validate_login_customer_id(config_data['login_customer_id']) + if "login_customer_id" in config_data: + validate_login_customer_id(config_data["login_customer_id"]) def validate_login_customer_id(login_customer_id): @@ -97,9 +103,11 @@ def validate_login_customer_id(login_customer_id): """ if login_customer_id is not None: if not login_customer_id.isdigit() or len(login_customer_id) != 10: - raise ValueError('The specified login customer ID is invalid. ' - 'It must be a ten digit number represented ' - 'as a string, i.e. "1234567890"') + raise ValueError( + "The specified login customer ID is invalid. " + "It must be a ten digit number represented " + 'as a string, i.e. "1234567890"' + ) @_config_validation_decorator @@ -119,12 +127,12 @@ def load_from_yaml_file(path=None): IOError: If the configuration file can't be loaded. """ if path is None: - path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") if not os.path.isabs(path): path = os.path.expanduser(path) - with open(path, 'rb') as handle: + with open(path, "rb") as handle: yaml_doc = handle.read() return parse_yaml_document_to_dict(yaml_doc) @@ -149,7 +157,9 @@ def load_from_dict(config_dict): if isinstance(config_dict, dict): return config_dict else: - raise ValueError("The configuration object passed to function load_from_dict must be of type dict.") + raise ValueError( + "The configuration object passed to function load_from_dict must be of type dict." + ) @_config_validation_decorator @@ -186,12 +196,13 @@ def load_from_env(): for key, env_variable in _KEYS_ENV_VARIABLES_MAP.items() if env_variable in os.environ } - if 'logging' in config_data.keys(): + if "logging" in config_data.keys(): try: - config_data['logging'] = json.loads(config_data['logging']) + config_data["logging"] = json.loads(config_data["logging"]) except json.JSONDecodeError: raise ValueError( - 'GOOGLE_ADS_LOGGING env variable should be in JSON format.') + "GOOGLE_ADS_LOGGING env variable should be in JSON format." + ) return config_data @@ -227,9 +238,9 @@ def convert_login_customer_id_to_str(config_data): Returns: The same config dict object with a mutated login_customer_id attr. """ - login_customer_id = config_data.get('login_customer_id') + login_customer_id = config_data.get("login_customer_id") if login_customer_id: - config_data['login_customer_id'] = str(login_customer_id) + config_data["login_customer_id"] = str(login_customer_id) return config_data diff --git a/google/ads/google_ads/interceptors/__init__.py b/google/ads/google_ads/interceptors/__init__.py index c8e0ffe46..ba1837233 100644 --- a/google/ads/google_ads/interceptors/__init__.py +++ b/google/ads/google_ads/interceptors/__init__.py @@ -14,4 +14,4 @@ from .metadata_interceptor import MetadataInterceptor from .exception_interceptor import ExceptionInterceptor -from .logging_interceptor import LoggingInterceptor \ No newline at end of file +from .logging_interceptor import LoggingInterceptor diff --git a/google/ads/google_ads/interceptors/exception_interceptor.py b/google/ads/google_ads/interceptors/exception_interceptor.py index d0a694ace..db8ef28ea 100644 --- a/google/ads/google_ads/interceptors/exception_interceptor.py +++ b/google/ads/google_ads/interceptors/exception_interceptor.py @@ -100,8 +100,9 @@ def __next__(self): raise e -class ExceptionInterceptor(Interceptor, UnaryUnaryClientInterceptor, - UnaryStreamClientInterceptor): +class ExceptionInterceptor( + Interceptor, UnaryUnaryClientInterceptor, UnaryStreamClientInterceptor +): """An interceptor that wraps rpc exceptions.""" def __init__(self, api_version): @@ -169,8 +170,9 @@ def intercept_unary_unary(self, continuation, client_call_details, request): else: return response - def intercept_unary_stream(self, continuation, client_call_details, - request): + def intercept_unary_stream( + self, continuation, client_call_details, request + ): """Intercepts and wraps exceptions in the rpc response. Overrides abstract method defined in grpc.UnaryStreamClientInterceptor. diff --git a/google/ads/google_ads/interceptors/interceptor.py b/google/ads/google_ads/interceptors/interceptor.py index 0bd433ccc..43453ed6f 100644 --- a/google/ads/google_ads/interceptors/interceptor.py +++ b/google/ads/google_ads/interceptors/interceptor.py @@ -27,10 +27,10 @@ from google.ads.google_ads.errors import GoogleAdsException -_REQUEST_ID_KEY = 'request-id' +_REQUEST_ID_KEY = "request-id" # Codes that are retried upon by google.api_core. _RETRY_STATUS_CODES = (StatusCode.INTERNAL, StatusCode.RESOURCE_EXHAUSTED) -_SENSITIVE_INFO_MASK = 'REDACTED' +_SENSITIVE_INFO_MASK = "REDACTED" class Interceptor: @@ -66,11 +66,11 @@ def parse_metadata_to_json(cls, metadata): metadata_dict = {} if metadata is None: - return '{}' + return "{}" for datum in metadata: key = datum[0] - if key == 'developer-token': + if key == "developer-token": metadata_dict[key] = _SENSITIVE_INFO_MASK else: value = datum[1] @@ -94,13 +94,20 @@ def format_json_object(cls, obj): def default_serializer(value): if isinstance(value, bytes): - return value.decode(errors='ignore') + return value.decode(errors="ignore") else: return None - return str(json.dumps(obj, indent=2, sort_keys=True, ensure_ascii=False, - default=default_serializer, - separators=(',', ': '))) + return str( + json.dumps( + obj, + indent=2, + sort_keys=True, + ensure_ascii=False, + default=default_serializer, + separators=(",", ": "), + ) + ) @classmethod def get_trailing_metadata_from_interceptor_exception(cls, exception): @@ -127,8 +134,9 @@ def get_trailing_metadata_from_interceptor_exception(cls, exception): return tuple() @classmethod - def get_client_call_details_instance(cls, method, timeout, metadata, - credentials=None): + def get_client_call_details_instance( + cls, method, timeout, metadata, credentials=None + ): """Initializes an instance of the ClientCallDetails with the given data. Args: @@ -140,13 +148,17 @@ def get_client_call_details_instance(cls, method, timeout, metadata, Returns: An instance of _ClientCallDetails that wraps grpc.ClientCallDetails. """ + class _ClientCallDetails( namedtuple( - '_ClientCallDetails', - ('method', 'timeout', 'metadata', 'credentials')), - ClientCallDetails): + "_ClientCallDetails", + ("method", "timeout", "metadata", "credentials"), + ), + ClientCallDetails, + ): """Wrapper class for initializing a new ClientCallDetails instance. """ + pass return _ClientCallDetails(method, timeout, metadata, credentials) @@ -154,7 +166,8 @@ class _ClientCallDetails( def __init__(self, api_version): self._error_protos = None self._failure_key = ( - f'google.ads.googleads.{api_version}.errors.googleadsfailure-bin') + f"google.ads.googleads.{api_version}.errors.googleadsfailure-bin" + ) self._api_version = api_version def _get_error_from_response(self, response): @@ -190,15 +203,16 @@ def _get_error_from_response(self, response): if google_ads_failure: request_id = self.get_request_id_from_metadata( - trailing_metadata) + trailing_metadata + ) # If exception is a GoogleAdsFailure then it gets wrapped in a # library-specific Error type for easy handling. These errors # originate from the Google Ads API and are often caused by # invalid requests. return GoogleAdsException( - response_exception, response, google_ads_failure, - request_id) + response_exception, response, google_ads_failure, request_id + ) else: # Raise the original exception if not a GoogleAdsFailure. This # type of error is generally caused by problems at the request @@ -209,7 +223,6 @@ def _get_error_from_response(self, response): # INTERNAL or RESOURCE_EXHAUSTED, meaning that return response_exception - def _get_google_ads_failure(self, trailing_metadata): """Gets the Google Ads failure details if they exist. @@ -227,9 +240,10 @@ def _get_google_ads_failure(self, trailing_metadata): if kv[0] == self._failure_key: try: if not self._error_protos: - self._error_protos = import_module( - f'google.ads.google_ads.{self._api_version}.proto.' - 'errors.errors_pb2') + self._error_protos = import_module( + f"google.ads.google_ads.{self._api_version}.proto." + "errors.errors_pb2" + ) ga_failure = self._error_protos.GoogleAdsFailure() ga_failure.ParseFromString(kv[1]) return ga_failure diff --git a/google/ads/google_ads/interceptors/logging_interceptor.py b/google/ads/google_ads/interceptors/logging_interceptor.py index 7374f226b..413c7e3de 100644 --- a/google/ads/google_ads/interceptors/logging_interceptor.py +++ b/google/ads/google_ads/interceptors/logging_interceptor.py @@ -27,19 +27,26 @@ from .interceptor import Interceptor -class LoggingInterceptor(Interceptor, UnaryUnaryClientInterceptor, - UnaryStreamClientInterceptor): +class LoggingInterceptor( + Interceptor, UnaryUnaryClientInterceptor, UnaryStreamClientInterceptor +): """An interceptor that logs rpc requests and responses.""" - _FULL_REQUEST_LOG_LINE = ('Request\n-------\nMethod: {}\nHost: {}\n' - 'Headers: {}\nRequest: {}\n\nResponse\n-------\n' - 'Headers: {}\nResponse: {}\n') - _FULL_FAULT_LOG_LINE = ('Request\n-------\nMethod: {}\nHost: {}\n' - 'Headers: {}\nRequest: {}\n\nResponse\n-------\n' - 'Headers: {}\nFault: {}\n') - _SUMMARY_LOG_LINE = ('Request made: ClientCustomerId: {}, Host: {}, ' - 'Method: {}, RequestId: {}, IsFault: {}, ' - 'FaultMessage: {}') + _FULL_REQUEST_LOG_LINE = ( + "Request\n-------\nMethod: {}\nHost: {}\n" + "Headers: {}\nRequest: {}\n\nResponse\n-------\n" + "Headers: {}\nResponse: {}\n" + ) + _FULL_FAULT_LOG_LINE = ( + "Request\n-------\nMethod: {}\nHost: {}\n" + "Headers: {}\nRequest: {}\n\nResponse\n-------\n" + "Headers: {}\nFault: {}\n" + ) + _SUMMARY_LOG_LINE = ( + "Request made: ClientCustomerId: {}, Host: {}, " + "Method: {}, RequestId: {}, IsFault: {}, " + "FaultMessage: {}" + ) def __init__(self, logger, api_version, endpoint=None): """Initializer for the LoggingInterceptor. @@ -70,12 +77,14 @@ def _get_trailing_metadata(self, response): if not trailing_metadata: return self.get_trailing_metadata_from_interceptor_exception( - response.exception()) + response.exception() + ) return trailing_metadata except AttributeError: return self.get_trailing_metadata_from_interceptor_exception( - response.exception()) + response.exception() + ) def _get_initial_metadata(self, client_call_details): """Retrieves the initial metadata from client_call_details. @@ -89,7 +98,7 @@ def _get_initial_metadata(self, client_call_details): Args: client_call_details: An instance of grpc.ClientCallDetails. """ - return getattr(client_call_details, 'metadata', tuple()) + return getattr(client_call_details, "metadata", tuple()) def _get_call_method(self, client_call_details): """Retrieves the call method from client_call_details. @@ -103,7 +112,7 @@ def _get_call_method(self, client_call_details): Args: client_call_details: An instance of grpc.ClientCallDetails. """ - return getattr(client_call_details, 'method', None) + return getattr(client_call_details, "method", None) def _get_customer_id(self, request): """Retrieves the customer_id from the grpc request. @@ -117,12 +126,12 @@ def _get_customer_id(self, request): Args: request: An instance of a request proto message. """ - if hasattr(request, 'customer_id'): - return getattr(request, 'customer_id') - elif hasattr(request, 'resource_name'): - resource_name = getattr(request, 'resource_name') - segments = resource_name.split('/') - if segments[0] == 'customers': + if hasattr(request, "customer_id"): + return getattr(request, "customer_id") + elif hasattr(request, "resource_name"): + resource_name = getattr(request, "resource_name") + segments = resource_name.split("/") + if segments[0] == "customers": return segments[1] else: return None @@ -146,12 +155,13 @@ def _parse_exception_to_str(self, exception): # if exception.failure isn't present then it's likely this is a # transport error with a .debug_error_string method and the # returned JSON string will need to be formatted. - return self.format_json_object(json.loads( - exception.debug_error_string())) + return self.format_json_object( + json.loads(exception.debug_error_string()) + ) except (AttributeError, ValueError): # if both attempts to retrieve serializable error data fail # then simply return an empty JSON string - return '{}' + return "{}" def _get_fault_message(self, exception): """Retrieves a fault/error message from an exception object. @@ -173,9 +183,16 @@ def _get_fault_message(self, exception): except AttributeError: return None - def _log_successful_request(self, method, customer_id, metadata_json, - request_id, request, trailing_metadata_json, - response): + def _log_successful_request( + self, + method, + customer_id, + metadata_json, + request_id, + request, + trailing_metadata_json, + response, + ): """Handles logging of a successful request. Args: @@ -189,16 +206,31 @@ def _log_successful_request(self, method, customer_id, metadata_json, """ self.logger.debug( self._FULL_REQUEST_LOG_LINE.format( - method, self.endpoint, metadata_json, request, - trailing_metadata_json, response.result())) + method, + self.endpoint, + metadata_json, + request, + trailing_metadata_json, + response.result(), + ) + ) self.logger.info( self._SUMMARY_LOG_LINE.format( - customer_id, self.endpoint, method, request_id, False, None)) - - def _log_failed_request(self, method, customer_id, metadata_json, - request_id, request, trailing_metadata_json, - response): + customer_id, self.endpoint, method, request_id, False, None + ) + ) + + def _log_failed_request( + self, + method, + customer_id, + metadata_json, + request_id, + request, + trailing_metadata_json, + response, + ): """Handles logging of a failed request. Args: @@ -216,13 +248,25 @@ def _log_failed_request(self, method, customer_id, metadata_json, self.logger.info( self._FULL_FAULT_LOG_LINE.format( - method, self.endpoint, metadata_json, request, - trailing_metadata_json, exception_str)) + method, + self.endpoint, + metadata_json, + request, + trailing_metadata_json, + exception_str, + ) + ) self.logger.warning( self._SUMMARY_LOG_LINE.format( - customer_id, self.endpoint, method, request_id, True, - fault_message)) + customer_id, + self.endpoint, + method, + request_id, + True, + fault_message, + ) + ) def _log_request(self, client_call_details, request, response): """Handles logging all requests. @@ -242,12 +286,24 @@ def _log_request(self, client_call_details, request, response): if response.exception(): self._log_failed_request( - method, customer_id, initial_metadata_json, request_id, request, - trailing_metadata_json, response) + method, + customer_id, + initial_metadata_json, + request_id, + request, + trailing_metadata_json, + response, + ) else: self._log_successful_request( - method, customer_id, initial_metadata_json, request_id, request, - trailing_metadata_json, response) + method, + customer_id, + initial_metadata_json, + request_id, + request, + trailing_metadata_json, + response, + ) def intercept_unary_unary(self, continuation, client_call_details, request): """Intercepts and logs API interactions. @@ -271,8 +327,9 @@ def intercept_unary_unary(self, continuation, client_call_details, request): return response - def intercept_unary_stream(self, continuation, client_call_details, - request): + def intercept_unary_stream( + self, continuation, client_call_details, request + ): """Intercepts and logs API interactions for Unary-Stream requests. Overrides abstract method defined in grpc.UnaryStreamClientInterceptor. @@ -287,6 +344,7 @@ def intercept_unary_stream(self, continuation, client_call_details, Returns: A grpc.Call/grpc.Future instance representing a service response. """ + def on_rpc_complete(response_future): if self.logger.isEnabledFor(logging.WARNING): self._log_request(client_call_details, request, response_future) diff --git a/google/ads/google_ads/interceptors/metadata_interceptor.py b/google/ads/google_ads/interceptors/metadata_interceptor.py index d4536191a..8afbbbd8c 100644 --- a/google/ads/google_ads/interceptors/metadata_interceptor.py +++ b/google/ads/google_ads/interceptors/metadata_interceptor.py @@ -24,18 +24,22 @@ from .interceptor import Interceptor -class MetadataInterceptor(Interceptor, UnaryUnaryClientInterceptor, - UnaryStreamClientInterceptor): +class MetadataInterceptor( + Interceptor, UnaryUnaryClientInterceptor, UnaryStreamClientInterceptor +): """An interceptor that appends custom metadata to requests.""" def __init__(self, developer_token, login_customer_id): - self.developer_token_meta = ('developer-token', developer_token) + self.developer_token_meta = ("developer-token", developer_token) self.login_customer_id_meta = ( - ('login-customer-id', login_customer_id) if login_customer_id - else None) - - def _update_client_call_details_metadata(self, client_call_details, - metadata): + ("login-customer-id", login_customer_id) + if login_customer_id + else None + ) + + def _update_client_call_details_metadata( + self, client_call_details, metadata + ): """Updates the client call details with additional metadata. Args: @@ -47,8 +51,11 @@ def _update_client_call_details_metadata(self, client_call_details, from the GoogleAdsClient. """ client_call_details = self.get_client_call_details_instance( - client_call_details.method, client_call_details.timeout, metadata, - client_call_details.credentials) + client_call_details.method, + client_call_details.timeout, + metadata, + client_call_details.credentials, + ) return client_call_details @@ -76,8 +83,8 @@ def _intercept(self, continuation, client_call_details, request): metadata.append(self.login_customer_id_meta) client_call_details = self._update_client_call_details_metadata( - client_call_details, - metadata) + client_call_details, metadata + ) return continuation(client_call_details, request) @@ -98,9 +105,9 @@ def intercept_unary_unary(self, continuation, client_call_details, request): """ return self._intercept(continuation, client_call_details, request) - - def intercept_unary_stream(self, continuation, client_call_details, - request): + def intercept_unary_stream( + self, continuation, client_call_details, request + ): """Intercepts and appends custom metadata to Unary-Stream requests. Overrides abstract method defined in grpc.UnaryStreamClientInterceptor. diff --git a/google/ads/google_ads/oauth2.py b/google/ads/google_ads/oauth2.py index 89f471029..b8eb2bb3c 100644 --- a/google/ads/google_ads/oauth2.py +++ b/google/ads/google_ads/oauth2.py @@ -22,8 +22,8 @@ from google.ads.google_ads import config -_SERVICE_ACCOUNT_SCOPES = ['https://www.googleapis.com/auth/adwords'] -_DEFAULT_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token' +_SERVICE_ACCOUNT_SCOPES = ["https://www.googleapis.com/auth/adwords"] +_DEFAULT_TOKEN_URI = "https://accounts.google.com/o/oauth2/token" def _initialize_credentials_decorator(func): @@ -32,17 +32,20 @@ def _initialize_credentials_decorator(func): Returns: An initialized credentials instance """ + @functools.wraps(func) def initialize_credentials_wrapper(*args, **kwargs): credentials = func(*args, **kwargs) credentials.refresh(Request()) return credentials + return initialize_credentials_wrapper @_initialize_credentials_decorator def get_installed_app_credentials( - client_id, client_secret, refresh_token, token_uri=_DEFAULT_TOKEN_URI): + client_id, client_secret, refresh_token, token_uri=_DEFAULT_TOKEN_URI +): """Creates and returns an instance of oauth2.credentials.Credentials. Args: @@ -54,13 +57,18 @@ def get_installed_app_credentials( An instance of oauth2.credentials.Credentials """ return InstalledAppCredentials( - None, client_id=client_id, client_secret=client_secret, - refresh_token=refresh_token, token_uri=token_uri) + None, + client_id=client_id, + client_secret=client_secret, + refresh_token=refresh_token, + token_uri=token_uri, + ) @_initialize_credentials_decorator -def get_service_account_credentials(path_to_private_key_file, subject, - scopes=_SERVICE_ACCOUNT_SCOPES): +def get_service_account_credentials( + path_to_private_key_file, subject, scopes=_SERVICE_ACCOUNT_SCOPES +): """Creates and returns an instance of oauth2.service_account.Credentials. Args: @@ -73,7 +81,8 @@ def get_service_account_credentials(path_to_private_key_file, subject, An instance of oauth2.credentials.Credentials """ return ServiceAccountCreds.from_service_account_file( - path_to_private_key_file, subject=subject, scopes=scopes) + path_to_private_key_file, subject=subject, scopes=scopes + ) def get_credentials(config_data): @@ -91,17 +100,22 @@ def get_credentials(config_data): if all(key in config_data for key in required_installed_app_keys): # Using the Installed App Flow return get_installed_app_credentials( - config_data.get('client_id'), - config_data.get('client_secret'), - config_data.get('refresh_token')) + config_data.get("client_id"), + config_data.get("client_secret"), + config_data.get("refresh_token"), + ) elif all(key in config_data for key in required_service_account_keys): # Using the Service Account Flow return get_service_account_credentials( - config_data.get('path_to_private_key_file'), - config_data.get('delegated_account')) + config_data.get("path_to_private_key_file"), + config_data.get("delegated_account"), + ) else: - raise ValueError('Your YAML file is incorrectly configured for OAuth2. ' - 'You need to define credentials for either the OAuth2 ' - 'installed application flow ({}) or service account ' - 'flow ({}).'.format(required_installed_app_keys, - required_service_account_keys)) + raise ValueError( + "Your YAML file is incorrectly configured for OAuth2. " + "You need to define credentials for either the OAuth2 " + "installed application flow ({}) or service account " + "flow ({}).".format( + required_installed_app_keys, required_service_account_keys + ) + ) diff --git a/google/ads/google_ads/util.py b/google/ads/google_ads/util.py index 70f99e5a8..795c5f32f 100644 --- a/google/ads/google_ads/util.py +++ b/google/ads/google_ads/util.py @@ -17,14 +17,14 @@ import re # This regex matches characters preceded by start of line or an underscore. -_RE_FIND_CHARS_TO_UPPERCASE = re.compile(r'(?:_|^)([a-z])') +_RE_FIND_CHARS_TO_UPPERCASE = re.compile(r"(?:_|^)([a-z])") class ResourceName: # As of Google Ads API v1 composite resource names are # delimited by a "~" character. - _COMPOSITE_DELIMITER = '~' + _COMPOSITE_DELIMITER = "~" @classmethod def format_composite(cls, *arg): @@ -58,10 +58,11 @@ def get_nested_attr(obj, attr, *args): Returns: The object attribute value or the given *args if the attr isn't present. """ + def _getattr(obj, attr): return getattr(obj, attr, *args) - return functools.reduce(_getattr, [obj] + attr.split('.')) + return functools.reduce(_getattr, [obj] + attr.split(".")) def convert_upper_case_to_snake_case(string): @@ -73,14 +74,14 @@ def convert_upper_case_to_snake_case(string): Args: string: an arbitrary string to convert. """ - new_string = '' + new_string = "" index = 0 for char in string: if index == 0: new_string += char.lower() elif char.isupper(): - new_string += f'_{char.lower()}' + new_string += f"_{char.lower()}" else: new_string += char @@ -98,8 +99,9 @@ def convert_snake_case_to_upper_case(string): Args: string: an arbitrary string to convert. """ + def converter(match): """Convert a string to strip underscores then uppercase it.""" - return match.group().replace('_', '').upper() + return match.group().replace("_", "").upper() return _RE_FIND_CHARS_TO_UPPERCASE.sub(converter, string) diff --git a/google/ads/google_ads/v5/__init__.py b/google/ads/google_ads/v5/__init__.py new file mode 100644 index 000000000..32e0bb821 --- /dev/null +++ b/google/ads/google_ads/v5/__init__.py @@ -0,0 +1,298 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import importlib +import sys + +from google.ads.google_ads import util + + +if sys.version_info < (3, 7): + raise ImportError('This module requires Python 3.7 or later.') + + +_lazy_name_to_package_map = dict( + account_budget_proposal_service_client='google.ads.google_ads.v5.services', + account_budget_service_client='google.ads.google_ads.v5.services', + account_link_service_client='google.ads.google_ads.v5.services', + ad_group_ad_asset_view_service_client='google.ads.google_ads.v5.services', + ad_group_ad_label_service_client='google.ads.google_ads.v5.services', + ad_group_ad_service_client='google.ads.google_ads.v5.services', + ad_group_audience_view_service_client='google.ads.google_ads.v5.services', + ad_group_bid_modifier_service_client='google.ads.google_ads.v5.services', + ad_group_criterion_label_service_client='google.ads.google_ads.v5.services', + ad_group_criterion_service_client='google.ads.google_ads.v5.services', + ad_group_criterion_simulation_service_client='google.ads.google_ads.v5.services', + ad_group_extension_setting_service_client='google.ads.google_ads.v5.services', + ad_group_feed_service_client='google.ads.google_ads.v5.services', + ad_group_label_service_client='google.ads.google_ads.v5.services', + ad_group_service_client='google.ads.google_ads.v5.services', + ad_group_simulation_service_client='google.ads.google_ads.v5.services', + ad_parameter_service_client='google.ads.google_ads.v5.services', + ad_schedule_view_service_client='google.ads.google_ads.v5.services', + ad_service_client='google.ads.google_ads.v5.services', + age_range_view_service_client='google.ads.google_ads.v5.services', + asset_service_client='google.ads.google_ads.v5.services', + batch_job_service_client='google.ads.google_ads.v5.services', + bidding_strategy_service_client='google.ads.google_ads.v5.services', + billing_setup_service_client='google.ads.google_ads.v5.services', + campaign_asset_service_client='google.ads.google_ads.v5.services', + campaign_audience_view_service_client='google.ads.google_ads.v5.services', + campaign_bid_modifier_service_client='google.ads.google_ads.v5.services', + campaign_budget_service_client='google.ads.google_ads.v5.services', + campaign_criterion_service_client='google.ads.google_ads.v5.services', + campaign_criterion_simulation_service_client='google.ads.google_ads.v5.services', + campaign_draft_service_client='google.ads.google_ads.v5.services', + campaign_experiment_service_client='google.ads.google_ads.v5.services', + campaign_extension_setting_service_client='google.ads.google_ads.v5.services', + campaign_feed_service_client='google.ads.google_ads.v5.services', + campaign_label_service_client='google.ads.google_ads.v5.services', + campaign_service_client='google.ads.google_ads.v5.services', + campaign_shared_set_service_client='google.ads.google_ads.v5.services', + carrier_constant_service_client='google.ads.google_ads.v5.services', + change_status_service_client='google.ads.google_ads.v5.services', + click_view_service_client='google.ads.google_ads.v5.services', + conversion_action_service_client='google.ads.google_ads.v5.services', + conversion_adjustment_upload_service_client='google.ads.google_ads.v5.services', + conversion_upload_service_client='google.ads.google_ads.v5.services', + currency_constant_service_client='google.ads.google_ads.v5.services', + custom_interest_service_client='google.ads.google_ads.v5.services', + customer_client_link_service_client='google.ads.google_ads.v5.services', + customer_client_service_client='google.ads.google_ads.v5.services', + customer_extension_setting_service_client='google.ads.google_ads.v5.services', + customer_feed_service_client='google.ads.google_ads.v5.services', + customer_label_service_client='google.ads.google_ads.v5.services', + customer_manager_link_service_client='google.ads.google_ads.v5.services', + customer_negative_criterion_service_client='google.ads.google_ads.v5.services', + customer_service_client='google.ads.google_ads.v5.services', + detail_placement_view_service_client='google.ads.google_ads.v5.services', + display_keyword_view_service_client='google.ads.google_ads.v5.services', + distance_view_service_client='google.ads.google_ads.v5.services', + domain_category_service_client='google.ads.google_ads.v5.services', + dynamic_search_ads_search_term_view_service_client='google.ads.google_ads.v5.services', + expanded_landing_page_view_service_client='google.ads.google_ads.v5.services', + extension_feed_item_service_client='google.ads.google_ads.v5.services', + feed_item_service_client='google.ads.google_ads.v5.services', + feed_item_target_service_client='google.ads.google_ads.v5.services', + feed_mapping_service_client='google.ads.google_ads.v5.services', + feed_placeholder_view_service_client='google.ads.google_ads.v5.services', + feed_service_client='google.ads.google_ads.v5.services', + gender_view_service_client='google.ads.google_ads.v5.services', + geo_target_constant_service_client='google.ads.google_ads.v5.services', + geographic_view_service_client='google.ads.google_ads.v5.services', + google_ads_field_service_client='google.ads.google_ads.v5.services', + google_ads_service_client='google.ads.google_ads.v5.services', + group_placement_view_service_client='google.ads.google_ads.v5.services', + hotel_group_view_service_client='google.ads.google_ads.v5.services', + hotel_performance_view_service_client='google.ads.google_ads.v5.services', + income_range_view_service_client='google.ads.google_ads.v5.services', + invoice_service_client='google.ads.google_ads.v5.services', + keyword_plan_ad_group_keyword_service_client='google.ads.google_ads.v5.services', + keyword_plan_ad_group_service_client='google.ads.google_ads.v5.services', + keyword_plan_campaign_keyword_service_client='google.ads.google_ads.v5.services', + keyword_plan_campaign_service_client='google.ads.google_ads.v5.services', + keyword_plan_idea_service_client='google.ads.google_ads.v5.services', + keyword_plan_service_client='google.ads.google_ads.v5.services', + keyword_view_service_client='google.ads.google_ads.v5.services', + label_service_client='google.ads.google_ads.v5.services', + landing_page_view_service_client='google.ads.google_ads.v5.services', + language_constant_service_client='google.ads.google_ads.v5.services', + location_view_service_client='google.ads.google_ads.v5.services', + managed_placement_view_service_client='google.ads.google_ads.v5.services', + media_file_service_client='google.ads.google_ads.v5.services', + merchant_center_link_service_client='google.ads.google_ads.v5.services', + mobile_app_category_constant_service_client='google.ads.google_ads.v5.services', + mobile_device_constant_service_client='google.ads.google_ads.v5.services', + offline_user_data_job_service_client='google.ads.google_ads.v5.services', + operating_system_version_constant_service_client='google.ads.google_ads.v5.services', + paid_organic_search_term_view_service_client='google.ads.google_ads.v5.services', + parental_status_view_service_client='google.ads.google_ads.v5.services', + payments_account_service_client='google.ads.google_ads.v5.services', + product_bidding_category_constant_service_client='google.ads.google_ads.v5.services', + product_group_view_service_client='google.ads.google_ads.v5.services', + reach_plan_service_client='google.ads.google_ads.v5.services', + recommendation_service_client='google.ads.google_ads.v5.services', + remarketing_action_service_client='google.ads.google_ads.v5.services', + search_term_view_service_client='google.ads.google_ads.v5.services', + shared_criterion_service_client='google.ads.google_ads.v5.services', + shared_set_service_client='google.ads.google_ads.v5.services', + shopping_performance_view_service_client='google.ads.google_ads.v5.services', + third_party_app_analytics_link_service_client='google.ads.google_ads.v5.services', + topic_constant_service_client='google.ads.google_ads.v5.services', + topic_view_service_client='google.ads.google_ads.v5.services', + user_data_service_client='google.ads.google_ads.v5.services', + user_interest_service_client='google.ads.google_ads.v5.services', + user_list_service_client='google.ads.google_ads.v5.services', + user_location_view_service_client='google.ads.google_ads.v5.services', + video_service_client='google.ads.google_ads.v5.services', + account_budget_proposal_service_grpc_transport='google.ads.google_ads.v5.services.transports', + account_budget_service_grpc_transport='google.ads.google_ads.v5.services.transports', + account_link_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_ad_asset_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_ad_label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_ad_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_audience_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_bid_modifier_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_criterion_label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_criterion_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_criterion_simulation_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_extension_setting_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_feed_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_group_simulation_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_parameter_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_schedule_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + ad_service_grpc_transport='google.ads.google_ads.v5.services.transports', + age_range_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + asset_service_grpc_transport='google.ads.google_ads.v5.services.transports', + batch_job_service_grpc_transport='google.ads.google_ads.v5.services.transports', + bidding_strategy_service_grpc_transport='google.ads.google_ads.v5.services.transports', + billing_setup_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_asset_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_audience_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_bid_modifier_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_budget_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_criterion_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_criterion_simulation_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_draft_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_experiment_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_extension_setting_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_feed_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_service_grpc_transport='google.ads.google_ads.v5.services.transports', + campaign_shared_set_service_grpc_transport='google.ads.google_ads.v5.services.transports', + carrier_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + change_status_service_grpc_transport='google.ads.google_ads.v5.services.transports', + click_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + conversion_action_service_grpc_transport='google.ads.google_ads.v5.services.transports', + conversion_adjustment_upload_service_grpc_transport='google.ads.google_ads.v5.services.transports', + conversion_upload_service_grpc_transport='google.ads.google_ads.v5.services.transports', + currency_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + custom_interest_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_client_link_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_client_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_extension_setting_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_feed_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_manager_link_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_negative_criterion_service_grpc_transport='google.ads.google_ads.v5.services.transports', + customer_service_grpc_transport='google.ads.google_ads.v5.services.transports', + detail_placement_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + display_keyword_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + distance_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + domain_category_service_grpc_transport='google.ads.google_ads.v5.services.transports', + dynamic_search_ads_search_term_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + expanded_landing_page_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + extension_feed_item_service_grpc_transport='google.ads.google_ads.v5.services.transports', + feed_item_service_grpc_transport='google.ads.google_ads.v5.services.transports', + feed_item_target_service_grpc_transport='google.ads.google_ads.v5.services.transports', + feed_mapping_service_grpc_transport='google.ads.google_ads.v5.services.transports', + feed_placeholder_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + feed_service_grpc_transport='google.ads.google_ads.v5.services.transports', + gender_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + geo_target_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + geographic_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + google_ads_field_service_grpc_transport='google.ads.google_ads.v5.services.transports', + google_ads_service_grpc_transport='google.ads.google_ads.v5.services.transports', + group_placement_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + hotel_group_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + hotel_performance_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + income_range_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + invoice_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_ad_group_keyword_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_ad_group_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_campaign_keyword_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_campaign_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_idea_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_plan_service_grpc_transport='google.ads.google_ads.v5.services.transports', + keyword_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + label_service_grpc_transport='google.ads.google_ads.v5.services.transports', + landing_page_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + language_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + location_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + managed_placement_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + media_file_service_grpc_transport='google.ads.google_ads.v5.services.transports', + merchant_center_link_service_grpc_transport='google.ads.google_ads.v5.services.transports', + mobile_app_category_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + mobile_device_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + offline_user_data_job_service_grpc_transport='google.ads.google_ads.v5.services.transports', + operating_system_version_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + paid_organic_search_term_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + parental_status_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + payments_account_service_grpc_transport='google.ads.google_ads.v5.services.transports', + product_bidding_category_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + product_group_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + reach_plan_service_grpc_transport='google.ads.google_ads.v5.services.transports', + recommendation_service_grpc_transport='google.ads.google_ads.v5.services.transports', + remarketing_action_service_grpc_transport='google.ads.google_ads.v5.services.transports', + search_term_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + shared_criterion_service_grpc_transport='google.ads.google_ads.v5.services.transports', + shared_set_service_grpc_transport='google.ads.google_ads.v5.services.transports', + shopping_performance_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + third_party_app_analytics_link_service_grpc_transport='google.ads.google_ads.v5.services.transports', + topic_constant_service_grpc_transport='google.ads.google_ads.v5.services.transports', + topic_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + user_data_service_grpc_transport='google.ads.google_ads.v5.services.transports', + user_interest_service_grpc_transport='google.ads.google_ads.v5.services.transports', + user_list_service_grpc_transport='google.ads.google_ads.v5.services.transports', + user_location_view_service_grpc_transport='google.ads.google_ads.v5.services.transports', + video_service_grpc_transport='google.ads.google_ads.v5.services.transports', +) + + +# Background on how this behaves: https://www.python.org/dev/peps/pep-0562/ +def __getattr__(name): # Requires Python >= 3.7 + """Lazily perform imports and class definitions on first demand.""" + if name == '__all__': + converted = (util.convert_snake_case_to_upper_case(key) for + key in _lazy_name_to_package_map) + all_names = sorted(converted) + globals()['__all__'] = all_names + return all_names + elif name.endswith('Transport'): + module = __getattr__(util.convert_upper_case_to_snake_case(name)) + sub_mod_class = getattr(module, name) + klass = type(name, (sub_mod_class,), {'__doc__': sub_mod_class.__doc__}) + globals()[name] = klass + return klass + elif name.endswith('ServiceClient'): + module = __getattr__(util.convert_upper_case_to_snake_case(name)) + enums = __getattr__('enums') + sub_mod_class = getattr(module, name) + klass = type(name, (sub_mod_class,), + {'__doc__': sub_mod_class.__doc__, 'enums': enums}) + globals()[name] = klass + return klass + elif name == 'enums': + path = 'google.ads.google_ads.v5.services.enums' + module = importlib.import_module(path) + globals()[name] = module + return module + elif name == 'types': + path = 'google.ads.google_ads.v5.types' + module = importlib.import_module(path) + globals()[name] = module + return module + elif name in _lazy_name_to_package_map: + module = importlib.import_module(f'{_lazy_name_to_package_map[name]}.{name}') + globals()[name] = module + return module + else: + raise AttributeError(f'unknown sub-module {name!r}.') + + +def __dir__(): + return globals().get('__all__') or __getattr__('__all__') diff --git a/google/ads/google_ads/v5/proto/__init__.py b/google/ads/google_ads/v5/proto/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/proto/common/__init__.py b/google/ads/google_ads/v5/proto/common/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/proto/common/ad_asset_pb2.py b/google/ads/google_ads/v5/proto/common/ad_asset_pb2.py new file mode 100644 index 000000000..a9868291a --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/ad_asset_pb2.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/ad_asset.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import served_asset_field_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_served__asset__field__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/ad_asset.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\014AdAssetProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/common/ad_asset.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x41google/ads/googleads_v5/proto/enums/served_asset_field_type.proto\x1a\x1cgoogle/api/annotations.proto\"\x8d\x01\n\x0b\x41\x64TextAsset\x12\x11\n\x04text\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x62\n\x0cpinned_field\x18\x02 \x01(\x0e\x32L.google.ads.googleads.v5.enums.ServedAssetFieldTypeEnum.ServedAssetFieldTypeB\x07\n\x05_text\",\n\x0c\x41\x64ImageAsset\x12\x12\n\x05\x61sset\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_asset\",\n\x0c\x41\x64VideoAsset\x12\x12\n\x05\x61sset\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_asset\"2\n\x12\x41\x64MediaBundleAsset\x12\x12\n\x05\x61sset\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_assetB\xe7\x01\n\"com.google.ads.googleads.v5.commonB\x0c\x41\x64\x41ssetProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_served__asset__field__type__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADTEXTASSET = _descriptor.Descriptor( + name='AdTextAsset', + full_name='google.ads.googleads.v5.common.AdTextAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.AdTextAsset.text', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='pinned_field', full_name='google.ads.googleads.v5.common.AdTextAsset.pinned_field', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_text', full_name='google.ads.googleads.v5.common.AdTextAsset._text', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=185, + serialized_end=326, +) + + +_ADIMAGEASSET = _descriptor.Descriptor( + name='AdImageAsset', + full_name='google.ads.googleads.v5.common.AdImageAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='asset', full_name='google.ads.googleads.v5.common.AdImageAsset.asset', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_asset', full_name='google.ads.googleads.v5.common.AdImageAsset._asset', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=328, + serialized_end=372, +) + + +_ADVIDEOASSET = _descriptor.Descriptor( + name='AdVideoAsset', + full_name='google.ads.googleads.v5.common.AdVideoAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='asset', full_name='google.ads.googleads.v5.common.AdVideoAsset.asset', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_asset', full_name='google.ads.googleads.v5.common.AdVideoAsset._asset', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=374, + serialized_end=418, +) + + +_ADMEDIABUNDLEASSET = _descriptor.Descriptor( + name='AdMediaBundleAsset', + full_name='google.ads.googleads.v5.common.AdMediaBundleAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='asset', full_name='google.ads.googleads.v5.common.AdMediaBundleAsset.asset', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_asset', full_name='google.ads.googleads.v5.common.AdMediaBundleAsset._asset', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=420, + serialized_end=470, +) + +_ADTEXTASSET.fields_by_name['pinned_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_served__asset__field__type__pb2._SERVEDASSETFIELDTYPEENUM_SERVEDASSETFIELDTYPE +_ADTEXTASSET.oneofs_by_name['_text'].fields.append( + _ADTEXTASSET.fields_by_name['text']) +_ADTEXTASSET.fields_by_name['text'].containing_oneof = _ADTEXTASSET.oneofs_by_name['_text'] +_ADIMAGEASSET.oneofs_by_name['_asset'].fields.append( + _ADIMAGEASSET.fields_by_name['asset']) +_ADIMAGEASSET.fields_by_name['asset'].containing_oneof = _ADIMAGEASSET.oneofs_by_name['_asset'] +_ADVIDEOASSET.oneofs_by_name['_asset'].fields.append( + _ADVIDEOASSET.fields_by_name['asset']) +_ADVIDEOASSET.fields_by_name['asset'].containing_oneof = _ADVIDEOASSET.oneofs_by_name['_asset'] +_ADMEDIABUNDLEASSET.oneofs_by_name['_asset'].fields.append( + _ADMEDIABUNDLEASSET.fields_by_name['asset']) +_ADMEDIABUNDLEASSET.fields_by_name['asset'].containing_oneof = _ADMEDIABUNDLEASSET.oneofs_by_name['_asset'] +DESCRIPTOR.message_types_by_name['AdTextAsset'] = _ADTEXTASSET +DESCRIPTOR.message_types_by_name['AdImageAsset'] = _ADIMAGEASSET +DESCRIPTOR.message_types_by_name['AdVideoAsset'] = _ADVIDEOASSET +DESCRIPTOR.message_types_by_name['AdMediaBundleAsset'] = _ADMEDIABUNDLEASSET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdTextAsset = _reflection.GeneratedProtocolMessageType('AdTextAsset', (_message.Message,), { + 'DESCRIPTOR' : _ADTEXTASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_asset_pb2' + , + '__doc__': """A text asset used inside an ad. + + Attributes: + text: + Asset text. + pinned_field: + The pinned field of the asset. This restricts the asset to + only serve within this field. Multiple assets can be pinned to + the same field. An asset that is unpinned or pinned to a + different field will not serve in a field where some other + asset has been pinned. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AdTextAsset) + }) +_sym_db.RegisterMessage(AdTextAsset) + +AdImageAsset = _reflection.GeneratedProtocolMessageType('AdImageAsset', (_message.Message,), { + 'DESCRIPTOR' : _ADIMAGEASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_asset_pb2' + , + '__doc__': """An image asset used inside an ad. + + Attributes: + asset: + The Asset resource name of this image. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AdImageAsset) + }) +_sym_db.RegisterMessage(AdImageAsset) + +AdVideoAsset = _reflection.GeneratedProtocolMessageType('AdVideoAsset', (_message.Message,), { + 'DESCRIPTOR' : _ADVIDEOASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_asset_pb2' + , + '__doc__': """A video asset used inside an ad. + + Attributes: + asset: + The Asset resource name of this video. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AdVideoAsset) + }) +_sym_db.RegisterMessage(AdVideoAsset) + +AdMediaBundleAsset = _reflection.GeneratedProtocolMessageType('AdMediaBundleAsset', (_message.Message,), { + 'DESCRIPTOR' : _ADMEDIABUNDLEASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_asset_pb2' + , + '__doc__': """A media bundle asset used inside an ad. + + Attributes: + asset: + The Asset resource name of this media bundle. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AdMediaBundleAsset) + }) +_sym_db.RegisterMessage(AdMediaBundleAsset) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/ad_asset_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/ad_asset_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/ad_asset_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2.py b/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2.py new file mode 100644 index 000000000..80703de6a --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2.py @@ -0,0 +1,3285 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/ad_type_infos.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import ad_asset_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2 +from google.ads.google_ads.v5.proto.enums import call_conversion_reporting_state_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2 +from google.ads.google_ads.v5.proto.enums import display_ad_format_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__ad__format__setting__pb2 +from google.ads.google_ads.v5.proto.enums import display_upload_product_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__upload__product__type__pb2 +from google.ads.google_ads.v5.proto.enums import legacy_app_install_ad_app_store_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_legacy__app__install__ad__app__store__pb2 +from google.ads.google_ads.v5.proto.enums import mime_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/ad_type_infos.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\020AdTypeInfosProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/common/ad_type_infos.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x33google/ads/googleads_v5/proto/common/ad_asset.proto\x1aIgoogle/ads/googleads_v5/proto/enums/call_conversion_reporting_state.proto\x1a\x43google/ads/googleads_v5/proto/enums/display_ad_format_setting.proto\x1a\x45google/ads/googleads_v5/proto/enums/display_upload_product_type.proto\x1aIgoogle/ads/googleads_v5/proto/enums/legacy_app_install_ad_app_store.proto\x1a\x33google/ads/googleads_v5/proto/enums/mime_type.proto\x1a\x1cgoogle/api/annotations.proto\"\x88\x01\n\nTextAdInfo\x12\x15\n\x08headline\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x64\x65scription1\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_headlineB\x0f\n\r_description1B\x0f\n\r_description2\"\xb6\x02\n\x12\x45xpandedTextAdInfo\x12\x1b\n\x0eheadline_part1\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eheadline_part2\x18\t \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0eheadline_part3\x18\n \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\x0c \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05path1\x18\r \x01(\tH\x05\x88\x01\x01\x12\x12\n\x05path2\x18\x0e \x01(\tH\x06\x88\x01\x01\x42\x11\n\x0f_headline_part1B\x11\n\x0f_headline_part2B\x11\n\x0f_headline_part3B\x0e\n\x0c_descriptionB\x0f\n\r_description2B\x08\n\x06_path1B\x08\n\x06_path2\"\xaf\x05\n\x0e\x43\x61llOnlyAdInfo\x12\x19\n\x0c\x63ountry_code\x18\r \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cphone_number\x18\x0e \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rbusiness_name\x18\x0f \x01(\tH\x02\x88\x01\x01\x12\x16\n\theadline1\x18\x10 \x01(\tH\x03\x88\x01\x01\x12\x16\n\theadline2\x18\x11 \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0c\x64\x65scription1\x18\x12 \x01(\tH\x05\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\x13 \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0c\x63\x61ll_tracked\x18\x14 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x64isable_call_conversion\x18\x15 \x01(\x08H\x08\x88\x01\x01\x12*\n\x1dphone_number_verification_url\x18\x16 \x01(\tH\t\x88\x01\x01\x12\x1e\n\x11\x63onversion_action\x18\x17 \x01(\tH\n\x88\x01\x01\x12\x80\x01\n\x1a\x63onversion_reporting_state\x18\n \x01(\x0e\x32\\.google.ads.googleads.v5.enums.CallConversionReportingStateEnum.CallConversionReportingStateB\x0f\n\r_country_codeB\x0f\n\r_phone_numberB\x10\n\x0e_business_nameB\x0c\n\n_headline1B\x0c\n\n_headline2B\x0f\n\r_description1B\x0f\n\r_description2B\x0f\n\r_call_trackedB\x1a\n\x18_disable_call_conversionB \n\x1e_phone_number_verification_urlB\x14\n\x12_conversion_action\"s\n\x1b\x45xpandedDynamicSearchAdInfo\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_description2\"\r\n\x0bHotelAdInfo\"\x15\n\x13ShoppingSmartAdInfo\"\x17\n\x15ShoppingProductAdInfo\"E\n\x1fShoppingComparisonListingAdInfo\x12\x15\n\x08headline\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_headline\"\xa7\x04\n\x0bGmailAdInfo\x12;\n\x06teaser\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.common.GmailTeaser\x12\x19\n\x0cheader_image\x18\n \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fmarketing_image\x18\x0b \x01(\tH\x01\x88\x01\x01\x12%\n\x18marketing_image_headline\x18\x0c \x01(\tH\x02\x88\x01\x01\x12(\n\x1bmarketing_image_description\x18\r \x01(\tH\x03\x88\x01\x01\x12\x63\n&marketing_image_display_call_to_action\x18\x06 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.DisplayCallToAction\x12\x44\n\x0eproduct_images\x18\x07 \x03(\x0b\x32,.google.ads.googleads.v5.common.ProductImage\x12\x44\n\x0eproduct_videos\x18\x08 \x03(\x0b\x32,.google.ads.googleads.v5.common.ProductVideoB\x0f\n\r_header_imageB\x12\n\x10_marketing_imageB\x1b\n\x19_marketing_image_headlineB\x1e\n\x1c_marketing_image_description\"\xb1\x01\n\x0bGmailTeaser\x12\x15\n\x08headline\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rbusiness_name\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nlogo_image\x18\x08 \x01(\tH\x03\x88\x01\x01\x42\x0b\n\t_headlineB\x0e\n\x0c_descriptionB\x10\n\x0e_business_nameB\r\n\x0b_logo_image\"\x8f\x01\n\x13\x44isplayCallToAction\x12\x11\n\x04text\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ntext_color\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11url_collection_id\x18\x07 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_textB\r\n\x0b_text_colorB\x14\n\x12_url_collection_id\"\xbb\x01\n\x0cProductImage\x12\x1a\n\rproduct_image\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x01\x88\x01\x01\x12S\n\x16\x64isplay_call_to_action\x18\x03 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.DisplayCallToActionB\x10\n\x0e_product_imageB\x0e\n\x0c_description\"<\n\x0cProductVideo\x12\x1a\n\rproduct_video\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_product_video\"\xed\x03\n\x0bImageAdInfo\x12\x18\n\x0bpixel_width\x18\x0f \x01(\x03H\x01\x88\x01\x01\x12\x19\n\x0cpixel_height\x18\x10 \x01(\x03H\x02\x88\x01\x01\x12\x16\n\timage_url\x18\x11 \x01(\tH\x03\x88\x01\x01\x12 \n\x13preview_pixel_width\x18\x12 \x01(\x03H\x04\x88\x01\x01\x12!\n\x14preview_pixel_height\x18\x13 \x01(\x03H\x05\x88\x01\x01\x12\x1e\n\x11preview_image_url\x18\x14 \x01(\tH\x06\x88\x01\x01\x12G\n\tmime_type\x18\n \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.MimeTypeEnum.MimeType\x12\x11\n\x04name\x18\x15 \x01(\tH\x07\x88\x01\x01\x12\x14\n\nmedia_file\x18\x0c \x01(\tH\x00\x12\x0e\n\x04\x64\x61ta\x18\r \x01(\x0cH\x00\x12\"\n\x18\x61\x64_id_to_copy_image_from\x18\x0e \x01(\x03H\x00\x42\x07\n\x05imageB\x0e\n\x0c_pixel_widthB\x0f\n\r_pixel_heightB\x0c\n\n_image_urlB\x16\n\x14_preview_pixel_widthB\x17\n\x15_preview_pixel_heightB\x14\n\x12_preview_image_urlB\x07\n\x05_name\"O\n\x19VideoBumperInStreamAdInfo\x12\x1d\n\x10\x63ompanion_banner\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_companion_banner\"U\n\x1fVideoNonSkippableInStreamAdInfo\x12\x1d\n\x10\x63ompanion_banner\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_companion_banner\"\xbd\x01\n\x1bVideoTrueViewInStreamAdInfo\x12 \n\x13\x61\x63tion_button_label\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0f\x61\x63tion_headline\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10\x63ompanion_banner\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x16\n\x14_action_button_labelB\x12\n\x10_action_headlineB\x13\n\x11_companion_banner\"d\n\x14VideoOutstreamAdInfo\x12\x15\n\x08headline\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_headlineB\x0e\n\x0c_description\"\x9a\x01\n\x1cVideoTrueViewDiscoveryAdInfo\x12\x15\n\x08headline\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x64\x65scription1\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_headlineB\x0f\n\r_description1B\x0f\n\r_description2\"\xd7\x03\n\x0bVideoAdInfo\x12\x17\n\nmedia_file\x18\x07 \x01(\tH\x01\x88\x01\x01\x12P\n\tin_stream\x18\x02 \x01(\x0b\x32;.google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfoH\x00\x12K\n\x06\x62umper\x18\x03 \x01(\x0b\x32\x39.google.ads.googleads.v5.common.VideoBumperInStreamAdInfoH\x00\x12J\n\nout_stream\x18\x04 \x01(\x0b\x32\x34.google.ads.googleads.v5.common.VideoOutstreamAdInfoH\x00\x12X\n\rnon_skippable\x18\x05 \x01(\x0b\x32?.google.ads.googleads.v5.common.VideoNonSkippableInStreamAdInfoH\x00\x12Q\n\tdiscovery\x18\x06 \x01(\x0b\x32<.google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfoH\x00\x42\x08\n\x06\x66ormatB\r\n\x0b_media_file\"\xac\x03\n\x15VideoResponsiveAdInfo\x12>\n\theadlines\x18\x01 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x43\n\x0elong_headlines\x18\x02 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x03 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x44\n\x0f\x63\x61ll_to_actions\x18\x04 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12<\n\x06videos\x18\x05 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdVideoAsset\x12G\n\x11\x63ompanion_banners\x18\x06 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\"\xd7\x01\n\x16ResponsiveSearchAdInfo\x12>\n\theadlines\x18\x01 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x02 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x12\n\x05path1\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05path2\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_path1B\x08\n\x06_path2\"\xad\x06\n\x1dLegacyResponsiveDisplayAdInfo\x12\x1b\n\x0eshort_headline\x18\x10 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rlong_headline\x18\x11 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x12 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rbusiness_name\x18\x13 \x01(\tH\x03\x88\x01\x01\x12!\n\x14\x61llow_flexible_color\x18\x14 \x01(\x08H\x04\x88\x01\x01\x12\x19\n\x0c\x61\x63\x63\x65nt_color\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x17\n\nmain_color\x18\x16 \x01(\tH\x06\x88\x01\x01\x12 \n\x13\x63\x61ll_to_action_text\x18\x17 \x01(\tH\x07\x88\x01\x01\x12\x17\n\nlogo_image\x18\x18 \x01(\tH\x08\x88\x01\x01\x12\x1e\n\x11square_logo_image\x18\x19 \x01(\tH\t\x88\x01\x01\x12\x1c\n\x0fmarketing_image\x18\x1a \x01(\tH\n\x88\x01\x01\x12#\n\x16square_marketing_image\x18\x1b \x01(\tH\x0b\x88\x01\x01\x12h\n\x0e\x66ormat_setting\x18\r \x01(\x0e\x32P.google.ads.googleads.v5.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting\x12\x19\n\x0cprice_prefix\x18\x1c \x01(\tH\x0c\x88\x01\x01\x12\x17\n\npromo_text\x18\x1d \x01(\tH\r\x88\x01\x01\x42\x11\n\x0f_short_headlineB\x10\n\x0e_long_headlineB\x0e\n\x0c_descriptionB\x10\n\x0e_business_nameB\x17\n\x15_allow_flexible_colorB\x0f\n\r_accent_colorB\r\n\x0b_main_colorB\x16\n\x14_call_to_action_textB\r\n\x0b_logo_imageB\x14\n\x12_square_logo_imageB\x12\n\x10_marketing_imageB\x19\n\x17_square_marketing_imageB\x0f\n\r_price_prefixB\r\n\x0b_promo_text\"\xab\x03\n\tAppAdInfo\x12\x46\n\x11mandatory_ad_text\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12>\n\theadlines\x18\x02 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x03 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12<\n\x06images\x18\x04 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12\x44\n\x0eyoutube_videos\x18\x05 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdVideoAsset\x12O\n\x13html5_media_bundles\x18\x06 \x03(\x0b\x32\x32.google.ads.googleads.v5.common.AdMediaBundleAsset\"\x94\x02\n\x13\x41ppEngagementAdInfo\x12>\n\theadlines\x18\x01 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x02 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12<\n\x06images\x18\x03 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12<\n\x06videos\x18\x04 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdVideoAsset\"\xa1\x02\n\x16LegacyAppInstallAdInfo\x12\x13\n\x06\x61pp_id\x18\x06 \x01(\tH\x00\x88\x01\x01\x12k\n\tapp_store\x18\x02 \x01(\x0e\x32X.google.ads.googleads.v5.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore\x12\x15\n\x08headline\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x64\x65scription1\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0c\x64\x65scription2\x18\t \x01(\tH\x03\x88\x01\x01\x42\t\n\x07_app_idB\x0b\n\t_headlineB\x0f\n\r_description1B\x0f\n\r_description2\"\x80\x08\n\x17ResponsiveDisplayAdInfo\x12\x46\n\x10marketing_images\x18\x01 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12M\n\x17square_marketing_images\x18\x02 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12\x41\n\x0blogo_images\x18\x03 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12H\n\x12square_logo_images\x18\x04 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12>\n\theadlines\x18\x05 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x42\n\rlong_headline\x18\x06 \x01(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x07 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x44\n\x0eyoutube_videos\x18\x08 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdVideoAsset\x12\x1a\n\rbusiness_name\x18\x11 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nmain_color\x18\x12 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x61\x63\x63\x65nt_color\x18\x13 \x01(\tH\x02\x88\x01\x01\x12!\n\x14\x61llow_flexible_color\x18\x14 \x01(\x08H\x03\x88\x01\x01\x12 \n\x13\x63\x61ll_to_action_text\x18\x15 \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0cprice_prefix\x18\x16 \x01(\tH\x05\x88\x01\x01\x12\x17\n\npromo_text\x18\x17 \x01(\tH\x06\x88\x01\x01\x12h\n\x0e\x66ormat_setting\x18\x10 \x01(\x0e\x32P.google.ads.googleads.v5.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSettingB\x10\n\x0e_business_nameB\r\n\x0b_main_colorB\x0f\n\r_accent_colorB\x17\n\x15_allow_flexible_colorB\x16\n\x14_call_to_action_textB\x0f\n\r_price_prefixB\r\n\x0b_promo_text\"\xdb\x03\n\x0bLocalAdInfo\x12>\n\theadlines\x18\x01 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x41\n\x0c\x64\x65scriptions\x18\x02 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x44\n\x0f\x63\x61ll_to_actions\x18\x03 \x03(\x0b\x32+.google.ads.googleads.v5.common.AdTextAsset\x12\x46\n\x10marketing_images\x18\x04 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12\x41\n\x0blogo_images\x18\x05 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdImageAsset\x12<\n\x06videos\x18\x06 \x03(\x0b\x32,.google.ads.googleads.v5.common.AdVideoAsset\x12\x12\n\x05path1\x18\t \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05path2\x18\n \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_path1B\x08\n\x06_path2\"\xeb\x01\n\x13\x44isplayUploadAdInfo\x12y\n\x1b\x64isplay_upload_product_type\x18\x01 \x01(\x0e\x32T.google.ads.googleads.v5.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType\x12J\n\x0cmedia_bundle\x18\x02 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.AdMediaBundleAssetH\x00\x42\r\n\x0bmedia_assetB\xeb\x01\n\"com.google.ads.googleads.v5.commonB\x10\x41\x64TypeInfosProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__ad__format__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__upload__product__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_legacy__app__install__ad__app__store__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_TEXTADINFO = _descriptor.Descriptor( + name='TextAdInfo', + full_name='google.ads.googleads.v5.common.TextAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.TextAdInfo.headline', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v5.common.TextAdInfo.description1', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.TextAdInfo.description2', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.TextAdInfo._headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description1', full_name='google.ads.googleads.v5.common.TextAdInfo._description1', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.TextAdInfo._description2', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=519, + serialized_end=655, +) + + +_EXPANDEDTEXTADINFO = _descriptor.Descriptor( + name='ExpandedTextAdInfo', + full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline_part1', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.headline_part1', index=0, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline_part2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.headline_part2', index=1, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline_part3', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.headline_part3', index=2, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.description', index=3, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.description2', index=4, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path1', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.path1', index=5, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo.path2', index=6, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline_part1', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._headline_part1', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline_part2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._headline_part2', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline_part3', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._headline_part3', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._description', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._description2', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_path1', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._path1', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_path2', full_name='google.ads.googleads.v5.common.ExpandedTextAdInfo._path2', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=658, + serialized_end=968, +) + + +_CALLONLYADINFO = _descriptor.Descriptor( + name='CallOnlyAdInfo', + full_name='google.ads.googleads.v5.common.CallOnlyAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.country_code', index=0, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.phone_number', index=1, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.business_name', index=2, + number=15, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline1', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.headline1', index=3, + number=16, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline2', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.headline2', index=4, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.description1', index=5, + number=18, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.description2', index=6, + number=19, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_tracked', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.call_tracked', index=7, + number=20, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='disable_call_conversion', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.disable_call_conversion', index=8, + number=21, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_number_verification_url', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.phone_number_verification_url', index=9, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.conversion_action', index=10, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_reporting_state', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo.conversion_reporting_state', index=11, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._country_code', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_number', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._phone_number', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_business_name', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._business_name', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline1', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._headline1', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline2', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._headline2', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description1', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._description1', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._description2', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_tracked', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._call_tracked', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_disable_call_conversion', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._disable_call_conversion', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_number_verification_url', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._phone_number_verification_url', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.common.CallOnlyAdInfo._conversion_action', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=971, + serialized_end=1658, +) + + +_EXPANDEDDYNAMICSEARCHADINFO = _descriptor.Descriptor( + name='ExpandedDynamicSearchAdInfo', + full_name='google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo.description', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo.description2', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo._description', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo._description2', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1660, + serialized_end=1775, +) + + +_HOTELADINFO = _descriptor.Descriptor( + name='HotelAdInfo', + full_name='google.ads.googleads.v5.common.HotelAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1777, + serialized_end=1790, +) + + +_SHOPPINGSMARTADINFO = _descriptor.Descriptor( + name='ShoppingSmartAdInfo', + full_name='google.ads.googleads.v5.common.ShoppingSmartAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1792, + serialized_end=1813, +) + + +_SHOPPINGPRODUCTADINFO = _descriptor.Descriptor( + name='ShoppingProductAdInfo', + full_name='google.ads.googleads.v5.common.ShoppingProductAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1815, + serialized_end=1838, +) + + +_SHOPPINGCOMPARISONLISTINGADINFO = _descriptor.Descriptor( + name='ShoppingComparisonListingAdInfo', + full_name='google.ads.googleads.v5.common.ShoppingComparisonListingAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.ShoppingComparisonListingAdInfo.headline', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.ShoppingComparisonListingAdInfo._headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1840, + serialized_end=1909, +) + + +_GMAILADINFO = _descriptor.Descriptor( + name='GmailAdInfo', + full_name='google.ads.googleads.v5.common.GmailAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='teaser', full_name='google.ads.googleads.v5.common.GmailAdInfo.teaser', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='header_image', full_name='google.ads.googleads.v5.common.GmailAdInfo.header_image', index=1, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_image', full_name='google.ads.googleads.v5.common.GmailAdInfo.marketing_image', index=2, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_image_headline', full_name='google.ads.googleads.v5.common.GmailAdInfo.marketing_image_headline', index=3, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_image_description', full_name='google.ads.googleads.v5.common.GmailAdInfo.marketing_image_description', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_image_display_call_to_action', full_name='google.ads.googleads.v5.common.GmailAdInfo.marketing_image_display_call_to_action', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_images', full_name='google.ads.googleads.v5.common.GmailAdInfo.product_images', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_videos', full_name='google.ads.googleads.v5.common.GmailAdInfo.product_videos', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_header_image', full_name='google.ads.googleads.v5.common.GmailAdInfo._header_image', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_marketing_image', full_name='google.ads.googleads.v5.common.GmailAdInfo._marketing_image', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_marketing_image_headline', full_name='google.ads.googleads.v5.common.GmailAdInfo._marketing_image_headline', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_marketing_image_description', full_name='google.ads.googleads.v5.common.GmailAdInfo._marketing_image_description', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1912, + serialized_end=2463, +) + + +_GMAILTEASER = _descriptor.Descriptor( + name='GmailTeaser', + full_name='google.ads.googleads.v5.common.GmailTeaser', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.GmailTeaser.headline', index=0, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.GmailTeaser.description', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.GmailTeaser.business_name', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='logo_image', full_name='google.ads.googleads.v5.common.GmailTeaser.logo_image', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.GmailTeaser._headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.GmailTeaser._description', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_business_name', full_name='google.ads.googleads.v5.common.GmailTeaser._business_name', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_logo_image', full_name='google.ads.googleads.v5.common.GmailTeaser._logo_image', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2466, + serialized_end=2643, +) + + +_DISPLAYCALLTOACTION = _descriptor.Descriptor( + name='DisplayCallToAction', + full_name='google.ads.googleads.v5.common.DisplayCallToAction', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.DisplayCallToAction.text', index=0, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_color', full_name='google.ads.googleads.v5.common.DisplayCallToAction.text_color', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_collection_id', full_name='google.ads.googleads.v5.common.DisplayCallToAction.url_collection_id', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_text', full_name='google.ads.googleads.v5.common.DisplayCallToAction._text', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_text_color', full_name='google.ads.googleads.v5.common.DisplayCallToAction._text_color', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_url_collection_id', full_name='google.ads.googleads.v5.common.DisplayCallToAction._url_collection_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2646, + serialized_end=2789, +) + + +_PRODUCTIMAGE = _descriptor.Descriptor( + name='ProductImage', + full_name='google.ads.googleads.v5.common.ProductImage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='product_image', full_name='google.ads.googleads.v5.common.ProductImage.product_image', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.ProductImage.description', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_call_to_action', full_name='google.ads.googleads.v5.common.ProductImage.display_call_to_action', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_product_image', full_name='google.ads.googleads.v5.common.ProductImage._product_image', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.ProductImage._description', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2792, + serialized_end=2979, +) + + +_PRODUCTVIDEO = _descriptor.Descriptor( + name='ProductVideo', + full_name='google.ads.googleads.v5.common.ProductVideo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='product_video', full_name='google.ads.googleads.v5.common.ProductVideo.product_video', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_product_video', full_name='google.ads.googleads.v5.common.ProductVideo._product_video', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2981, + serialized_end=3041, +) + + +_IMAGEADINFO = _descriptor.Descriptor( + name='ImageAdInfo', + full_name='google.ads.googleads.v5.common.ImageAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='pixel_width', full_name='google.ads.googleads.v5.common.ImageAdInfo.pixel_width', index=0, + number=15, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='pixel_height', full_name='google.ads.googleads.v5.common.ImageAdInfo.pixel_height', index=1, + number=16, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='image_url', full_name='google.ads.googleads.v5.common.ImageAdInfo.image_url', index=2, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preview_pixel_width', full_name='google.ads.googleads.v5.common.ImageAdInfo.preview_pixel_width', index=3, + number=18, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preview_pixel_height', full_name='google.ads.googleads.v5.common.ImageAdInfo.preview_pixel_height', index=4, + number=19, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preview_image_url', full_name='google.ads.googleads.v5.common.ImageAdInfo.preview_image_url', index=5, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mime_type', full_name='google.ads.googleads.v5.common.ImageAdInfo.mime_type', index=6, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.common.ImageAdInfo.name', index=7, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file', full_name='google.ads.googleads.v5.common.ImageAdInfo.media_file', index=8, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data', full_name='google.ads.googleads.v5.common.ImageAdInfo.data', index=9, + number=13, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_id_to_copy_image_from', full_name='google.ads.googleads.v5.common.ImageAdInfo.ad_id_to_copy_image_from', index=10, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='image', full_name='google.ads.googleads.v5.common.ImageAdInfo.image', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_pixel_width', full_name='google.ads.googleads.v5.common.ImageAdInfo._pixel_width', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_pixel_height', full_name='google.ads.googleads.v5.common.ImageAdInfo._pixel_height', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_image_url', full_name='google.ads.googleads.v5.common.ImageAdInfo._image_url', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_preview_pixel_width', full_name='google.ads.googleads.v5.common.ImageAdInfo._preview_pixel_width', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_preview_pixel_height', full_name='google.ads.googleads.v5.common.ImageAdInfo._preview_pixel_height', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_preview_image_url', full_name='google.ads.googleads.v5.common.ImageAdInfo._preview_image_url', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.common.ImageAdInfo._name', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3044, + serialized_end=3537, +) + + +_VIDEOBUMPERINSTREAMADINFO = _descriptor.Descriptor( + name='VideoBumperInStreamAdInfo', + full_name='google.ads.googleads.v5.common.VideoBumperInStreamAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='companion_banner', full_name='google.ads.googleads.v5.common.VideoBumperInStreamAdInfo.companion_banner', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_companion_banner', full_name='google.ads.googleads.v5.common.VideoBumperInStreamAdInfo._companion_banner', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3539, + serialized_end=3618, +) + + +_VIDEONONSKIPPABLEINSTREAMADINFO = _descriptor.Descriptor( + name='VideoNonSkippableInStreamAdInfo', + full_name='google.ads.googleads.v5.common.VideoNonSkippableInStreamAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='companion_banner', full_name='google.ads.googleads.v5.common.VideoNonSkippableInStreamAdInfo.companion_banner', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_companion_banner', full_name='google.ads.googleads.v5.common.VideoNonSkippableInStreamAdInfo._companion_banner', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3620, + serialized_end=3705, +) + + +_VIDEOTRUEVIEWINSTREAMADINFO = _descriptor.Descriptor( + name='VideoTrueViewInStreamAdInfo', + full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='action_button_label', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo.action_button_label', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='action_headline', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo.action_headline', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='companion_banner', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo.companion_banner', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_action_button_label', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo._action_button_label', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_action_headline', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo._action_headline', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_companion_banner', full_name='google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo._companion_banner', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3708, + serialized_end=3897, +) + + +_VIDEOOUTSTREAMADINFO = _descriptor.Descriptor( + name='VideoOutstreamAdInfo', + full_name='google.ads.googleads.v5.common.VideoOutstreamAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.VideoOutstreamAdInfo.headline', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.VideoOutstreamAdInfo.description', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.VideoOutstreamAdInfo._headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.VideoOutstreamAdInfo._description', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3899, + serialized_end=3999, +) + + +_VIDEOTRUEVIEWDISCOVERYADINFO = _descriptor.Descriptor( + name='VideoTrueViewDiscoveryAdInfo', + full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo.headline', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo.description1', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo.description2', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo._headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description1', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo._description1', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo._description2', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4002, + serialized_end=4156, +) + + +_VIDEOADINFO = _descriptor.Descriptor( + name='VideoAdInfo', + full_name='google.ads.googleads.v5.common.VideoAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='media_file', full_name='google.ads.googleads.v5.common.VideoAdInfo.media_file', index=0, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='in_stream', full_name='google.ads.googleads.v5.common.VideoAdInfo.in_stream', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bumper', full_name='google.ads.googleads.v5.common.VideoAdInfo.bumper', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='out_stream', full_name='google.ads.googleads.v5.common.VideoAdInfo.out_stream', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='non_skippable', full_name='google.ads.googleads.v5.common.VideoAdInfo.non_skippable', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='discovery', full_name='google.ads.googleads.v5.common.VideoAdInfo.discovery', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='format', full_name='google.ads.googleads.v5.common.VideoAdInfo.format', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_media_file', full_name='google.ads.googleads.v5.common.VideoAdInfo._media_file', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4159, + serialized_end=4630, +) + + +_VIDEORESPONSIVEADINFO = _descriptor.Descriptor( + name='VideoResponsiveAdInfo', + full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.headlines', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='long_headlines', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.long_headlines', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.descriptions', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_to_actions', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.call_to_actions', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='videos', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.videos', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='companion_banners', full_name='google.ads.googleads.v5.common.VideoResponsiveAdInfo.companion_banners', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4633, + serialized_end=5061, +) + + +_RESPONSIVESEARCHADINFO = _descriptor.Descriptor( + name='ResponsiveSearchAdInfo', + full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo.headlines', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo.descriptions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path1', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo.path1', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path2', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo.path2', index=3, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_path1', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo._path1', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_path2', full_name='google.ads.googleads.v5.common.ResponsiveSearchAdInfo._path2', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5064, + serialized_end=5279, +) + + +_LEGACYRESPONSIVEDISPLAYADINFO = _descriptor.Descriptor( + name='LegacyResponsiveDisplayAdInfo', + full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='short_headline', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.short_headline', index=0, + number=16, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='long_headline', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.long_headline', index=1, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.description', index=2, + number=18, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.business_name', index=3, + number=19, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='allow_flexible_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.allow_flexible_color', index=4, + number=20, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='accent_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.accent_color', index=5, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='main_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.main_color', index=6, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_to_action_text', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.call_to_action_text', index=7, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='logo_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.logo_image', index=8, + number=24, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='square_logo_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.square_logo_image', index=9, + number=25, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.marketing_image', index=10, + number=26, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='square_marketing_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.square_marketing_image', index=11, + number=27, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='format_setting', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.format_setting', index=12, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_prefix', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.price_prefix', index=13, + number=28, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promo_text', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo.promo_text', index=14, + number=29, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_short_headline', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._short_headline', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_long_headline', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._long_headline', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._description', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_business_name', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._business_name', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_allow_flexible_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._allow_flexible_color', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_accent_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._accent_color', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_main_color', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._main_color', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_to_action_text', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._call_to_action_text', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_logo_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._logo_image', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_square_logo_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._square_logo_image', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_marketing_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._marketing_image', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_square_marketing_image', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._square_marketing_image', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_price_prefix', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._price_prefix', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_promo_text', full_name='google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo._promo_text', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5282, + serialized_end=6095, +) + + +_APPADINFO = _descriptor.Descriptor( + name='AppAdInfo', + full_name='google.ads.googleads.v5.common.AppAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='mandatory_ad_text', full_name='google.ads.googleads.v5.common.AppAdInfo.mandatory_ad_text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.AppAdInfo.headlines', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.AppAdInfo.descriptions', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='images', full_name='google.ads.googleads.v5.common.AppAdInfo.images', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_videos', full_name='google.ads.googleads.v5.common.AppAdInfo.youtube_videos', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='html5_media_bundles', full_name='google.ads.googleads.v5.common.AppAdInfo.html5_media_bundles', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6098, + serialized_end=6525, +) + + +_APPENGAGEMENTADINFO = _descriptor.Descriptor( + name='AppEngagementAdInfo', + full_name='google.ads.googleads.v5.common.AppEngagementAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.AppEngagementAdInfo.headlines', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.AppEngagementAdInfo.descriptions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='images', full_name='google.ads.googleads.v5.common.AppEngagementAdInfo.images', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='videos', full_name='google.ads.googleads.v5.common.AppEngagementAdInfo.videos', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6528, + serialized_end=6804, +) + + +_LEGACYAPPINSTALLADINFO = _descriptor.Descriptor( + name='LegacyAppInstallAdInfo', + full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo.app_id', index=0, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_store', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo.app_store', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo.headline', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo.description1', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo.description2', index=4, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_app_id', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo._app_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo._headline', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description1', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo._description1', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_description2', full_name='google.ads.googleads.v5.common.LegacyAppInstallAdInfo._description2', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6807, + serialized_end=7096, +) + + +_RESPONSIVEDISPLAYADINFO = _descriptor.Descriptor( + name='ResponsiveDisplayAdInfo', + full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='marketing_images', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.marketing_images', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='square_marketing_images', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.square_marketing_images', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='logo_images', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.logo_images', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='square_logo_images', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.square_logo_images', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.headlines', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='long_headline', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.long_headline', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.descriptions', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_videos', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.youtube_videos', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.business_name', index=8, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='main_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.main_color', index=9, + number=18, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='accent_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.accent_color', index=10, + number=19, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='allow_flexible_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.allow_flexible_color', index=11, + number=20, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_to_action_text', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.call_to_action_text', index=12, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_prefix', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.price_prefix', index=13, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promo_text', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.promo_text', index=14, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='format_setting', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo.format_setting', index=15, + number=16, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_business_name', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._business_name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_main_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._main_color', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_accent_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._accent_color', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_allow_flexible_color', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._allow_flexible_color', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_to_action_text', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._call_to_action_text', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_price_prefix', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._price_prefix', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_promo_text', full_name='google.ads.googleads.v5.common.ResponsiveDisplayAdInfo._promo_text', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7099, + serialized_end=8123, +) + + +_LOCALADINFO = _descriptor.Descriptor( + name='LocalAdInfo', + full_name='google.ads.googleads.v5.common.LocalAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='headlines', full_name='google.ads.googleads.v5.common.LocalAdInfo.headlines', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptions', full_name='google.ads.googleads.v5.common.LocalAdInfo.descriptions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_to_actions', full_name='google.ads.googleads.v5.common.LocalAdInfo.call_to_actions', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='marketing_images', full_name='google.ads.googleads.v5.common.LocalAdInfo.marketing_images', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='logo_images', full_name='google.ads.googleads.v5.common.LocalAdInfo.logo_images', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='videos', full_name='google.ads.googleads.v5.common.LocalAdInfo.videos', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path1', full_name='google.ads.googleads.v5.common.LocalAdInfo.path1', index=6, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path2', full_name='google.ads.googleads.v5.common.LocalAdInfo.path2', index=7, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_path1', full_name='google.ads.googleads.v5.common.LocalAdInfo._path1', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_path2', full_name='google.ads.googleads.v5.common.LocalAdInfo._path2', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8126, + serialized_end=8601, +) + + +_DISPLAYUPLOADADINFO = _descriptor.Descriptor( + name='DisplayUploadAdInfo', + full_name='google.ads.googleads.v5.common.DisplayUploadAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='display_upload_product_type', full_name='google.ads.googleads.v5.common.DisplayUploadAdInfo.display_upload_product_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_bundle', full_name='google.ads.googleads.v5.common.DisplayUploadAdInfo.media_bundle', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='media_asset', full_name='google.ads.googleads.v5.common.DisplayUploadAdInfo.media_asset', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8604, + serialized_end=8839, +) + +_TEXTADINFO.oneofs_by_name['_headline'].fields.append( + _TEXTADINFO.fields_by_name['headline']) +_TEXTADINFO.fields_by_name['headline'].containing_oneof = _TEXTADINFO.oneofs_by_name['_headline'] +_TEXTADINFO.oneofs_by_name['_description1'].fields.append( + _TEXTADINFO.fields_by_name['description1']) +_TEXTADINFO.fields_by_name['description1'].containing_oneof = _TEXTADINFO.oneofs_by_name['_description1'] +_TEXTADINFO.oneofs_by_name['_description2'].fields.append( + _TEXTADINFO.fields_by_name['description2']) +_TEXTADINFO.fields_by_name['description2'].containing_oneof = _TEXTADINFO.oneofs_by_name['_description2'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part1'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['headline_part1']) +_EXPANDEDTEXTADINFO.fields_by_name['headline_part1'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part1'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part2'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['headline_part2']) +_EXPANDEDTEXTADINFO.fields_by_name['headline_part2'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part2'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part3'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['headline_part3']) +_EXPANDEDTEXTADINFO.fields_by_name['headline_part3'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_headline_part3'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_description'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['description']) +_EXPANDEDTEXTADINFO.fields_by_name['description'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_description'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_description2'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['description2']) +_EXPANDEDTEXTADINFO.fields_by_name['description2'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_description2'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_path1'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['path1']) +_EXPANDEDTEXTADINFO.fields_by_name['path1'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_path1'] +_EXPANDEDTEXTADINFO.oneofs_by_name['_path2'].fields.append( + _EXPANDEDTEXTADINFO.fields_by_name['path2']) +_EXPANDEDTEXTADINFO.fields_by_name['path2'].containing_oneof = _EXPANDEDTEXTADINFO.oneofs_by_name['_path2'] +_CALLONLYADINFO.fields_by_name['conversion_reporting_state'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2._CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE +_CALLONLYADINFO.oneofs_by_name['_country_code'].fields.append( + _CALLONLYADINFO.fields_by_name['country_code']) +_CALLONLYADINFO.fields_by_name['country_code'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_country_code'] +_CALLONLYADINFO.oneofs_by_name['_phone_number'].fields.append( + _CALLONLYADINFO.fields_by_name['phone_number']) +_CALLONLYADINFO.fields_by_name['phone_number'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_phone_number'] +_CALLONLYADINFO.oneofs_by_name['_business_name'].fields.append( + _CALLONLYADINFO.fields_by_name['business_name']) +_CALLONLYADINFO.fields_by_name['business_name'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_business_name'] +_CALLONLYADINFO.oneofs_by_name['_headline1'].fields.append( + _CALLONLYADINFO.fields_by_name['headline1']) +_CALLONLYADINFO.fields_by_name['headline1'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_headline1'] +_CALLONLYADINFO.oneofs_by_name['_headline2'].fields.append( + _CALLONLYADINFO.fields_by_name['headline2']) +_CALLONLYADINFO.fields_by_name['headline2'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_headline2'] +_CALLONLYADINFO.oneofs_by_name['_description1'].fields.append( + _CALLONLYADINFO.fields_by_name['description1']) +_CALLONLYADINFO.fields_by_name['description1'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_description1'] +_CALLONLYADINFO.oneofs_by_name['_description2'].fields.append( + _CALLONLYADINFO.fields_by_name['description2']) +_CALLONLYADINFO.fields_by_name['description2'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_description2'] +_CALLONLYADINFO.oneofs_by_name['_call_tracked'].fields.append( + _CALLONLYADINFO.fields_by_name['call_tracked']) +_CALLONLYADINFO.fields_by_name['call_tracked'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_call_tracked'] +_CALLONLYADINFO.oneofs_by_name['_disable_call_conversion'].fields.append( + _CALLONLYADINFO.fields_by_name['disable_call_conversion']) +_CALLONLYADINFO.fields_by_name['disable_call_conversion'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_disable_call_conversion'] +_CALLONLYADINFO.oneofs_by_name['_phone_number_verification_url'].fields.append( + _CALLONLYADINFO.fields_by_name['phone_number_verification_url']) +_CALLONLYADINFO.fields_by_name['phone_number_verification_url'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_phone_number_verification_url'] +_CALLONLYADINFO.oneofs_by_name['_conversion_action'].fields.append( + _CALLONLYADINFO.fields_by_name['conversion_action']) +_CALLONLYADINFO.fields_by_name['conversion_action'].containing_oneof = _CALLONLYADINFO.oneofs_by_name['_conversion_action'] +_EXPANDEDDYNAMICSEARCHADINFO.oneofs_by_name['_description'].fields.append( + _EXPANDEDDYNAMICSEARCHADINFO.fields_by_name['description']) +_EXPANDEDDYNAMICSEARCHADINFO.fields_by_name['description'].containing_oneof = _EXPANDEDDYNAMICSEARCHADINFO.oneofs_by_name['_description'] +_EXPANDEDDYNAMICSEARCHADINFO.oneofs_by_name['_description2'].fields.append( + _EXPANDEDDYNAMICSEARCHADINFO.fields_by_name['description2']) +_EXPANDEDDYNAMICSEARCHADINFO.fields_by_name['description2'].containing_oneof = _EXPANDEDDYNAMICSEARCHADINFO.oneofs_by_name['_description2'] +_SHOPPINGCOMPARISONLISTINGADINFO.oneofs_by_name['_headline'].fields.append( + _SHOPPINGCOMPARISONLISTINGADINFO.fields_by_name['headline']) +_SHOPPINGCOMPARISONLISTINGADINFO.fields_by_name['headline'].containing_oneof = _SHOPPINGCOMPARISONLISTINGADINFO.oneofs_by_name['_headline'] +_GMAILADINFO.fields_by_name['teaser'].message_type = _GMAILTEASER +_GMAILADINFO.fields_by_name['marketing_image_display_call_to_action'].message_type = _DISPLAYCALLTOACTION +_GMAILADINFO.fields_by_name['product_images'].message_type = _PRODUCTIMAGE +_GMAILADINFO.fields_by_name['product_videos'].message_type = _PRODUCTVIDEO +_GMAILADINFO.oneofs_by_name['_header_image'].fields.append( + _GMAILADINFO.fields_by_name['header_image']) +_GMAILADINFO.fields_by_name['header_image'].containing_oneof = _GMAILADINFO.oneofs_by_name['_header_image'] +_GMAILADINFO.oneofs_by_name['_marketing_image'].fields.append( + _GMAILADINFO.fields_by_name['marketing_image']) +_GMAILADINFO.fields_by_name['marketing_image'].containing_oneof = _GMAILADINFO.oneofs_by_name['_marketing_image'] +_GMAILADINFO.oneofs_by_name['_marketing_image_headline'].fields.append( + _GMAILADINFO.fields_by_name['marketing_image_headline']) +_GMAILADINFO.fields_by_name['marketing_image_headline'].containing_oneof = _GMAILADINFO.oneofs_by_name['_marketing_image_headline'] +_GMAILADINFO.oneofs_by_name['_marketing_image_description'].fields.append( + _GMAILADINFO.fields_by_name['marketing_image_description']) +_GMAILADINFO.fields_by_name['marketing_image_description'].containing_oneof = _GMAILADINFO.oneofs_by_name['_marketing_image_description'] +_GMAILTEASER.oneofs_by_name['_headline'].fields.append( + _GMAILTEASER.fields_by_name['headline']) +_GMAILTEASER.fields_by_name['headline'].containing_oneof = _GMAILTEASER.oneofs_by_name['_headline'] +_GMAILTEASER.oneofs_by_name['_description'].fields.append( + _GMAILTEASER.fields_by_name['description']) +_GMAILTEASER.fields_by_name['description'].containing_oneof = _GMAILTEASER.oneofs_by_name['_description'] +_GMAILTEASER.oneofs_by_name['_business_name'].fields.append( + _GMAILTEASER.fields_by_name['business_name']) +_GMAILTEASER.fields_by_name['business_name'].containing_oneof = _GMAILTEASER.oneofs_by_name['_business_name'] +_GMAILTEASER.oneofs_by_name['_logo_image'].fields.append( + _GMAILTEASER.fields_by_name['logo_image']) +_GMAILTEASER.fields_by_name['logo_image'].containing_oneof = _GMAILTEASER.oneofs_by_name['_logo_image'] +_DISPLAYCALLTOACTION.oneofs_by_name['_text'].fields.append( + _DISPLAYCALLTOACTION.fields_by_name['text']) +_DISPLAYCALLTOACTION.fields_by_name['text'].containing_oneof = _DISPLAYCALLTOACTION.oneofs_by_name['_text'] +_DISPLAYCALLTOACTION.oneofs_by_name['_text_color'].fields.append( + _DISPLAYCALLTOACTION.fields_by_name['text_color']) +_DISPLAYCALLTOACTION.fields_by_name['text_color'].containing_oneof = _DISPLAYCALLTOACTION.oneofs_by_name['_text_color'] +_DISPLAYCALLTOACTION.oneofs_by_name['_url_collection_id'].fields.append( + _DISPLAYCALLTOACTION.fields_by_name['url_collection_id']) +_DISPLAYCALLTOACTION.fields_by_name['url_collection_id'].containing_oneof = _DISPLAYCALLTOACTION.oneofs_by_name['_url_collection_id'] +_PRODUCTIMAGE.fields_by_name['display_call_to_action'].message_type = _DISPLAYCALLTOACTION +_PRODUCTIMAGE.oneofs_by_name['_product_image'].fields.append( + _PRODUCTIMAGE.fields_by_name['product_image']) +_PRODUCTIMAGE.fields_by_name['product_image'].containing_oneof = _PRODUCTIMAGE.oneofs_by_name['_product_image'] +_PRODUCTIMAGE.oneofs_by_name['_description'].fields.append( + _PRODUCTIMAGE.fields_by_name['description']) +_PRODUCTIMAGE.fields_by_name['description'].containing_oneof = _PRODUCTIMAGE.oneofs_by_name['_description'] +_PRODUCTVIDEO.oneofs_by_name['_product_video'].fields.append( + _PRODUCTVIDEO.fields_by_name['product_video']) +_PRODUCTVIDEO.fields_by_name['product_video'].containing_oneof = _PRODUCTVIDEO.oneofs_by_name['_product_video'] +_IMAGEADINFO.fields_by_name['mime_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2._MIMETYPEENUM_MIMETYPE +_IMAGEADINFO.oneofs_by_name['image'].fields.append( + _IMAGEADINFO.fields_by_name['media_file']) +_IMAGEADINFO.fields_by_name['media_file'].containing_oneof = _IMAGEADINFO.oneofs_by_name['image'] +_IMAGEADINFO.oneofs_by_name['image'].fields.append( + _IMAGEADINFO.fields_by_name['data']) +_IMAGEADINFO.fields_by_name['data'].containing_oneof = _IMAGEADINFO.oneofs_by_name['image'] +_IMAGEADINFO.oneofs_by_name['image'].fields.append( + _IMAGEADINFO.fields_by_name['ad_id_to_copy_image_from']) +_IMAGEADINFO.fields_by_name['ad_id_to_copy_image_from'].containing_oneof = _IMAGEADINFO.oneofs_by_name['image'] +_IMAGEADINFO.oneofs_by_name['_pixel_width'].fields.append( + _IMAGEADINFO.fields_by_name['pixel_width']) +_IMAGEADINFO.fields_by_name['pixel_width'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_pixel_width'] +_IMAGEADINFO.oneofs_by_name['_pixel_height'].fields.append( + _IMAGEADINFO.fields_by_name['pixel_height']) +_IMAGEADINFO.fields_by_name['pixel_height'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_pixel_height'] +_IMAGEADINFO.oneofs_by_name['_image_url'].fields.append( + _IMAGEADINFO.fields_by_name['image_url']) +_IMAGEADINFO.fields_by_name['image_url'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_image_url'] +_IMAGEADINFO.oneofs_by_name['_preview_pixel_width'].fields.append( + _IMAGEADINFO.fields_by_name['preview_pixel_width']) +_IMAGEADINFO.fields_by_name['preview_pixel_width'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_preview_pixel_width'] +_IMAGEADINFO.oneofs_by_name['_preview_pixel_height'].fields.append( + _IMAGEADINFO.fields_by_name['preview_pixel_height']) +_IMAGEADINFO.fields_by_name['preview_pixel_height'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_preview_pixel_height'] +_IMAGEADINFO.oneofs_by_name['_preview_image_url'].fields.append( + _IMAGEADINFO.fields_by_name['preview_image_url']) +_IMAGEADINFO.fields_by_name['preview_image_url'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_preview_image_url'] +_IMAGEADINFO.oneofs_by_name['_name'].fields.append( + _IMAGEADINFO.fields_by_name['name']) +_IMAGEADINFO.fields_by_name['name'].containing_oneof = _IMAGEADINFO.oneofs_by_name['_name'] +_VIDEOBUMPERINSTREAMADINFO.oneofs_by_name['_companion_banner'].fields.append( + _VIDEOBUMPERINSTREAMADINFO.fields_by_name['companion_banner']) +_VIDEOBUMPERINSTREAMADINFO.fields_by_name['companion_banner'].containing_oneof = _VIDEOBUMPERINSTREAMADINFO.oneofs_by_name['_companion_banner'] +_VIDEONONSKIPPABLEINSTREAMADINFO.oneofs_by_name['_companion_banner'].fields.append( + _VIDEONONSKIPPABLEINSTREAMADINFO.fields_by_name['companion_banner']) +_VIDEONONSKIPPABLEINSTREAMADINFO.fields_by_name['companion_banner'].containing_oneof = _VIDEONONSKIPPABLEINSTREAMADINFO.oneofs_by_name['_companion_banner'] +_VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_action_button_label'].fields.append( + _VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['action_button_label']) +_VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['action_button_label'].containing_oneof = _VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_action_button_label'] +_VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_action_headline'].fields.append( + _VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['action_headline']) +_VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['action_headline'].containing_oneof = _VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_action_headline'] +_VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_companion_banner'].fields.append( + _VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['companion_banner']) +_VIDEOTRUEVIEWINSTREAMADINFO.fields_by_name['companion_banner'].containing_oneof = _VIDEOTRUEVIEWINSTREAMADINFO.oneofs_by_name['_companion_banner'] +_VIDEOOUTSTREAMADINFO.oneofs_by_name['_headline'].fields.append( + _VIDEOOUTSTREAMADINFO.fields_by_name['headline']) +_VIDEOOUTSTREAMADINFO.fields_by_name['headline'].containing_oneof = _VIDEOOUTSTREAMADINFO.oneofs_by_name['_headline'] +_VIDEOOUTSTREAMADINFO.oneofs_by_name['_description'].fields.append( + _VIDEOOUTSTREAMADINFO.fields_by_name['description']) +_VIDEOOUTSTREAMADINFO.fields_by_name['description'].containing_oneof = _VIDEOOUTSTREAMADINFO.oneofs_by_name['_description'] +_VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_headline'].fields.append( + _VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['headline']) +_VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['headline'].containing_oneof = _VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_headline'] +_VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_description1'].fields.append( + _VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['description1']) +_VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['description1'].containing_oneof = _VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_description1'] +_VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_description2'].fields.append( + _VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['description2']) +_VIDEOTRUEVIEWDISCOVERYADINFO.fields_by_name['description2'].containing_oneof = _VIDEOTRUEVIEWDISCOVERYADINFO.oneofs_by_name['_description2'] +_VIDEOADINFO.fields_by_name['in_stream'].message_type = _VIDEOTRUEVIEWINSTREAMADINFO +_VIDEOADINFO.fields_by_name['bumper'].message_type = _VIDEOBUMPERINSTREAMADINFO +_VIDEOADINFO.fields_by_name['out_stream'].message_type = _VIDEOOUTSTREAMADINFO +_VIDEOADINFO.fields_by_name['non_skippable'].message_type = _VIDEONONSKIPPABLEINSTREAMADINFO +_VIDEOADINFO.fields_by_name['discovery'].message_type = _VIDEOTRUEVIEWDISCOVERYADINFO +_VIDEOADINFO.oneofs_by_name['format'].fields.append( + _VIDEOADINFO.fields_by_name['in_stream']) +_VIDEOADINFO.fields_by_name['in_stream'].containing_oneof = _VIDEOADINFO.oneofs_by_name['format'] +_VIDEOADINFO.oneofs_by_name['format'].fields.append( + _VIDEOADINFO.fields_by_name['bumper']) +_VIDEOADINFO.fields_by_name['bumper'].containing_oneof = _VIDEOADINFO.oneofs_by_name['format'] +_VIDEOADINFO.oneofs_by_name['format'].fields.append( + _VIDEOADINFO.fields_by_name['out_stream']) +_VIDEOADINFO.fields_by_name['out_stream'].containing_oneof = _VIDEOADINFO.oneofs_by_name['format'] +_VIDEOADINFO.oneofs_by_name['format'].fields.append( + _VIDEOADINFO.fields_by_name['non_skippable']) +_VIDEOADINFO.fields_by_name['non_skippable'].containing_oneof = _VIDEOADINFO.oneofs_by_name['format'] +_VIDEOADINFO.oneofs_by_name['format'].fields.append( + _VIDEOADINFO.fields_by_name['discovery']) +_VIDEOADINFO.fields_by_name['discovery'].containing_oneof = _VIDEOADINFO.oneofs_by_name['format'] +_VIDEOADINFO.oneofs_by_name['_media_file'].fields.append( + _VIDEOADINFO.fields_by_name['media_file']) +_VIDEOADINFO.fields_by_name['media_file'].containing_oneof = _VIDEOADINFO.oneofs_by_name['_media_file'] +_VIDEORESPONSIVEADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_VIDEORESPONSIVEADINFO.fields_by_name['long_headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_VIDEORESPONSIVEADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_VIDEORESPONSIVEADINFO.fields_by_name['call_to_actions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_VIDEORESPONSIVEADINFO.fields_by_name['videos'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADVIDEOASSET +_VIDEORESPONSIVEADINFO.fields_by_name['companion_banners'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_RESPONSIVESEARCHADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_RESPONSIVESEARCHADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_RESPONSIVESEARCHADINFO.oneofs_by_name['_path1'].fields.append( + _RESPONSIVESEARCHADINFO.fields_by_name['path1']) +_RESPONSIVESEARCHADINFO.fields_by_name['path1'].containing_oneof = _RESPONSIVESEARCHADINFO.oneofs_by_name['_path1'] +_RESPONSIVESEARCHADINFO.oneofs_by_name['_path2'].fields.append( + _RESPONSIVESEARCHADINFO.fields_by_name['path2']) +_RESPONSIVESEARCHADINFO.fields_by_name['path2'].containing_oneof = _RESPONSIVESEARCHADINFO.oneofs_by_name['_path2'] +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['format_setting'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__ad__format__setting__pb2._DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_short_headline'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['short_headline']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['short_headline'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_short_headline'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_long_headline'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['long_headline']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['long_headline'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_long_headline'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_description'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['description']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['description'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_description'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_business_name'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['business_name']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['business_name'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_business_name'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_allow_flexible_color'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['allow_flexible_color']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['allow_flexible_color'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_allow_flexible_color'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_accent_color'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['accent_color']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['accent_color'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_accent_color'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_main_color'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['main_color']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['main_color'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_main_color'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_call_to_action_text'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['call_to_action_text']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['call_to_action_text'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_call_to_action_text'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_logo_image'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['logo_image']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['logo_image'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_logo_image'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_square_logo_image'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['square_logo_image']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['square_logo_image'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_square_logo_image'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_marketing_image'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['marketing_image']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['marketing_image'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_marketing_image'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_square_marketing_image'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['square_marketing_image']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['square_marketing_image'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_square_marketing_image'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_price_prefix'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['price_prefix']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['price_prefix'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_price_prefix'] +_LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_promo_text'].fields.append( + _LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['promo_text']) +_LEGACYRESPONSIVEDISPLAYADINFO.fields_by_name['promo_text'].containing_oneof = _LEGACYRESPONSIVEDISPLAYADINFO.oneofs_by_name['_promo_text'] +_APPADINFO.fields_by_name['mandatory_ad_text'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_APPADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_APPADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_APPADINFO.fields_by_name['images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_APPADINFO.fields_by_name['youtube_videos'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADVIDEOASSET +_APPADINFO.fields_by_name['html5_media_bundles'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADMEDIABUNDLEASSET +_APPENGAGEMENTADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_APPENGAGEMENTADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_APPENGAGEMENTADINFO.fields_by_name['images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_APPENGAGEMENTADINFO.fields_by_name['videos'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADVIDEOASSET +_LEGACYAPPINSTALLADINFO.fields_by_name['app_store'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_legacy__app__install__ad__app__store__pb2._LEGACYAPPINSTALLADAPPSTOREENUM_LEGACYAPPINSTALLADAPPSTORE +_LEGACYAPPINSTALLADINFO.oneofs_by_name['_app_id'].fields.append( + _LEGACYAPPINSTALLADINFO.fields_by_name['app_id']) +_LEGACYAPPINSTALLADINFO.fields_by_name['app_id'].containing_oneof = _LEGACYAPPINSTALLADINFO.oneofs_by_name['_app_id'] +_LEGACYAPPINSTALLADINFO.oneofs_by_name['_headline'].fields.append( + _LEGACYAPPINSTALLADINFO.fields_by_name['headline']) +_LEGACYAPPINSTALLADINFO.fields_by_name['headline'].containing_oneof = _LEGACYAPPINSTALLADINFO.oneofs_by_name['_headline'] +_LEGACYAPPINSTALLADINFO.oneofs_by_name['_description1'].fields.append( + _LEGACYAPPINSTALLADINFO.fields_by_name['description1']) +_LEGACYAPPINSTALLADINFO.fields_by_name['description1'].containing_oneof = _LEGACYAPPINSTALLADINFO.oneofs_by_name['_description1'] +_LEGACYAPPINSTALLADINFO.oneofs_by_name['_description2'].fields.append( + _LEGACYAPPINSTALLADINFO.fields_by_name['description2']) +_LEGACYAPPINSTALLADINFO.fields_by_name['description2'].containing_oneof = _LEGACYAPPINSTALLADINFO.oneofs_by_name['_description2'] +_RESPONSIVEDISPLAYADINFO.fields_by_name['marketing_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['square_marketing_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['logo_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['square_logo_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['long_headline'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['youtube_videos'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADVIDEOASSET +_RESPONSIVEDISPLAYADINFO.fields_by_name['format_setting'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__ad__format__setting__pb2._DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_business_name'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['business_name']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['business_name'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_business_name'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_main_color'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['main_color']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['main_color'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_main_color'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_accent_color'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['accent_color']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['accent_color'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_accent_color'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_allow_flexible_color'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['allow_flexible_color']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['allow_flexible_color'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_allow_flexible_color'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_call_to_action_text'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['call_to_action_text']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['call_to_action_text'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_call_to_action_text'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_price_prefix'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['price_prefix']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['price_prefix'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_price_prefix'] +_RESPONSIVEDISPLAYADINFO.oneofs_by_name['_promo_text'].fields.append( + _RESPONSIVEDISPLAYADINFO.fields_by_name['promo_text']) +_RESPONSIVEDISPLAYADINFO.fields_by_name['promo_text'].containing_oneof = _RESPONSIVEDISPLAYADINFO.oneofs_by_name['_promo_text'] +_LOCALADINFO.fields_by_name['headlines'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_LOCALADINFO.fields_by_name['descriptions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_LOCALADINFO.fields_by_name['call_to_actions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADTEXTASSET +_LOCALADINFO.fields_by_name['marketing_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_LOCALADINFO.fields_by_name['logo_images'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADIMAGEASSET +_LOCALADINFO.fields_by_name['videos'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADVIDEOASSET +_LOCALADINFO.oneofs_by_name['_path1'].fields.append( + _LOCALADINFO.fields_by_name['path1']) +_LOCALADINFO.fields_by_name['path1'].containing_oneof = _LOCALADINFO.oneofs_by_name['_path1'] +_LOCALADINFO.oneofs_by_name['_path2'].fields.append( + _LOCALADINFO.fields_by_name['path2']) +_LOCALADINFO.fields_by_name['path2'].containing_oneof = _LOCALADINFO.oneofs_by_name['_path2'] +_DISPLAYUPLOADADINFO.fields_by_name['display_upload_product_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_display__upload__product__type__pb2._DISPLAYUPLOADPRODUCTTYPEENUM_DISPLAYUPLOADPRODUCTTYPE +_DISPLAYUPLOADADINFO.fields_by_name['media_bundle'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__asset__pb2._ADMEDIABUNDLEASSET +_DISPLAYUPLOADADINFO.oneofs_by_name['media_asset'].fields.append( + _DISPLAYUPLOADADINFO.fields_by_name['media_bundle']) +_DISPLAYUPLOADADINFO.fields_by_name['media_bundle'].containing_oneof = _DISPLAYUPLOADADINFO.oneofs_by_name['media_asset'] +DESCRIPTOR.message_types_by_name['TextAdInfo'] = _TEXTADINFO +DESCRIPTOR.message_types_by_name['ExpandedTextAdInfo'] = _EXPANDEDTEXTADINFO +DESCRIPTOR.message_types_by_name['CallOnlyAdInfo'] = _CALLONLYADINFO +DESCRIPTOR.message_types_by_name['ExpandedDynamicSearchAdInfo'] = _EXPANDEDDYNAMICSEARCHADINFO +DESCRIPTOR.message_types_by_name['HotelAdInfo'] = _HOTELADINFO +DESCRIPTOR.message_types_by_name['ShoppingSmartAdInfo'] = _SHOPPINGSMARTADINFO +DESCRIPTOR.message_types_by_name['ShoppingProductAdInfo'] = _SHOPPINGPRODUCTADINFO +DESCRIPTOR.message_types_by_name['ShoppingComparisonListingAdInfo'] = _SHOPPINGCOMPARISONLISTINGADINFO +DESCRIPTOR.message_types_by_name['GmailAdInfo'] = _GMAILADINFO +DESCRIPTOR.message_types_by_name['GmailTeaser'] = _GMAILTEASER +DESCRIPTOR.message_types_by_name['DisplayCallToAction'] = _DISPLAYCALLTOACTION +DESCRIPTOR.message_types_by_name['ProductImage'] = _PRODUCTIMAGE +DESCRIPTOR.message_types_by_name['ProductVideo'] = _PRODUCTVIDEO +DESCRIPTOR.message_types_by_name['ImageAdInfo'] = _IMAGEADINFO +DESCRIPTOR.message_types_by_name['VideoBumperInStreamAdInfo'] = _VIDEOBUMPERINSTREAMADINFO +DESCRIPTOR.message_types_by_name['VideoNonSkippableInStreamAdInfo'] = _VIDEONONSKIPPABLEINSTREAMADINFO +DESCRIPTOR.message_types_by_name['VideoTrueViewInStreamAdInfo'] = _VIDEOTRUEVIEWINSTREAMADINFO +DESCRIPTOR.message_types_by_name['VideoOutstreamAdInfo'] = _VIDEOOUTSTREAMADINFO +DESCRIPTOR.message_types_by_name['VideoTrueViewDiscoveryAdInfo'] = _VIDEOTRUEVIEWDISCOVERYADINFO +DESCRIPTOR.message_types_by_name['VideoAdInfo'] = _VIDEOADINFO +DESCRIPTOR.message_types_by_name['VideoResponsiveAdInfo'] = _VIDEORESPONSIVEADINFO +DESCRIPTOR.message_types_by_name['ResponsiveSearchAdInfo'] = _RESPONSIVESEARCHADINFO +DESCRIPTOR.message_types_by_name['LegacyResponsiveDisplayAdInfo'] = _LEGACYRESPONSIVEDISPLAYADINFO +DESCRIPTOR.message_types_by_name['AppAdInfo'] = _APPADINFO +DESCRIPTOR.message_types_by_name['AppEngagementAdInfo'] = _APPENGAGEMENTADINFO +DESCRIPTOR.message_types_by_name['LegacyAppInstallAdInfo'] = _LEGACYAPPINSTALLADINFO +DESCRIPTOR.message_types_by_name['ResponsiveDisplayAdInfo'] = _RESPONSIVEDISPLAYADINFO +DESCRIPTOR.message_types_by_name['LocalAdInfo'] = _LOCALADINFO +DESCRIPTOR.message_types_by_name['DisplayUploadAdInfo'] = _DISPLAYUPLOADADINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TextAdInfo = _reflection.GeneratedProtocolMessageType('TextAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _TEXTADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A text ad. + + Attributes: + headline: + The headline of the ad. + description1: + The first line of the ad's description. + description2: + The second line of the ad's description. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TextAdInfo) + }) +_sym_db.RegisterMessage(TextAdInfo) + +ExpandedTextAdInfo = _reflection.GeneratedProtocolMessageType('ExpandedTextAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _EXPANDEDTEXTADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """An expanded text ad. + + Attributes: + headline_part1: + The first part of the ad's headline. + headline_part2: + The second part of the ad's headline. + headline_part3: + The third part of the ad's headline. + description: + The description of the ad. + description2: + The second description of the ad. + path1: + The text that can appear alongside the ad's displayed URL. + path2: + Additional text that can appear alongside the ad's displayed + URL. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ExpandedTextAdInfo) + }) +_sym_db.RegisterMessage(ExpandedTextAdInfo) + +CallOnlyAdInfo = _reflection.GeneratedProtocolMessageType('CallOnlyAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _CALLONLYADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A call-only ad. + + Attributes: + country_code: + The country code in the ad. + phone_number: + The phone number in the ad. + business_name: + The business name in the ad. + headline1: + First headline in the ad. + headline2: + Second headline in the ad. + description1: + The first line of the ad's description. + description2: + The second line of the ad's description. + call_tracked: + Whether to enable call tracking for the creative. Enabling + call tracking also enables call conversions. + disable_call_conversion: + Whether to disable call conversion for the creative. If set to + ``true``, disables call conversions even when ``call_tracked`` + is ``true``. If ``call_tracked`` is ``false``, this field is + ignored. + phone_number_verification_url: + The URL to be used for phone number verification. + conversion_action: + The conversion action to attribute a call conversion to. If + not set a default conversion action is used. This field only + has effect if call\_tracked is set to true. Otherwise this + field is ignored. + conversion_reporting_state: + The call conversion behavior of this call only ad. It can use + its own call conversion setting, inherit the account level + setting, or be disabled. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CallOnlyAdInfo) + }) +_sym_db.RegisterMessage(CallOnlyAdInfo) + +ExpandedDynamicSearchAdInfo = _reflection.GeneratedProtocolMessageType('ExpandedDynamicSearchAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _EXPANDEDDYNAMICSEARCHADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """An expanded dynamic search ad. + + Attributes: + description: + The description of the ad. + description2: + The second description of the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfo) + }) +_sym_db.RegisterMessage(ExpandedDynamicSearchAdInfo) + +HotelAdInfo = _reflection.GeneratedProtocolMessageType('HotelAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A hotel ad.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelAdInfo) + }) +_sym_db.RegisterMessage(HotelAdInfo) + +ShoppingSmartAdInfo = _reflection.GeneratedProtocolMessageType('ShoppingSmartAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _SHOPPINGSMARTADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A Smart Shopping ad.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ShoppingSmartAdInfo) + }) +_sym_db.RegisterMessage(ShoppingSmartAdInfo) + +ShoppingProductAdInfo = _reflection.GeneratedProtocolMessageType('ShoppingProductAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _SHOPPINGPRODUCTADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A standard Shopping ad.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ShoppingProductAdInfo) + }) +_sym_db.RegisterMessage(ShoppingProductAdInfo) + +ShoppingComparisonListingAdInfo = _reflection.GeneratedProtocolMessageType('ShoppingComparisonListingAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _SHOPPINGCOMPARISONLISTINGADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A Shopping Comparison Listing ad. + + Attributes: + headline: + Headline of the ad. This field is required. Allowed length is + between 25 and 45 characters. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ShoppingComparisonListingAdInfo) + }) +_sym_db.RegisterMessage(ShoppingComparisonListingAdInfo) + +GmailAdInfo = _reflection.GeneratedProtocolMessageType('GmailAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _GMAILADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A Gmail ad. + + Attributes: + teaser: + The Gmail teaser. + header_image: + The MediaFile resource name of the header image. Valid image + types are GIF, JPEG and PNG. The minimum size is 300x100 + pixels and the aspect ratio must be between 3:1 and 5:1 + (+-1%). + marketing_image: + The MediaFile resource name of the marketing image. Valid + image types are GIF, JPEG and PNG. The image must either be + landscape with a minimum size of 600x314 pixels and aspect + ratio of 600:314 (+-1%) or square with a minimum size of + 300x300 pixels and aspect ratio of 1:1 (+-1%) + marketing_image_headline: + Headline of the marketing image. + marketing_image_description: + Description of the marketing image. + marketing_image_display_call_to_action: + Display-call-to-action of the marketing image. + product_images: + Product images. Up to 15 images are supported. + product_videos: + Product videos. Up to 7 videos are supported. At least one + product video or a marketing image must be specified. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.GmailAdInfo) + }) +_sym_db.RegisterMessage(GmailAdInfo) + +GmailTeaser = _reflection.GeneratedProtocolMessageType('GmailTeaser', (_message.Message,), { + 'DESCRIPTOR' : _GMAILTEASER, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Gmail teaser data. The teaser is a small header that acts as an + invitation to view the rest of the ad (the body). + + Attributes: + headline: + Headline of the teaser. + description: + Description of the teaser. + business_name: + Business name of the advertiser. + logo_image: + The MediaFile resource name of the logo image. Valid image + types are GIF, JPEG and PNG. The minimum size is 144x144 + pixels and the aspect ratio must be 1:1 (+-1%). + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.GmailTeaser) + }) +_sym_db.RegisterMessage(GmailTeaser) + +DisplayCallToAction = _reflection.GeneratedProtocolMessageType('DisplayCallToAction', (_message.Message,), { + 'DESCRIPTOR' : _DISPLAYCALLTOACTION, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Data for display call to action. The call to action is a piece of the + ad that prompts the user to do something. Like clicking a link or + making a phone call. + + Attributes: + text: + Text for the display-call-to-action. + text_color: + Text color for the display-call-to-action in hexadecimal, e.g. + #ffffff for white. + url_collection_id: + Identifies the url collection in the ad.url\_collections + field. If not set the url defaults to final\_url. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.DisplayCallToAction) + }) +_sym_db.RegisterMessage(DisplayCallToAction) + +ProductImage = _reflection.GeneratedProtocolMessageType('ProductImage', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTIMAGE, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Product image specific data. + + Attributes: + product_image: + The MediaFile resource name of the product image. Valid image + types are GIF, JPEG and PNG. The minimum size is 300x300 + pixels and the aspect ratio must be 1:1 (+-1%). + description: + Description of the product. + display_call_to_action: + Display-call-to-action of the product image. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductImage) + }) +_sym_db.RegisterMessage(ProductImage) + +ProductVideo = _reflection.GeneratedProtocolMessageType('ProductVideo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTVIDEO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Product video specific data. + + Attributes: + product_video: + The MediaFile resource name of a video which must be hosted on + YouTube. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductVideo) + }) +_sym_db.RegisterMessage(ProductVideo) + +ImageAdInfo = _reflection.GeneratedProtocolMessageType('ImageAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _IMAGEADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """An image ad. + + Attributes: + pixel_width: + Width in pixels of the full size image. + pixel_height: + Height in pixels of the full size image. + image_url: + URL of the full size image. + preview_pixel_width: + Width in pixels of the preview size image. + preview_pixel_height: + Height in pixels of the preview size image. + preview_image_url: + URL of the preview size image. + mime_type: + The mime type of the image. + name: + The name of the image. If the image was created from a + MediaFile, this is the MediaFile's name. If the image was + created from bytes, this is empty. + image: + The image to create the ImageAd from. This can be specified in + one of two ways. 1. An existing MediaFile resource. 2. The raw + image data as bytes. + media_file: + The MediaFile resource to use for the image. + data: + Raw image data as bytes. + ad_id_to_copy_image_from: + An ad ID to copy the image from. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ImageAdInfo) + }) +_sym_db.RegisterMessage(ImageAdInfo) + +VideoBumperInStreamAdInfo = _reflection.GeneratedProtocolMessageType('VideoBumperInStreamAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEOBUMPERINSTREAMADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Representation of video bumper in-stream ad format (very short in- + stream non-skippable video ad). + + Attributes: + companion_banner: + The MediaFile resource name of the companion banner used with + the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoBumperInStreamAdInfo) + }) +_sym_db.RegisterMessage(VideoBumperInStreamAdInfo) + +VideoNonSkippableInStreamAdInfo = _reflection.GeneratedProtocolMessageType('VideoNonSkippableInStreamAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEONONSKIPPABLEINSTREAMADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Representation of video non-skippable in-stream ad format (15 second + in-stream non-skippable video ad). + + Attributes: + companion_banner: + The MediaFile resource name of the companion banner used with + the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoNonSkippableInStreamAdInfo) + }) +_sym_db.RegisterMessage(VideoNonSkippableInStreamAdInfo) + +VideoTrueViewInStreamAdInfo = _reflection.GeneratedProtocolMessageType('VideoTrueViewInStreamAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEOTRUEVIEWINSTREAMADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Representation of video TrueView in-stream ad format (ad shown during + video playback, often at beginning, which displays a skip button a few + seconds into the video). + + Attributes: + action_button_label: + Label on the CTA (call-to-action) button taking the user to + the video ad's final URL. Required for TrueView for action + campaigns, optional otherwise. + action_headline: + Additional text displayed with the CTA (call-to-action) button + to give context and encourage clicking on the button. + companion_banner: + The MediaFile resource name of the companion banner used with + the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoTrueViewInStreamAdInfo) + }) +_sym_db.RegisterMessage(VideoTrueViewInStreamAdInfo) + +VideoOutstreamAdInfo = _reflection.GeneratedProtocolMessageType('VideoOutstreamAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEOOUTSTREAMADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Representation of video out-stream ad format (ad shown alongside a + feed with automatic playback, without sound). + + Attributes: + headline: + The headline of the ad. + description: + The description line. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoOutstreamAdInfo) + }) +_sym_db.RegisterMessage(VideoOutstreamAdInfo) + +VideoTrueViewDiscoveryAdInfo = _reflection.GeneratedProtocolMessageType('VideoTrueViewDiscoveryAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEOTRUEVIEWDISCOVERYADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """Representation of video TrueView discovery ad format. + + Attributes: + headline: + The headline of the ad. + description1: + First text line for a TrueView video discovery ad. + description2: + Second text line for a TrueView video discovery ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoTrueViewDiscoveryAdInfo) + }) +_sym_db.RegisterMessage(VideoTrueViewDiscoveryAdInfo) + +VideoAdInfo = _reflection.GeneratedProtocolMessageType('VideoAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEOADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A video ad. + + Attributes: + media_file: + The MediaFile resource to use for the video. + format: + Format-specific schema for the different video formats. + in_stream: + Video TrueView in-stream ad format. + bumper: + Video bumper in-stream ad format. + out_stream: + Video out-stream ad format. + non_skippable: + Video non-skippable in-stream ad format. + discovery: + Video TrueView discovery ad format. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoAdInfo) + }) +_sym_db.RegisterMessage(VideoAdInfo) + +VideoResponsiveAdInfo = _reflection.GeneratedProtocolMessageType('VideoResponsiveAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _VIDEORESPONSIVEADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A video responsive ad. + + Attributes: + headlines: + List of text assets used for the short headline, e.g. the + "Call To Action" banner. Currently, only a single value for + the short headline is supported. + long_headlines: + List of text assets used for the long headline. Currently, + only a single value for the long headline is supported. + descriptions: + List of text assets used for the description. Currently, only + a single value for the description is supported. + call_to_actions: + List of text assets used for the button, e.g. the "Call To + Action" button. Currently, only a single value for the button + is supported. + videos: + List of YouTube video assets used for the ad. Currently, only + a single value for the YouTube video asset is supported. + companion_banners: + List of image assets used for the companion banner. Currently, + only a single value for the companion banner asset is + supported. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.VideoResponsiveAdInfo) + }) +_sym_db.RegisterMessage(VideoResponsiveAdInfo) + +ResponsiveSearchAdInfo = _reflection.GeneratedProtocolMessageType('ResponsiveSearchAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _RESPONSIVESEARCHADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A responsive search ad. Responsive search ads let you create an ad + that adapts to show more text, and more relevant messages, to your + customers. Enter multiple headlines and descriptions when creating a + responsive search ad, and over time, Google Ads will automatically + test different combinations and learn which combinations perform best. + By adapting your ad's content to more closely match potential + customers' search terms, responsive search ads may improve your + campaign's performance. More information at + https://support.google.com/google-ads/answer/7684791 + + Attributes: + headlines: + List of text assets for headlines. When the ad serves the + headlines will be selected from this list. + descriptions: + List of text assets for descriptions. When the ad serves the + descriptions will be selected from this list. + path1: + First part of text that may appear appended to the url + displayed in the ad. + path2: + Second part of text that may appear appended to the url + displayed in the ad. This field can only be set when path1 is + also set. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ResponsiveSearchAdInfo) + }) +_sym_db.RegisterMessage(ResponsiveSearchAdInfo) + +LegacyResponsiveDisplayAdInfo = _reflection.GeneratedProtocolMessageType('LegacyResponsiveDisplayAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _LEGACYRESPONSIVEDISPLAYADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A legacy responsive display ad. Ads of this type are labeled + 'Responsive ads' in the Google Ads UI. + + Attributes: + short_headline: + The short version of the ad's headline. + long_headline: + The long version of the ad's headline. + description: + The description of the ad. + business_name: + The business name in the ad. + allow_flexible_color: + Advertiser's consent to allow flexible color. When true, the + ad may be served with different color if necessary. When + false, the ad will be served with the specified colors or a + neutral color. The default value is true. Must be true if + main\_color and accent\_color are not set. + accent_color: + The accent color of the ad in hexadecimal, e.g. #ffffff for + white. If one of main\_color and accent\_color is set, the + other is required as well. + main_color: + The main color of the ad in hexadecimal, e.g. #ffffff for + white. If one of main\_color and accent\_color is set, the + other is required as well. + call_to_action_text: + The call-to-action text for the ad. + logo_image: + The MediaFile resource name of the logo image used in the ad. + square_logo_image: + The MediaFile resource name of the square logo image used in + the ad. + marketing_image: + The MediaFile resource name of the marketing image used in the + ad. + square_marketing_image: + The MediaFile resource name of the square marketing image used + in the ad. + format_setting: + Specifies which format the ad will be served in. Default is + ALL\_FORMATS. + price_prefix: + Prefix before price. E.g. 'as low as'. + promo_text: + Promotion text used for dyanmic formats of responsive ads. For + example 'Free two-day shipping'. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfo) + }) +_sym_db.RegisterMessage(LegacyResponsiveDisplayAdInfo) + +AppAdInfo = _reflection.GeneratedProtocolMessageType('AppAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _APPADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """An app ad. + + Attributes: + mandatory_ad_text: + An optional text asset that, if specified, must always be + displayed when the ad is served. + headlines: + List of text assets for headlines. When the ad serves the + headlines will be selected from this list. + descriptions: + List of text assets for descriptions. When the ad serves the + descriptions will be selected from this list. + images: + List of image assets that may be displayed with the ad. + youtube_videos: + List of YouTube video assets that may be displayed with the + ad. + html5_media_bundles: + List of media bundle assets that may be used with the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AppAdInfo) + }) +_sym_db.RegisterMessage(AppAdInfo) + +AppEngagementAdInfo = _reflection.GeneratedProtocolMessageType('AppEngagementAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _APPENGAGEMENTADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """App engagement ads allow you to write text encouraging a specific + action in the app, like checking in, making a purchase, or booking a + flight. They allow you to send users to a specific part of your app + where they can find what they're looking for easier and faster. + + Attributes: + headlines: + List of text assets for headlines. When the ad serves the + headlines will be selected from this list. + descriptions: + List of text assets for descriptions. When the ad serves the + descriptions will be selected from this list. + images: + List of image assets that may be displayed with the ad. + videos: + List of video assets that may be displayed with the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AppEngagementAdInfo) + }) +_sym_db.RegisterMessage(AppEngagementAdInfo) + +LegacyAppInstallAdInfo = _reflection.GeneratedProtocolMessageType('LegacyAppInstallAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _LEGACYAPPINSTALLADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A legacy app install ad that only can be used by a few select + customers. + + Attributes: + app_id: + The id of the mobile app. + app_store: + The app store the mobile app is available in. + headline: + The headline of the ad. + description1: + The first description line of the ad. + description2: + The second description line of the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LegacyAppInstallAdInfo) + }) +_sym_db.RegisterMessage(LegacyAppInstallAdInfo) + +ResponsiveDisplayAdInfo = _reflection.GeneratedProtocolMessageType('ResponsiveDisplayAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _RESPONSIVEDISPLAYADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A responsive display ad. + + Attributes: + marketing_images: + Marketing images to be used in the ad. Valid image types are + GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect + ratio must be 1.91:1 (+-1%). At least one marketing\_image is + required. Combined with square\_marketing\_images the maximum + is 15. + square_marketing_images: + Square marketing images to be used in the ad. Valid image + types are GIF, JPEG, and PNG. The minimum size is 300x300 and + the aspect ratio must be 1:1 (+-1%). At least one square + marketing\_image is required. Combined with marketing\_images + the maximum is 15. + logo_images: + Logo images to be used in the ad. Valid image types are GIF, + JPEG, and PNG. The minimum size is 512x128 and the aspect + ratio must be 4:1 (+-1%). Combined with square\_logo\_images + the maximum is 5. + square_logo_images: + Square logo images to be used in the ad. Valid image types are + GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect + ratio must be 1:1 (+-1%). Combined with square\_logo\_images + the maximum is 5. + headlines: + Short format headlines for the ad. The maximum length is 30 + characters. At least 1 and max 5 headlines can be specified. + long_headline: + A required long format headline. The maximum length is 90 + characters. + descriptions: + Descriptive texts for the ad. The maximum length is 90 + characters. At least 1 and max 5 headlines can be specified. + youtube_videos: + Optional YouTube videos for the ad. A maximum of 5 videos can + be specified. + business_name: + The advertiser/brand name. Maximum display width is 25. + main_color: + The main color of the ad in hexadecimal, e.g. #ffffff for + white. If one of main\_color and accent\_color is set, the + other is required as well. + accent_color: + The accent color of the ad in hexadecimal, e.g. #ffffff for + white. If one of main\_color and accent\_color is set, the + other is required as well. + allow_flexible_color: + Advertiser's consent to allow flexible color. When true, the + ad may be served with different color if necessary. When + false, the ad will be served with the specified colors or a + neutral color. The default value is true. Must be true if + main\_color and accent\_color are not set. + call_to_action_text: + The call-to-action text for the ad. Maximum display width is + 30. + price_prefix: + Prefix before price. E.g. 'as low as'. + promo_text: + Promotion text used for dyanmic formats of responsive ads. For + example 'Free two-day shipping'. + format_setting: + Specifies which format the ad will be served in. Default is + ALL\_FORMATS. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ResponsiveDisplayAdInfo) + }) +_sym_db.RegisterMessage(ResponsiveDisplayAdInfo) + +LocalAdInfo = _reflection.GeneratedProtocolMessageType('LocalAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _LOCALADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A local ad. + + Attributes: + headlines: + List of text assets for headlines. When the ad serves the + headlines will be selected from this list. At least 1 and at + most 5 headlines must be specified. + descriptions: + List of text assets for descriptions. When the ad serves the + descriptions will be selected from this list. At least 1 and + at most 5 descriptions must be specified. + call_to_actions: + List of text assets for call-to-actions. When the ad serves + the call-to-actions will be selected from this list. Call-to- + actions are optional and at most 5 can be specified. + marketing_images: + List of marketing image assets that may be displayed with the + ad. The images must be 314x600 pixels or 320x320 pixels. At + least 1 and at most 20 image assets must be specified. + logo_images: + List of logo image assets that may be displayed with the ad. + The images must be 128x128 pixels and not larger than 120KB. + At least 1 and at most 5 image assets must be specified. + videos: + List of YouTube video assets that may be displayed with the + ad. Videos are optional and at most 20 can be specified. + path1: + First part of optional text that may appear appended to the + url displayed in the ad. + path2: + Second part of optional text that may appear appended to the + url displayed in the ad. This field can only be set when path1 + is also set. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LocalAdInfo) + }) +_sym_db.RegisterMessage(LocalAdInfo) + +DisplayUploadAdInfo = _reflection.GeneratedProtocolMessageType('DisplayUploadAdInfo', (_message.Message,), { + 'DESCRIPTOR' : _DISPLAYUPLOADADINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.ad_type_infos_pb2' + , + '__doc__': """A generic type of display ad. The exact ad format is controlled by the + display\_upload\_product\_type field, which determines what kinds of + data need to be included with the ad. + + Attributes: + display_upload_product_type: + The product type of this ad. See comments on the enum for + details. + media_asset: + The asset data that makes up the ad. + media_bundle: + A media bundle asset to be used in the ad. For information + about the media bundle for HTML5\_UPLOAD\_AD see + https://support.google.com/google-ads/answer/1722096 Media + bundles that are part of dynamic product types use a special + format that needs to be created through the Google Web + Designer. See + https://support.google.com/webdesigner/answer/7543898 for more + information. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.DisplayUploadAdInfo) + }) +_sym_db.RegisterMessage(DisplayUploadAdInfo) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/ad_type_infos_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/asset_types_pb2.py b/google/ads/google_ads/v5/proto/common/asset_types_pb2.py new file mode 100644 index 000000000..98005489f --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/asset_types_pb2.py @@ -0,0 +1,422 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/asset_types.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import mime_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/asset_types.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\017AssetTypesProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/common/asset_types.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x33google/ads/googleads_v5/proto/enums/mime_type.proto\x1a\x1cgoogle/api/annotations.proto\"G\n\x11YoutubeVideoAsset\x12\x1d\n\x10youtube_video_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_youtube_video_id\".\n\x10MediaBundleAsset\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x42\x07\n\x05_data\"\xda\x01\n\nImageAsset\x12\x11\n\x04\x64\x61ta\x18\x05 \x01(\x0cH\x00\x88\x01\x01\x12\x16\n\tfile_size\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12G\n\tmime_type\x18\x03 \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.MimeTypeEnum.MimeType\x12\x41\n\tfull_size\x18\x04 \x01(\x0b\x32..google.ads.googleads.v5.common.ImageDimensionB\x07\n\x05_dataB\x0c\n\n_file_size\"\x84\x01\n\x0eImageDimension\x12\x1a\n\rheight_pixels\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x19\n\x0cwidth_pixels\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x03url\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_height_pixelsB\x0f\n\r_width_pixelsB\x06\n\x04_url\"\'\n\tTextAsset\x12\x11\n\x04text\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_text\"\x13\n\x11\x42ookOnGoogleAssetB\xea\x01\n\"com.google.ads.googleads.v5.commonB\x0f\x41ssetTypesProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_YOUTUBEVIDEOASSET = _descriptor.Descriptor( + name='YoutubeVideoAsset', + full_name='google.ads.googleads.v5.common.YoutubeVideoAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='youtube_video_id', full_name='google.ads.googleads.v5.common.YoutubeVideoAsset.youtube_video_id', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_youtube_video_id', full_name='google.ads.googleads.v5.common.YoutubeVideoAsset._youtube_video_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=173, + serialized_end=244, +) + + +_MEDIABUNDLEASSET = _descriptor.Descriptor( + name='MediaBundleAsset', + full_name='google.ads.googleads.v5.common.MediaBundleAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='data', full_name='google.ads.googleads.v5.common.MediaBundleAsset.data', index=0, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_data', full_name='google.ads.googleads.v5.common.MediaBundleAsset._data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=246, + serialized_end=292, +) + + +_IMAGEASSET = _descriptor.Descriptor( + name='ImageAsset', + full_name='google.ads.googleads.v5.common.ImageAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='data', full_name='google.ads.googleads.v5.common.ImageAsset.data', index=0, + number=5, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='file_size', full_name='google.ads.googleads.v5.common.ImageAsset.file_size', index=1, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mime_type', full_name='google.ads.googleads.v5.common.ImageAsset.mime_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='full_size', full_name='google.ads.googleads.v5.common.ImageAsset.full_size', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_data', full_name='google.ads.googleads.v5.common.ImageAsset._data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_file_size', full_name='google.ads.googleads.v5.common.ImageAsset._file_size', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=295, + serialized_end=513, +) + + +_IMAGEDIMENSION = _descriptor.Descriptor( + name='ImageDimension', + full_name='google.ads.googleads.v5.common.ImageDimension', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='height_pixels', full_name='google.ads.googleads.v5.common.ImageDimension.height_pixels', index=0, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='width_pixels', full_name='google.ads.googleads.v5.common.ImageDimension.width_pixels', index=1, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.common.ImageDimension.url', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_height_pixels', full_name='google.ads.googleads.v5.common.ImageDimension._height_pixels', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_width_pixels', full_name='google.ads.googleads.v5.common.ImageDimension._width_pixels', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_url', full_name='google.ads.googleads.v5.common.ImageDimension._url', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=516, + serialized_end=648, +) + + +_TEXTASSET = _descriptor.Descriptor( + name='TextAsset', + full_name='google.ads.googleads.v5.common.TextAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.TextAsset.text', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_text', full_name='google.ads.googleads.v5.common.TextAsset._text', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=650, + serialized_end=689, +) + + +_BOOKONGOOGLEASSET = _descriptor.Descriptor( + name='BookOnGoogleAsset', + full_name='google.ads.googleads.v5.common.BookOnGoogleAsset', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=691, + serialized_end=710, +) + +_YOUTUBEVIDEOASSET.oneofs_by_name['_youtube_video_id'].fields.append( + _YOUTUBEVIDEOASSET.fields_by_name['youtube_video_id']) +_YOUTUBEVIDEOASSET.fields_by_name['youtube_video_id'].containing_oneof = _YOUTUBEVIDEOASSET.oneofs_by_name['_youtube_video_id'] +_MEDIABUNDLEASSET.oneofs_by_name['_data'].fields.append( + _MEDIABUNDLEASSET.fields_by_name['data']) +_MEDIABUNDLEASSET.fields_by_name['data'].containing_oneof = _MEDIABUNDLEASSET.oneofs_by_name['_data'] +_IMAGEASSET.fields_by_name['mime_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2._MIMETYPEENUM_MIMETYPE +_IMAGEASSET.fields_by_name['full_size'].message_type = _IMAGEDIMENSION +_IMAGEASSET.oneofs_by_name['_data'].fields.append( + _IMAGEASSET.fields_by_name['data']) +_IMAGEASSET.fields_by_name['data'].containing_oneof = _IMAGEASSET.oneofs_by_name['_data'] +_IMAGEASSET.oneofs_by_name['_file_size'].fields.append( + _IMAGEASSET.fields_by_name['file_size']) +_IMAGEASSET.fields_by_name['file_size'].containing_oneof = _IMAGEASSET.oneofs_by_name['_file_size'] +_IMAGEDIMENSION.oneofs_by_name['_height_pixels'].fields.append( + _IMAGEDIMENSION.fields_by_name['height_pixels']) +_IMAGEDIMENSION.fields_by_name['height_pixels'].containing_oneof = _IMAGEDIMENSION.oneofs_by_name['_height_pixels'] +_IMAGEDIMENSION.oneofs_by_name['_width_pixels'].fields.append( + _IMAGEDIMENSION.fields_by_name['width_pixels']) +_IMAGEDIMENSION.fields_by_name['width_pixels'].containing_oneof = _IMAGEDIMENSION.oneofs_by_name['_width_pixels'] +_IMAGEDIMENSION.oneofs_by_name['_url'].fields.append( + _IMAGEDIMENSION.fields_by_name['url']) +_IMAGEDIMENSION.fields_by_name['url'].containing_oneof = _IMAGEDIMENSION.oneofs_by_name['_url'] +_TEXTASSET.oneofs_by_name['_text'].fields.append( + _TEXTASSET.fields_by_name['text']) +_TEXTASSET.fields_by_name['text'].containing_oneof = _TEXTASSET.oneofs_by_name['_text'] +DESCRIPTOR.message_types_by_name['YoutubeVideoAsset'] = _YOUTUBEVIDEOASSET +DESCRIPTOR.message_types_by_name['MediaBundleAsset'] = _MEDIABUNDLEASSET +DESCRIPTOR.message_types_by_name['ImageAsset'] = _IMAGEASSET +DESCRIPTOR.message_types_by_name['ImageDimension'] = _IMAGEDIMENSION +DESCRIPTOR.message_types_by_name['TextAsset'] = _TEXTASSET +DESCRIPTOR.message_types_by_name['BookOnGoogleAsset'] = _BOOKONGOOGLEASSET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +YoutubeVideoAsset = _reflection.GeneratedProtocolMessageType('YoutubeVideoAsset', (_message.Message,), { + 'DESCRIPTOR' : _YOUTUBEVIDEOASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """A YouTube asset. + + Attributes: + youtube_video_id: + YouTube video id. This is the 11 character string value used + in the YouTube video URL. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.YoutubeVideoAsset) + }) +_sym_db.RegisterMessage(YoutubeVideoAsset) + +MediaBundleAsset = _reflection.GeneratedProtocolMessageType('MediaBundleAsset', (_message.Message,), { + 'DESCRIPTOR' : _MEDIABUNDLEASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """A MediaBundle asset. + + Attributes: + data: + Media bundle (ZIP file) asset data. The format of the uploaded + ZIP file depends on the ad field where it will be used. For + more information on the format, see the documentation of the + ad field where you plan on using the MediaBundleAsset. This + field is mutate only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MediaBundleAsset) + }) +_sym_db.RegisterMessage(MediaBundleAsset) + +ImageAsset = _reflection.GeneratedProtocolMessageType('ImageAsset', (_message.Message,), { + 'DESCRIPTOR' : _IMAGEASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """An Image asset. + + Attributes: + data: + The raw bytes data of an image. This field is mutate only. + file_size: + File size of the image asset in bytes. + mime_type: + MIME type of the image asset. + full_size: + Metadata for this image at its original size. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ImageAsset) + }) +_sym_db.RegisterMessage(ImageAsset) + +ImageDimension = _reflection.GeneratedProtocolMessageType('ImageDimension', (_message.Message,), { + 'DESCRIPTOR' : _IMAGEDIMENSION, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """Metadata for an image at a certain size, either original or resized. + + Attributes: + height_pixels: + Height of the image. + width_pixels: + Width of the image. + url: + A URL that returns the image with this height and width. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ImageDimension) + }) +_sym_db.RegisterMessage(ImageDimension) + +TextAsset = _reflection.GeneratedProtocolMessageType('TextAsset', (_message.Message,), { + 'DESCRIPTOR' : _TEXTASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """A Text asset. + + Attributes: + text: + Text content of the text asset. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TextAsset) + }) +_sym_db.RegisterMessage(TextAsset) + +BookOnGoogleAsset = _reflection.GeneratedProtocolMessageType('BookOnGoogleAsset', (_message.Message,), { + 'DESCRIPTOR' : _BOOKONGOOGLEASSET, + '__module__' : 'google.ads.googleads_v5.proto.common.asset_types_pb2' + , + '__doc__': """A Book on Google asset. Used to redirect user to book through Google. + Book on Google will change the redirect url to book directly through + Google.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.BookOnGoogleAsset) + }) +_sym_db.RegisterMessage(BookOnGoogleAsset) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/asset_types_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/asset_types_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/asset_types_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/bidding_pb2.py b/google/ads/google_ads/v5/proto/common/bidding_pb2.py new file mode 100644 index 000000000..8b8c4e1f5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/bidding_pb2.py @@ -0,0 +1,825 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/bidding.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import target_impression_share_location_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__impression__share__location__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/bidding.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\014BiddingProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n2google/ads/googleads_v5/proto/common/bidding.proto\x12\x1egoogle.ads.googleads.v5.common\x1aJgoogle/ads/googleads_v5/proto/enums/target_impression_share_location.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"L\n\nCommission\x12#\n\x16\x63ommission_rate_micros\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x19\n\x17_commission_rate_micros\"\r\n\x0b\x45nhancedCpc\"G\n\tManualCpc\x12!\n\x14\x65nhanced_cpc_enabled\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x17\n\x15_enhanced_cpc_enabled\"\x0b\n\tManualCpm\"\x0b\n\tManualCpv\"\x15\n\x13MaximizeConversions\"C\n\x17MaximizeConversionValue\x12\x18\n\x0btarget_roas\x18\x02 \x01(\x01H\x00\x88\x01\x01\x42\x0e\n\x0c_target_roas\"\xbd\x01\n\tTargetCpa\x12\x1e\n\x11target_cpa_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x14\n\x12_target_cpa_microsB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"\x0b\n\tTargetCpm\"\x8d\x02\n\x15TargetImpressionShare\x12p\n\x08location\x18\x01 \x01(\x0e\x32^.google.ads.googleads.v5.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation\x12%\n\x18location_fraction_micros\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x42\x1b\n\x19_location_fraction_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\xb2\x01\n\nTargetRoas\x12\x18\n\x0btarget_roas\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12!\n\x14\x63pc_bid_floor_micros\x18\x06 \x01(\x03H\x02\x88\x01\x01\x42\x0e\n\x0c_target_roasB\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_cpc_bid_floor_micros\"\x87\x01\n\x0bTargetSpend\x12 \n\x13target_spend_micros\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x04 \x01(\x03H\x01\x88\x01\x01\x42\x16\n\x14_target_spend_microsB\x19\n\x17_cpc_bid_ceiling_micros\"\x88\x01\n\nPercentCpc\x12#\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x65nhanced_cpc_enabled\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x19\n\x17_cpc_bid_ceiling_microsB\x17\n\x15_enhanced_cpc_enabledB\xe7\x01\n\"com.google.ads.googleads.v5.commonB\x0c\x42iddingProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__impression__share__location__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_COMMISSION = _descriptor.Descriptor( + name='Commission', + full_name='google.ads.googleads.v5.common.Commission', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='commission_rate_micros', full_name='google.ads.googleads.v5.common.Commission.commission_rate_micros', index=0, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_commission_rate_micros', full_name='google.ads.googleads.v5.common.Commission._commission_rate_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=224, + serialized_end=300, +) + + +_ENHANCEDCPC = _descriptor.Descriptor( + name='EnhancedCpc', + full_name='google.ads.googleads.v5.common.EnhancedCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=302, + serialized_end=315, +) + + +_MANUALCPC = _descriptor.Descriptor( + name='ManualCpc', + full_name='google.ads.googleads.v5.common.ManualCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='enhanced_cpc_enabled', full_name='google.ads.googleads.v5.common.ManualCpc.enhanced_cpc_enabled', index=0, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_enhanced_cpc_enabled', full_name='google.ads.googleads.v5.common.ManualCpc._enhanced_cpc_enabled', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=317, + serialized_end=388, +) + + +_MANUALCPM = _descriptor.Descriptor( + name='ManualCpm', + full_name='google.ads.googleads.v5.common.ManualCpm', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=390, + serialized_end=401, +) + + +_MANUALCPV = _descriptor.Descriptor( + name='ManualCpv', + full_name='google.ads.googleads.v5.common.ManualCpv', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=403, + serialized_end=414, +) + + +_MAXIMIZECONVERSIONS = _descriptor.Descriptor( + name='MaximizeConversions', + full_name='google.ads.googleads.v5.common.MaximizeConversions', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=416, + serialized_end=437, +) + + +_MAXIMIZECONVERSIONVALUE = _descriptor.Descriptor( + name='MaximizeConversionValue', + full_name='google.ads.googleads.v5.common.MaximizeConversionValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.common.MaximizeConversionValue.target_roas', index=0, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_roas', full_name='google.ads.googleads.v5.common.MaximizeConversionValue._target_roas', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=439, + serialized_end=506, +) + + +_TARGETCPA = _descriptor.Descriptor( + name='TargetCpa', + full_name='google.ads.googleads.v5.common.TargetCpa', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v5.common.TargetCpa.target_cpa_micros', index=0, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetCpa.cpc_bid_ceiling_micros', index=1, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_floor_micros', full_name='google.ads.googleads.v5.common.TargetCpa.cpc_bid_floor_micros', index=2, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_cpa_micros', full_name='google.ads.googleads.v5.common.TargetCpa._target_cpa_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetCpa._cpc_bid_ceiling_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_floor_micros', full_name='google.ads.googleads.v5.common.TargetCpa._cpc_bid_floor_micros', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=509, + serialized_end=698, +) + + +_TARGETCPM = _descriptor.Descriptor( + name='TargetCpm', + full_name='google.ads.googleads.v5.common.TargetCpm', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=700, + serialized_end=711, +) + + +_TARGETIMPRESSIONSHARE = _descriptor.Descriptor( + name='TargetImpressionShare', + full_name='google.ads.googleads.v5.common.TargetImpressionShare', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='location', full_name='google.ads.googleads.v5.common.TargetImpressionShare.location', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_fraction_micros', full_name='google.ads.googleads.v5.common.TargetImpressionShare.location_fraction_micros', index=1, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetImpressionShare.cpc_bid_ceiling_micros', index=2, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_location_fraction_micros', full_name='google.ads.googleads.v5.common.TargetImpressionShare._location_fraction_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetImpressionShare._cpc_bid_ceiling_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=714, + serialized_end=983, +) + + +_TARGETROAS = _descriptor.Descriptor( + name='TargetRoas', + full_name='google.ads.googleads.v5.common.TargetRoas', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.common.TargetRoas.target_roas', index=0, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetRoas.cpc_bid_ceiling_micros', index=1, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_floor_micros', full_name='google.ads.googleads.v5.common.TargetRoas.cpc_bid_floor_micros', index=2, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_roas', full_name='google.ads.googleads.v5.common.TargetRoas._target_roas', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetRoas._cpc_bid_ceiling_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_floor_micros', full_name='google.ads.googleads.v5.common.TargetRoas._cpc_bid_floor_micros', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=986, + serialized_end=1164, +) + + +_TARGETSPEND = _descriptor.Descriptor( + name='TargetSpend', + full_name='google.ads.googleads.v5.common.TargetSpend', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_spend_micros', full_name='google.ads.googleads.v5.common.TargetSpend.target_spend_micros', index=0, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetSpend.cpc_bid_ceiling_micros', index=1, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_spend_micros', full_name='google.ads.googleads.v5.common.TargetSpend._target_spend_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.TargetSpend._cpc_bid_ceiling_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1167, + serialized_end=1302, +) + + +_PERCENTCPC = _descriptor.Descriptor( + name='PercentCpc', + full_name='google.ads.googleads.v5.common.PercentCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.PercentCpc.cpc_bid_ceiling_micros', index=0, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enhanced_cpc_enabled', full_name='google.ads.googleads.v5.common.PercentCpc.enhanced_cpc_enabled', index=1, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_cpc_bid_ceiling_micros', full_name='google.ads.googleads.v5.common.PercentCpc._cpc_bid_ceiling_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_enhanced_cpc_enabled', full_name='google.ads.googleads.v5.common.PercentCpc._enhanced_cpc_enabled', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1305, + serialized_end=1441, +) + +_COMMISSION.oneofs_by_name['_commission_rate_micros'].fields.append( + _COMMISSION.fields_by_name['commission_rate_micros']) +_COMMISSION.fields_by_name['commission_rate_micros'].containing_oneof = _COMMISSION.oneofs_by_name['_commission_rate_micros'] +_MANUALCPC.oneofs_by_name['_enhanced_cpc_enabled'].fields.append( + _MANUALCPC.fields_by_name['enhanced_cpc_enabled']) +_MANUALCPC.fields_by_name['enhanced_cpc_enabled'].containing_oneof = _MANUALCPC.oneofs_by_name['_enhanced_cpc_enabled'] +_MAXIMIZECONVERSIONVALUE.oneofs_by_name['_target_roas'].fields.append( + _MAXIMIZECONVERSIONVALUE.fields_by_name['target_roas']) +_MAXIMIZECONVERSIONVALUE.fields_by_name['target_roas'].containing_oneof = _MAXIMIZECONVERSIONVALUE.oneofs_by_name['_target_roas'] +_TARGETCPA.oneofs_by_name['_target_cpa_micros'].fields.append( + _TARGETCPA.fields_by_name['target_cpa_micros']) +_TARGETCPA.fields_by_name['target_cpa_micros'].containing_oneof = _TARGETCPA.oneofs_by_name['_target_cpa_micros'] +_TARGETCPA.oneofs_by_name['_cpc_bid_ceiling_micros'].fields.append( + _TARGETCPA.fields_by_name['cpc_bid_ceiling_micros']) +_TARGETCPA.fields_by_name['cpc_bid_ceiling_micros'].containing_oneof = _TARGETCPA.oneofs_by_name['_cpc_bid_ceiling_micros'] +_TARGETCPA.oneofs_by_name['_cpc_bid_floor_micros'].fields.append( + _TARGETCPA.fields_by_name['cpc_bid_floor_micros']) +_TARGETCPA.fields_by_name['cpc_bid_floor_micros'].containing_oneof = _TARGETCPA.oneofs_by_name['_cpc_bid_floor_micros'] +_TARGETIMPRESSIONSHARE.fields_by_name['location'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__impression__share__location__pb2._TARGETIMPRESSIONSHARELOCATIONENUM_TARGETIMPRESSIONSHARELOCATION +_TARGETIMPRESSIONSHARE.oneofs_by_name['_location_fraction_micros'].fields.append( + _TARGETIMPRESSIONSHARE.fields_by_name['location_fraction_micros']) +_TARGETIMPRESSIONSHARE.fields_by_name['location_fraction_micros'].containing_oneof = _TARGETIMPRESSIONSHARE.oneofs_by_name['_location_fraction_micros'] +_TARGETIMPRESSIONSHARE.oneofs_by_name['_cpc_bid_ceiling_micros'].fields.append( + _TARGETIMPRESSIONSHARE.fields_by_name['cpc_bid_ceiling_micros']) +_TARGETIMPRESSIONSHARE.fields_by_name['cpc_bid_ceiling_micros'].containing_oneof = _TARGETIMPRESSIONSHARE.oneofs_by_name['_cpc_bid_ceiling_micros'] +_TARGETROAS.oneofs_by_name['_target_roas'].fields.append( + _TARGETROAS.fields_by_name['target_roas']) +_TARGETROAS.fields_by_name['target_roas'].containing_oneof = _TARGETROAS.oneofs_by_name['_target_roas'] +_TARGETROAS.oneofs_by_name['_cpc_bid_ceiling_micros'].fields.append( + _TARGETROAS.fields_by_name['cpc_bid_ceiling_micros']) +_TARGETROAS.fields_by_name['cpc_bid_ceiling_micros'].containing_oneof = _TARGETROAS.oneofs_by_name['_cpc_bid_ceiling_micros'] +_TARGETROAS.oneofs_by_name['_cpc_bid_floor_micros'].fields.append( + _TARGETROAS.fields_by_name['cpc_bid_floor_micros']) +_TARGETROAS.fields_by_name['cpc_bid_floor_micros'].containing_oneof = _TARGETROAS.oneofs_by_name['_cpc_bid_floor_micros'] +_TARGETSPEND.oneofs_by_name['_target_spend_micros'].fields.append( + _TARGETSPEND.fields_by_name['target_spend_micros']) +_TARGETSPEND.fields_by_name['target_spend_micros'].containing_oneof = _TARGETSPEND.oneofs_by_name['_target_spend_micros'] +_TARGETSPEND.oneofs_by_name['_cpc_bid_ceiling_micros'].fields.append( + _TARGETSPEND.fields_by_name['cpc_bid_ceiling_micros']) +_TARGETSPEND.fields_by_name['cpc_bid_ceiling_micros'].containing_oneof = _TARGETSPEND.oneofs_by_name['_cpc_bid_ceiling_micros'] +_PERCENTCPC.oneofs_by_name['_cpc_bid_ceiling_micros'].fields.append( + _PERCENTCPC.fields_by_name['cpc_bid_ceiling_micros']) +_PERCENTCPC.fields_by_name['cpc_bid_ceiling_micros'].containing_oneof = _PERCENTCPC.oneofs_by_name['_cpc_bid_ceiling_micros'] +_PERCENTCPC.oneofs_by_name['_enhanced_cpc_enabled'].fields.append( + _PERCENTCPC.fields_by_name['enhanced_cpc_enabled']) +_PERCENTCPC.fields_by_name['enhanced_cpc_enabled'].containing_oneof = _PERCENTCPC.oneofs_by_name['_enhanced_cpc_enabled'] +DESCRIPTOR.message_types_by_name['Commission'] = _COMMISSION +DESCRIPTOR.message_types_by_name['EnhancedCpc'] = _ENHANCEDCPC +DESCRIPTOR.message_types_by_name['ManualCpc'] = _MANUALCPC +DESCRIPTOR.message_types_by_name['ManualCpm'] = _MANUALCPM +DESCRIPTOR.message_types_by_name['ManualCpv'] = _MANUALCPV +DESCRIPTOR.message_types_by_name['MaximizeConversions'] = _MAXIMIZECONVERSIONS +DESCRIPTOR.message_types_by_name['MaximizeConversionValue'] = _MAXIMIZECONVERSIONVALUE +DESCRIPTOR.message_types_by_name['TargetCpa'] = _TARGETCPA +DESCRIPTOR.message_types_by_name['TargetCpm'] = _TARGETCPM +DESCRIPTOR.message_types_by_name['TargetImpressionShare'] = _TARGETIMPRESSIONSHARE +DESCRIPTOR.message_types_by_name['TargetRoas'] = _TARGETROAS +DESCRIPTOR.message_types_by_name['TargetSpend'] = _TARGETSPEND +DESCRIPTOR.message_types_by_name['PercentCpc'] = _PERCENTCPC +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Commission = _reflection.GeneratedProtocolMessageType('Commission', (_message.Message,), { + 'DESCRIPTOR' : _COMMISSION, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """Commission is an automatic bidding strategy in which the advertiser + pays a certain portion of the conversion value. + + Attributes: + commission_rate_micros: + Commission rate defines the portion of the conversion value + that the advertiser will be billed. A commission rate of x + should be passed into this field as (x \* 1,000,000). For + example, 106,000 represents a commission rate of 0.106 + (10.6%). + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Commission) + }) +_sym_db.RegisterMessage(Commission) + +EnhancedCpc = _reflection.GeneratedProtocolMessageType('EnhancedCpc', (_message.Message,), { + 'DESCRIPTOR' : _ENHANCEDCPC, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bidding strategy that raises bids for clicks that seem + more likely to lead to a conversion and lowers them for clicks where + they seem less likely.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.EnhancedCpc) + }) +_sym_db.RegisterMessage(EnhancedCpc) + +ManualCpc = _reflection.GeneratedProtocolMessageType('ManualCpc', (_message.Message,), { + 'DESCRIPTOR' : _MANUALCPC, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """Manual click-based bidding where user pays per click. + + Attributes: + enhanced_cpc_enabled: + Whether bids are to be enhanced based on conversion optimizer + data. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ManualCpc) + }) +_sym_db.RegisterMessage(ManualCpc) + +ManualCpm = _reflection.GeneratedProtocolMessageType('ManualCpm', (_message.Message,), { + 'DESCRIPTOR' : _MANUALCPM, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """Manual impression-based bidding where user pays per thousand + impressions.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ManualCpm) + }) +_sym_db.RegisterMessage(ManualCpm) + +ManualCpv = _reflection.GeneratedProtocolMessageType('ManualCpv', (_message.Message,), { + 'DESCRIPTOR' : _MANUALCPV, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """View based bidding where user pays per video view.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ManualCpv) + }) +_sym_db.RegisterMessage(ManualCpv) + +MaximizeConversions = _reflection.GeneratedProtocolMessageType('MaximizeConversions', (_message.Message,), { + 'DESCRIPTOR' : _MAXIMIZECONVERSIONS, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bidding strategy that sets bids to help get the most + conversions for your campaign while spending your budget.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MaximizeConversions) + }) +_sym_db.RegisterMessage(MaximizeConversions) + +MaximizeConversionValue = _reflection.GeneratedProtocolMessageType('MaximizeConversionValue', (_message.Message,), { + 'DESCRIPTOR' : _MAXIMIZECONVERSIONVALUE, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bidding strategy which tries to maximize conversion value + given a daily budget. + + Attributes: + target_roas: + The target return on ad spend (ROAS) option. If set, the bid + strategy will maximize revenue while averaging the target + return on ad spend. If the target ROAS is high, the bid + strategy may not be able to spend the full budget. If the + target ROAS is not set, the bid strategy will aim to achieve + the highest possible ROAS for the budget. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MaximizeConversionValue) + }) +_sym_db.RegisterMessage(MaximizeConversionValue) + +TargetCpa = _reflection.GeneratedProtocolMessageType('TargetCpa', (_message.Message,), { + 'DESCRIPTOR' : _TARGETCPA, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bid strategy that sets bids to help get as many + conversions as possible at the target cost-per-acquisition (CPA) you + set. + + Attributes: + target_cpa_micros: + Average CPA target. This target should be greater than or + equal to minimum billable unit based on the currency for the + account. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + cpc_bid_floor_micros: + Minimum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetCpa) + }) +_sym_db.RegisterMessage(TargetCpa) + +TargetCpm = _reflection.GeneratedProtocolMessageType('TargetCpm', (_message.Message,), { + 'DESCRIPTOR' : _TARGETCPM, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """Target CPM (cost per thousand impressions) is an automated bidding + strategy that sets bids to optimize performance given the target CPM + you set.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetCpm) + }) +_sym_db.RegisterMessage(TargetCpm) + +TargetImpressionShare = _reflection.GeneratedProtocolMessageType('TargetImpressionShare', (_message.Message,), { + 'DESCRIPTOR' : _TARGETIMPRESSIONSHARE, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bidding strategy that sets bids so that a certain + percentage of search ads are shown at the top of the first page (or + other targeted location). + + Attributes: + location: + The targeted location on the search results page. + location_fraction_micros: + The desired fraction of ads to be shown in the targeted + location in micros. E.g. 1% equals 10,000. + cpc_bid_ceiling_micros: + The highest CPC bid the automated bidding system is permitted + to specify. This is a required field entered by the advertiser + that sets the ceiling and specified in local micros. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetImpressionShare) + }) +_sym_db.RegisterMessage(TargetImpressionShare) + +TargetRoas = _reflection.GeneratedProtocolMessageType('TargetRoas', (_message.Message,), { + 'DESCRIPTOR' : _TARGETROAS, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bidding strategy that helps you maximize revenue while + averaging a specific target return on ad spend (ROAS). + + Attributes: + target_roas: + Required. The desired revenue (based on conversion data) per + unit of spend. Value must be between 0.01 and 1000.0, + inclusive. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + cpc_bid_floor_micros: + Minimum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetRoas) + }) +_sym_db.RegisterMessage(TargetRoas) + +TargetSpend = _reflection.GeneratedProtocolMessageType('TargetSpend', (_message.Message,), { + 'DESCRIPTOR' : _TARGETSPEND, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """An automated bid strategy that sets your bids to help get as many + clicks as possible within your budget. + + Attributes: + target_spend_micros: + The spend target under which to maximize clicks. A TargetSpend + bidder will attempt to spend the smaller of this value or the + natural throttling spend amount. If not specified, the budget + is used as the spend target. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetSpend) + }) +_sym_db.RegisterMessage(TargetSpend) + +PercentCpc = _reflection.GeneratedProtocolMessageType('PercentCpc', (_message.Message,), { + 'DESCRIPTOR' : _PERCENTCPC, + '__module__' : 'google.ads.googleads_v5.proto.common.bidding_pb2' + , + '__doc__': """A bidding strategy where bids are a fraction of the advertised price + for some good or service. + + Attributes: + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. This is + an optional field entered by the advertiser and specified in + local micros. Note: A zero value is interpreted in the same + way as having bid\_ceiling undefined. + enhanced_cpc_enabled: + Adjusts the bid for each auction upward or downward, depending + on the likelihood of a conversion. Individual bids may exceed + cpc\_bid\_ceiling\_micros, but the average bid amount for a + campaign should not. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PercentCpc) + }) +_sym_db.RegisterMessage(PercentCpc) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/bidding_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/bidding_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/bidding_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/click_location_pb2.py b/google/ads/google_ads/v5/proto/common/click_location_pb2.py new file mode 100644 index 000000000..07beca452 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/click_location_pb2.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/click_location.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/click_location.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\022ClickLocationProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/common/click_location.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1cgoogle/api/annotations.proto\"\xb9\x01\n\rClickLocation\x12\x11\n\x04\x63ity\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x63ountry\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05metro\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rmost_specific\x18\t \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06region\x18\n \x01(\tH\x04\x88\x01\x01\x42\x07\n\x05_cityB\n\n\x08_countryB\x08\n\x06_metroB\x10\n\x0e_most_specificB\t\n\x07_regionB\xed\x01\n\"com.google.ads.googleads.v5.commonB\x12\x43lickLocationProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CLICKLOCATION = _descriptor.Descriptor( + name='ClickLocation', + full_name='google.ads.googleads.v5.common.ClickLocation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='city', full_name='google.ads.googleads.v5.common.ClickLocation.city', index=0, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country', full_name='google.ads.googleads.v5.common.ClickLocation.country', index=1, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='metro', full_name='google.ads.googleads.v5.common.ClickLocation.metro', index=2, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='most_specific', full_name='google.ads.googleads.v5.common.ClickLocation.most_specific', index=3, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='region', full_name='google.ads.googleads.v5.common.ClickLocation.region', index=4, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_city', full_name='google.ads.googleads.v5.common.ClickLocation._city', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country', full_name='google.ads.googleads.v5.common.ClickLocation._country', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_metro', full_name='google.ads.googleads.v5.common.ClickLocation._metro', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_most_specific', full_name='google.ads.googleads.v5.common.ClickLocation._most_specific', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_region', full_name='google.ads.googleads.v5.common.ClickLocation._region', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=124, + serialized_end=309, +) + +_CLICKLOCATION.oneofs_by_name['_city'].fields.append( + _CLICKLOCATION.fields_by_name['city']) +_CLICKLOCATION.fields_by_name['city'].containing_oneof = _CLICKLOCATION.oneofs_by_name['_city'] +_CLICKLOCATION.oneofs_by_name['_country'].fields.append( + _CLICKLOCATION.fields_by_name['country']) +_CLICKLOCATION.fields_by_name['country'].containing_oneof = _CLICKLOCATION.oneofs_by_name['_country'] +_CLICKLOCATION.oneofs_by_name['_metro'].fields.append( + _CLICKLOCATION.fields_by_name['metro']) +_CLICKLOCATION.fields_by_name['metro'].containing_oneof = _CLICKLOCATION.oneofs_by_name['_metro'] +_CLICKLOCATION.oneofs_by_name['_most_specific'].fields.append( + _CLICKLOCATION.fields_by_name['most_specific']) +_CLICKLOCATION.fields_by_name['most_specific'].containing_oneof = _CLICKLOCATION.oneofs_by_name['_most_specific'] +_CLICKLOCATION.oneofs_by_name['_region'].fields.append( + _CLICKLOCATION.fields_by_name['region']) +_CLICKLOCATION.fields_by_name['region'].containing_oneof = _CLICKLOCATION.oneofs_by_name['_region'] +DESCRIPTOR.message_types_by_name['ClickLocation'] = _CLICKLOCATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ClickLocation = _reflection.GeneratedProtocolMessageType('ClickLocation', (_message.Message,), { + 'DESCRIPTOR' : _CLICKLOCATION, + '__module__' : 'google.ads.googleads_v5.proto.common.click_location_pb2' + , + '__doc__': """Location criteria associated with a click. + + Attributes: + city: + The city location criterion associated with the impression. + country: + The country location criterion associated with the impression. + metro: + The metro location criterion associated with the impression. + most_specific: + The most specific location criterion associated with the + impression. + region: + The region location criterion associated with the impression. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ClickLocation) + }) +_sym_db.RegisterMessage(ClickLocation) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/click_location_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/click_location_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/click_location_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/criteria_pb2.py b/google/ads/google_ads/v5/proto/common/criteria_pb2.py new file mode 100644 index 000000000..502b0f5f0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/criteria_pb2.py @@ -0,0 +1,3544 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/criteria.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import age_range_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_age__range__type__pb2 +from google.ads.google_ads.v5.proto.enums import app_payment_model_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__payment__model__type__pb2 +from google.ads.google_ads.v5.proto.enums import content_label_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_content__label__type__pb2 +from google.ads.google_ads.v5.proto.enums import day_of_week_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2 +from google.ads.google_ads.v5.proto.enums import device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2 +from google.ads.google_ads.v5.proto.enums import gender_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_gender__type__pb2 +from google.ads.google_ads.v5.proto.enums import hotel_date_selection_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__date__selection__type__pb2 +from google.ads.google_ads.v5.proto.enums import income_range_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_income__range__type__pb2 +from google.ads.google_ads.v5.proto.enums import interaction_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__type__pb2 +from google.ads.google_ads.v5.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.ads.google_ads.v5.proto.enums import listing_group_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_listing__group__type__pb2 +from google.ads.google_ads.v5.proto.enums import location_group_radius_units_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__group__radius__units__pb2 +from google.ads.google_ads.v5.proto.enums import minute_of_hour_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_minute__of__hour__pb2 +from google.ads.google_ads.v5.proto.enums import parental_status_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_parental__status__type__pb2 +from google.ads.google_ads.v5.proto.enums import preferred_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_preferred__content__type__pb2 +from google.ads.google_ads.v5.proto.enums import product_bidding_category_level_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2 +from google.ads.google_ads.v5.proto.enums import product_channel_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__pb2 +from google.ads.google_ads.v5.proto.enums import product_channel_exclusivity_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__exclusivity__pb2 +from google.ads.google_ads.v5.proto.enums import product_condition_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__condition__pb2 +from google.ads.google_ads.v5.proto.enums import product_custom_attribute_index_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__custom__attribute__index__pb2 +from google.ads.google_ads.v5.proto.enums import product_type_level_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__type__level__pb2 +from google.ads.google_ads.v5.proto.enums import proximity_radius_units_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_proximity__radius__units__pb2 +from google.ads.google_ads.v5.proto.enums import webpage_condition_operand_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operand__pb2 +from google.ads.google_ads.v5.proto.enums import webpage_condition_operator_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operator__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/criteria.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\rCriteriaProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/common/criteria.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x38google/ads/googleads_v5/proto/enums/age_range_type.proto\x1a@google/ads/googleads_v5/proto/enums/app_payment_model_type.proto\x1agoogle/ads/googleads_v5/proto/enums/parental_status_type.proto\x1a@google/ads/googleads_v5/proto/enums/preferred_content_type.proto\x1aHgoogle/ads/googleads_v5/proto/enums/product_bidding_category_level.proto\x1a\x39google/ads/googleads_v5/proto/enums/product_channel.proto\x1a\x45google/ads/googleads_v5/proto/enums/product_channel_exclusivity.proto\x1a;google/ads/googleads_v5/proto/enums/product_condition.proto\x1aHgoogle/ads/googleads_v5/proto/enums/product_custom_attribute_index.proto\x1a\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.ads.googleads.v5.enums.DeviceEnum.Device\"r\n\x14PreferredContentInfo\x12Z\n\x04type\x18\x02 \x01(\x0e\x32L.google.ads.googleads.v5.enums.PreferredContentTypeEnum.PreferredContentType\"\xf6\x01\n\x10ListingGroupInfo\x12R\n\x04type\x18\x01 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ListingGroupTypeEnum.ListingGroupType\x12H\n\ncase_value\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.common.ListingDimensionInfo\x12&\n\x19parent_ad_group_criterion\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x1c\n\x1a_parent_ad_group_criterion\"\\\n\x10ListingScopeInfo\x12H\n\ndimensions\x18\x02 \x03(\x0b\x32\x34.google.ads.googleads.v5.common.ListingDimensionInfo\"\x9b\t\n\x14ListingDimensionInfo\x12?\n\x08hotel_id\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.common.HotelIdInfoH\x00\x12\x45\n\x0bhotel_class\x18\x03 \x01(\x0b\x32..google.ads.googleads.v5.common.HotelClassInfoH\x00\x12V\n\x14hotel_country_region\x18\x04 \x01(\x0b\x32\x36.google.ads.googleads.v5.common.HotelCountryRegionInfoH\x00\x12\x45\n\x0bhotel_state\x18\x05 \x01(\x0b\x32..google.ads.googleads.v5.common.HotelStateInfoH\x00\x12\x43\n\nhotel_city\x18\x06 \x01(\x0b\x32-.google.ads.googleads.v5.common.HotelCityInfoH\x00\x12^\n\x18product_bidding_category\x18\r \x01(\x0b\x32:.google.ads.googleads.v5.common.ProductBiddingCategoryInfoH\x00\x12I\n\rproduct_brand\x18\x0f \x01(\x0b\x32\x30.google.ads.googleads.v5.common.ProductBrandInfoH\x00\x12M\n\x0fproduct_channel\x18\x08 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.ProductChannelInfoH\x00\x12\x64\n\x1bproduct_channel_exclusivity\x18\t \x01(\x0b\x32=.google.ads.googleads.v5.common.ProductChannelExclusivityInfoH\x00\x12Q\n\x11product_condition\x18\n \x01(\x0b\x32\x34.google.ads.googleads.v5.common.ProductConditionInfoH\x00\x12^\n\x18product_custom_attribute\x18\x10 \x01(\x0b\x32:.google.ads.googleads.v5.common.ProductCustomAttributeInfoH\x00\x12L\n\x0fproduct_item_id\x18\x0b \x01(\x0b\x32\x31.google.ads.googleads.v5.common.ProductItemIdInfoH\x00\x12G\n\x0cproduct_type\x18\x0c \x01(\x0b\x32/.google.ads.googleads.v5.common.ProductTypeInfoH\x00\x12`\n\x19unknown_listing_dimension\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v5.common.UnknownListingDimensionInfoH\x00\x42\x0b\n\tdimension\"+\n\x0bHotelIdInfo\x12\x12\n\x05value\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\".\n\x0eHotelClassInfo\x12\x12\n\x05value\x18\x02 \x01(\x03H\x00\x88\x01\x01\x42\x08\n\x06_value\"\\\n\x16HotelCountryRegionInfo\x12%\n\x18\x63ountry_region_criterion\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x1b\n\x19_country_region_criterion\"B\n\x0eHotelStateInfo\x12\x1c\n\x0fstate_criterion\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_state_criterion\"?\n\rHotelCityInfo\x12\x1b\n\x0e\x63ity_criterion\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_city_criterion\"\xcb\x01\n\x1aProductBiddingCategoryInfo\x12\x0f\n\x02id\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12\x19\n\x0c\x63ountry_code\x18\x05 \x01(\tH\x01\x88\x01\x01\x12i\n\x05level\x18\x03 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevelB\x05\n\x03_idB\x0f\n\r_country_code\"0\n\x10ProductBrandInfo\x12\x12\n\x05value\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"g\n\x12ProductChannelInfo\x12Q\n\x07\x63hannel\x18\x01 \x01(\x0e\x32@.google.ads.googleads.v5.enums.ProductChannelEnum.ProductChannel\"\x94\x01\n\x1dProductChannelExclusivityInfo\x12s\n\x13\x63hannel_exclusivity\x18\x01 \x01(\x0e\x32V.google.ads.googleads.v5.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity\"o\n\x14ProductConditionInfo\x12W\n\tcondition\x18\x01 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ProductConditionEnum.ProductCondition\"\xa5\x01\n\x1aProductCustomAttributeInfo\x12\x12\n\x05value\x18\x03 \x01(\tH\x00\x88\x01\x01\x12i\n\x05index\x18\x02 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndexB\x08\n\x06_value\"1\n\x11ProductItemIdInfo\x12\x12\n\x05value\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\x84\x01\n\x0fProductTypeInfo\x12\x12\n\x05value\x18\x03 \x01(\tH\x00\x88\x01\x01\x12S\n\x05level\x18\x02 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ProductTypeLevelEnum.ProductTypeLevelB\x08\n\x06_value\"\x1d\n\x1bUnknownListingDimensionInfo\"|\n\x1aHotelDateSelectionTypeInfo\x12^\n\x04type\x18\x01 \x01(\x0e\x32P.google.ads.googleads.v5.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType\"g\n\x1dHotelAdvanceBookingWindowInfo\x12\x15\n\x08min_days\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\x15\n\x08max_days\x18\x04 \x01(\x03H\x01\x88\x01\x01\x42\x0b\n\t_min_daysB\x0b\n\t_max_days\"g\n\x15HotelLengthOfStayInfo\x12\x17\n\nmin_nights\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\x17\n\nmax_nights\x18\x04 \x01(\x03H\x01\x88\x01\x01\x42\r\n\x0b_min_nightsB\r\n\x0b_max_nights\"b\n\x13HotelCheckInDayInfo\x12K\n\x0b\x64\x61y_of_week\x18\x01 \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.DayOfWeekEnum.DayOfWeek\"g\n\x13InteractionTypeInfo\x12P\n\x04type\x18\x01 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.InteractionTypeEnum.InteractionType\"\xcf\x02\n\x0e\x41\x64ScheduleInfo\x12R\n\x0cstart_minute\x18\x01 \x01(\x0e\x32<.google.ads.googleads.v5.enums.MinuteOfHourEnum.MinuteOfHour\x12P\n\nend_minute\x18\x02 \x01(\x0e\x32<.google.ads.googleads.v5.enums.MinuteOfHourEnum.MinuteOfHour\x12\x17\n\nstart_hour\x18\x06 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_hour\x18\x07 \x01(\x05H\x01\x88\x01\x01\x12K\n\x0b\x64\x61y_of_week\x18\x05 \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.DayOfWeekEnum.DayOfWeekB\r\n\x0b_start_hourB\x0b\n\t_end_hour\"Z\n\x0c\x41geRangeInfo\x12J\n\x04type\x18\x01 \x01(\x0e\x32<.google.ads.googleads.v5.enums.AgeRangeTypeEnum.AgeRangeType\"T\n\nGenderInfo\x12\x46\n\x04type\x18\x01 \x01(\x0e\x32\x38.google.ads.googleads.v5.enums.GenderTypeEnum.GenderType\"c\n\x0fIncomeRangeInfo\x12P\n\x04type\x18\x01 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.IncomeRangeTypeEnum.IncomeRangeType\"l\n\x12ParentalStatusInfo\x12V\n\x04type\x18\x01 \x01(\x0e\x32H.google.ads.googleads.v5.enums.ParentalStatusTypeEnum.ParentalStatusType\"6\n\x10YouTubeVideoInfo\x12\x15\n\x08video_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_video_id\"<\n\x12YouTubeChannelInfo\x12\x17\n\nchannel_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_channel_id\"4\n\x0cUserListInfo\x12\x16\n\tuser_list\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_user_list\"\x92\x02\n\rProximityInfo\x12?\n\tgeo_point\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v5.common.GeoPointInfo\x12\x13\n\x06radius\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x62\n\x0cradius_units\x18\x03 \x01(\x0e\x32L.google.ads.googleads.v5.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits\x12<\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32+.google.ads.googleads.v5.common.AddressInfoB\t\n\x07_radius\"\x9c\x01\n\x0cGeoPointInfo\x12\'\n\x1alongitude_in_micro_degrees\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12&\n\x19latitude_in_micro_degrees\x18\x04 \x01(\x05H\x01\x88\x01\x01\x42\x1d\n\x1b_longitude_in_micro_degreesB\x1c\n\x1a_latitude_in_micro_degrees\"\xc7\x02\n\x0b\x41\x64\x64ressInfo\x12\x18\n\x0bpostal_code\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprovince_code\x18\t \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x63ountry_code\x18\n \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rprovince_name\x18\x0b \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0estreet_address\x18\x0c \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0fstreet_address2\x18\r \x01(\tH\x05\x88\x01\x01\x12\x16\n\tcity_name\x18\x0e \x01(\tH\x06\x88\x01\x01\x42\x0e\n\x0c_postal_codeB\x10\n\x0e_province_codeB\x0f\n\r_country_codeB\x10\n\x0e_province_nameB\x11\n\x0f_street_addressB\x12\n\x10_street_address2B\x0c\n\n_city_name\"I\n\tTopicInfo\x12\x1b\n\x0etopic_constant\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04path\x18\x04 \x03(\tB\x11\n\x0f_topic_constant\"D\n\x0cLanguageInfo\x12\x1e\n\x11language_constant\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_language_constant\"5\n\x0bIpBlockInfo\x12\x17\n\nip_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_ip_address\"f\n\x10\x43ontentLabelInfo\x12R\n\x04type\x18\x01 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ContentLabelTypeEnum.ContentLabelType\"A\n\x0b\x43\x61rrierInfo\x12\x1d\n\x10\x63\x61rrier_constant\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_carrier_constant\"R\n\x10UserInterestInfo\x12#\n\x16user_interest_category\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x19\n\x17_user_interest_category\"\x87\x01\n\x0bWebpageInfo\x12\x1b\n\x0e\x63riterion_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12H\n\nconditions\x18\x02 \x03(\x0b\x32\x34.google.ads.googleads.v5.common.WebpageConditionInfoB\x11\n\x0f_criterion_name\"\x87\x02\n\x14WebpageConditionInfo\x12\x63\n\x07operand\x18\x01 \x01(\x0e\x32R.google.ads.googleads.v5.enums.WebpageConditionOperandEnum.WebpageConditionOperand\x12\x66\n\x08operator\x18\x02 \x01(\x0e\x32T.google.ads.googleads.v5.enums.WebpageConditionOperatorEnum.WebpageConditionOperator\x12\x15\n\x08\x61rgument\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_argument\"r\n\x1aOperatingSystemVersionInfo\x12.\n!operating_system_version_constant\x18\x02 \x01(\tH\x00\x88\x01\x01\x42$\n\"_operating_system_version_constant\"o\n\x13\x41ppPaymentModelInfo\x12X\n\x04type\x18\x01 \x01(\x0e\x32J.google.ads.googleads.v5.enums.AppPaymentModelTypeEnum.AppPaymentModelType\"R\n\x10MobileDeviceInfo\x12#\n\x16mobile_device_constant\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x19\n\x17_mobile_device_constant\"F\n\x12\x43ustomAffinityInfo\x12\x1c\n\x0f\x63ustom_affinity\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_custom_affinity\"@\n\x10\x43ustomIntentInfo\x12\x1a\n\rcustom_intent\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_custom_intent\"\xd9\x01\n\x11LocationGroupInfo\x12\x11\n\x04\x66\x65\x65\x64\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x14geo_target_constants\x18\x06 \x03(\t\x12\x13\n\x06radius\x18\x07 \x01(\x03H\x01\x88\x01\x01\x12j\n\x0cradius_units\x18\x04 \x01(\x0e\x32T.google.ads.googleads.v5.enums.LocationGroupRadiusUnitsEnum.LocationGroupRadiusUnitsB\x07\n\x05_feedB\t\n\x07_radiusB\xe8\x01\n\"com.google.ads.googleads.v5.commonB\rCriteriaProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_age__range__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__payment__model__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_content__label__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_gender__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__date__selection__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_income__range__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_listing__group__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__group__radius__units__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_minute__of__hour__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_parental__status__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_preferred__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__exclusivity__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__condition__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__custom__attribute__index__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__type__level__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_proximity__radius__units__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operand__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operator__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_KEYWORDINFO = _descriptor.Descriptor( + name='KeywordInfo', + full_name='google.ads.googleads.v5.common.KeywordInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.KeywordInfo.text', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='match_type', full_name='google.ads.googleads.v5.common.KeywordInfo.match_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_text', full_name='google.ads.googleads.v5.common.KeywordInfo._text', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1643, + serialized_end=1774, +) + + +_PLACEMENTINFO = _descriptor.Descriptor( + name='PlacementInfo', + full_name='google.ads.googleads.v5.common.PlacementInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.common.PlacementInfo.url', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_url', full_name='google.ads.googleads.v5.common.PlacementInfo._url', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1776, + serialized_end=1817, +) + + +_MOBILEAPPCATEGORYINFO = _descriptor.Descriptor( + name='MobileAppCategoryInfo', + full_name='google.ads.googleads.v5.common.MobileAppCategoryInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='mobile_app_category_constant', full_name='google.ads.googleads.v5.common.MobileAppCategoryInfo.mobile_app_category_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_mobile_app_category_constant', full_name='google.ads.googleads.v5.common.MobileAppCategoryInfo._mobile_app_category_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1819, + serialized_end=1918, +) + + +_MOBILEAPPLICATIONINFO = _descriptor.Descriptor( + name='MobileApplicationInfo', + full_name='google.ads.googleads.v5.common.MobileApplicationInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.common.MobileApplicationInfo.app_id', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.common.MobileApplicationInfo.name', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_app_id', full_name='google.ads.googleads.v5.common.MobileApplicationInfo._app_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.common.MobileApplicationInfo._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1920, + serialized_end=2003, +) + + +_LOCATIONINFO = _descriptor.Descriptor( + name='LocationInfo', + full_name='google.ads.googleads.v5.common.LocationInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v5.common.LocationInfo.geo_target_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_geo_target_constant', full_name='google.ads.googleads.v5.common.LocationInfo._geo_target_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2005, + serialized_end=2077, +) + + +_DEVICEINFO = _descriptor.Descriptor( + name='DeviceInfo', + full_name='google.ads.googleads.v5.common.DeviceInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.DeviceInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2079, + serialized_end=2155, +) + + +_PREFERREDCONTENTINFO = _descriptor.Descriptor( + name='PreferredContentInfo', + full_name='google.ads.googleads.v5.common.PreferredContentInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.PreferredContentInfo.type', index=0, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2157, + serialized_end=2271, +) + + +_LISTINGGROUPINFO = _descriptor.Descriptor( + name='ListingGroupInfo', + full_name='google.ads.googleads.v5.common.ListingGroupInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.ListingGroupInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='case_value', full_name='google.ads.googleads.v5.common.ListingGroupInfo.case_value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_ad_group_criterion', full_name='google.ads.googleads.v5.common.ListingGroupInfo.parent_ad_group_criterion', index=2, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_parent_ad_group_criterion', full_name='google.ads.googleads.v5.common.ListingGroupInfo._parent_ad_group_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2274, + serialized_end=2520, +) + + +_LISTINGSCOPEINFO = _descriptor.Descriptor( + name='ListingScopeInfo', + full_name='google.ads.googleads.v5.common.ListingScopeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='dimensions', full_name='google.ads.googleads.v5.common.ListingScopeInfo.dimensions', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2522, + serialized_end=2614, +) + + +_LISTINGDIMENSIONINFO = _descriptor.Descriptor( + name='ListingDimensionInfo', + full_name='google.ads.googleads.v5.common.ListingDimensionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='hotel_id', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.hotel_id', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_class', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.hotel_class', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_country_region', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.hotel_country_region', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_state', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.hotel_state', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_city', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.hotel_city', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_bidding_category', index=5, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_brand', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_brand', index=6, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_channel', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_channel', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_channel_exclusivity', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_channel_exclusivity', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_condition', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_condition', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_custom_attribute', index=10, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_item_id', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_item_id', index=11, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.product_type', index=12, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unknown_listing_dimension', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.unknown_listing_dimension', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='dimension', full_name='google.ads.googleads.v5.common.ListingDimensionInfo.dimension', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2617, + serialized_end=3796, +) + + +_HOTELIDINFO = _descriptor.Descriptor( + name='HotelIdInfo', + full_name='google.ads.googleads.v5.common.HotelIdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.HotelIdInfo.value', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.HotelIdInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3798, + serialized_end=3841, +) + + +_HOTELCLASSINFO = _descriptor.Descriptor( + name='HotelClassInfo', + full_name='google.ads.googleads.v5.common.HotelClassInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.HotelClassInfo.value', index=0, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.HotelClassInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3843, + serialized_end=3889, +) + + +_HOTELCOUNTRYREGIONINFO = _descriptor.Descriptor( + name='HotelCountryRegionInfo', + full_name='google.ads.googleads.v5.common.HotelCountryRegionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='country_region_criterion', full_name='google.ads.googleads.v5.common.HotelCountryRegionInfo.country_region_criterion', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_country_region_criterion', full_name='google.ads.googleads.v5.common.HotelCountryRegionInfo._country_region_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3891, + serialized_end=3983, +) + + +_HOTELSTATEINFO = _descriptor.Descriptor( + name='HotelStateInfo', + full_name='google.ads.googleads.v5.common.HotelStateInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='state_criterion', full_name='google.ads.googleads.v5.common.HotelStateInfo.state_criterion', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_state_criterion', full_name='google.ads.googleads.v5.common.HotelStateInfo._state_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3985, + serialized_end=4051, +) + + +_HOTELCITYINFO = _descriptor.Descriptor( + name='HotelCityInfo', + full_name='google.ads.googleads.v5.common.HotelCityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='city_criterion', full_name='google.ads.googleads.v5.common.HotelCityInfo.city_criterion', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_city_criterion', full_name='google.ads.googleads.v5.common.HotelCityInfo._city_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4053, + serialized_end=4116, +) + + +_PRODUCTBIDDINGCATEGORYINFO = _descriptor.Descriptor( + name='ProductBiddingCategoryInfo', + full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo.id', index=0, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo.country_code', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='level', full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo.level', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.common.ProductBiddingCategoryInfo._country_code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4119, + serialized_end=4322, +) + + +_PRODUCTBRANDINFO = _descriptor.Descriptor( + name='ProductBrandInfo', + full_name='google.ads.googleads.v5.common.ProductBrandInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.ProductBrandInfo.value', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.ProductBrandInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4324, + serialized_end=4372, +) + + +_PRODUCTCHANNELINFO = _descriptor.Descriptor( + name='ProductChannelInfo', + full_name='google.ads.googleads.v5.common.ProductChannelInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='channel', full_name='google.ads.googleads.v5.common.ProductChannelInfo.channel', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4374, + serialized_end=4477, +) + + +_PRODUCTCHANNELEXCLUSIVITYINFO = _descriptor.Descriptor( + name='ProductChannelExclusivityInfo', + full_name='google.ads.googleads.v5.common.ProductChannelExclusivityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='channel_exclusivity', full_name='google.ads.googleads.v5.common.ProductChannelExclusivityInfo.channel_exclusivity', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4480, + serialized_end=4628, +) + + +_PRODUCTCONDITIONINFO = _descriptor.Descriptor( + name='ProductConditionInfo', + full_name='google.ads.googleads.v5.common.ProductConditionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='condition', full_name='google.ads.googleads.v5.common.ProductConditionInfo.condition', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4630, + serialized_end=4741, +) + + +_PRODUCTCUSTOMATTRIBUTEINFO = _descriptor.Descriptor( + name='ProductCustomAttributeInfo', + full_name='google.ads.googleads.v5.common.ProductCustomAttributeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.ProductCustomAttributeInfo.value', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='index', full_name='google.ads.googleads.v5.common.ProductCustomAttributeInfo.index', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.ProductCustomAttributeInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4744, + serialized_end=4909, +) + + +_PRODUCTITEMIDINFO = _descriptor.Descriptor( + name='ProductItemIdInfo', + full_name='google.ads.googleads.v5.common.ProductItemIdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.ProductItemIdInfo.value', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.ProductItemIdInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4911, + serialized_end=4960, +) + + +_PRODUCTTYPEINFO = _descriptor.Descriptor( + name='ProductTypeInfo', + full_name='google.ads.googleads.v5.common.ProductTypeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.ProductTypeInfo.value', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='level', full_name='google.ads.googleads.v5.common.ProductTypeInfo.level', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.ProductTypeInfo._value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4963, + serialized_end=5095, +) + + +_UNKNOWNLISTINGDIMENSIONINFO = _descriptor.Descriptor( + name='UnknownListingDimensionInfo', + full_name='google.ads.googleads.v5.common.UnknownListingDimensionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5097, + serialized_end=5126, +) + + +_HOTELDATESELECTIONTYPEINFO = _descriptor.Descriptor( + name='HotelDateSelectionTypeInfo', + full_name='google.ads.googleads.v5.common.HotelDateSelectionTypeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.HotelDateSelectionTypeInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5128, + serialized_end=5252, +) + + +_HOTELADVANCEBOOKINGWINDOWINFO = _descriptor.Descriptor( + name='HotelAdvanceBookingWindowInfo', + full_name='google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='min_days', full_name='google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo.min_days', index=0, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_days', full_name='google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo.max_days', index=1, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_min_days', full_name='google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo._min_days', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_max_days', full_name='google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo._max_days', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5254, + serialized_end=5357, +) + + +_HOTELLENGTHOFSTAYINFO = _descriptor.Descriptor( + name='HotelLengthOfStayInfo', + full_name='google.ads.googleads.v5.common.HotelLengthOfStayInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='min_nights', full_name='google.ads.googleads.v5.common.HotelLengthOfStayInfo.min_nights', index=0, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_nights', full_name='google.ads.googleads.v5.common.HotelLengthOfStayInfo.max_nights', index=1, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_min_nights', full_name='google.ads.googleads.v5.common.HotelLengthOfStayInfo._min_nights', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_max_nights', full_name='google.ads.googleads.v5.common.HotelLengthOfStayInfo._max_nights', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5359, + serialized_end=5462, +) + + +_HOTELCHECKINDAYINFO = _descriptor.Descriptor( + name='HotelCheckInDayInfo', + full_name='google.ads.googleads.v5.common.HotelCheckInDayInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='day_of_week', full_name='google.ads.googleads.v5.common.HotelCheckInDayInfo.day_of_week', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5464, + serialized_end=5562, +) + + +_INTERACTIONTYPEINFO = _descriptor.Descriptor( + name='InteractionTypeInfo', + full_name='google.ads.googleads.v5.common.InteractionTypeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.InteractionTypeInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5564, + serialized_end=5667, +) + + +_ADSCHEDULEINFO = _descriptor.Descriptor( + name='AdScheduleInfo', + full_name='google.ads.googleads.v5.common.AdScheduleInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_minute', full_name='google.ads.googleads.v5.common.AdScheduleInfo.start_minute', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_minute', full_name='google.ads.googleads.v5.common.AdScheduleInfo.end_minute', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_hour', full_name='google.ads.googleads.v5.common.AdScheduleInfo.start_hour', index=2, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_hour', full_name='google.ads.googleads.v5.common.AdScheduleInfo.end_hour', index=3, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='day_of_week', full_name='google.ads.googleads.v5.common.AdScheduleInfo.day_of_week', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_hour', full_name='google.ads.googleads.v5.common.AdScheduleInfo._start_hour', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_hour', full_name='google.ads.googleads.v5.common.AdScheduleInfo._end_hour', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5670, + serialized_end=6005, +) + + +_AGERANGEINFO = _descriptor.Descriptor( + name='AgeRangeInfo', + full_name='google.ads.googleads.v5.common.AgeRangeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.AgeRangeInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6007, + serialized_end=6097, +) + + +_GENDERINFO = _descriptor.Descriptor( + name='GenderInfo', + full_name='google.ads.googleads.v5.common.GenderInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.GenderInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6099, + serialized_end=6183, +) + + +_INCOMERANGEINFO = _descriptor.Descriptor( + name='IncomeRangeInfo', + full_name='google.ads.googleads.v5.common.IncomeRangeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.IncomeRangeInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6185, + serialized_end=6284, +) + + +_PARENTALSTATUSINFO = _descriptor.Descriptor( + name='ParentalStatusInfo', + full_name='google.ads.googleads.v5.common.ParentalStatusInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.ParentalStatusInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6286, + serialized_end=6394, +) + + +_YOUTUBEVIDEOINFO = _descriptor.Descriptor( + name='YouTubeVideoInfo', + full_name='google.ads.googleads.v5.common.YouTubeVideoInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='video_id', full_name='google.ads.googleads.v5.common.YouTubeVideoInfo.video_id', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_video_id', full_name='google.ads.googleads.v5.common.YouTubeVideoInfo._video_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6396, + serialized_end=6450, +) + + +_YOUTUBECHANNELINFO = _descriptor.Descriptor( + name='YouTubeChannelInfo', + full_name='google.ads.googleads.v5.common.YouTubeChannelInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='channel_id', full_name='google.ads.googleads.v5.common.YouTubeChannelInfo.channel_id', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_channel_id', full_name='google.ads.googleads.v5.common.YouTubeChannelInfo._channel_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6452, + serialized_end=6512, +) + + +_USERLISTINFO = _descriptor.Descriptor( + name='UserListInfo', + full_name='google.ads.googleads.v5.common.UserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.common.UserListInfo.user_list', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_user_list', full_name='google.ads.googleads.v5.common.UserListInfo._user_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6514, + serialized_end=6566, +) + + +_PROXIMITYINFO = _descriptor.Descriptor( + name='ProximityInfo', + full_name='google.ads.googleads.v5.common.ProximityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='geo_point', full_name='google.ads.googleads.v5.common.ProximityInfo.geo_point', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='radius', full_name='google.ads.googleads.v5.common.ProximityInfo.radius', index=1, + number=5, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='radius_units', full_name='google.ads.googleads.v5.common.ProximityInfo.radius_units', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='address', full_name='google.ads.googleads.v5.common.ProximityInfo.address', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_radius', full_name='google.ads.googleads.v5.common.ProximityInfo._radius', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6569, + serialized_end=6843, +) + + +_GEOPOINTINFO = _descriptor.Descriptor( + name='GeoPointInfo', + full_name='google.ads.googleads.v5.common.GeoPointInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='longitude_in_micro_degrees', full_name='google.ads.googleads.v5.common.GeoPointInfo.longitude_in_micro_degrees', index=0, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='latitude_in_micro_degrees', full_name='google.ads.googleads.v5.common.GeoPointInfo.latitude_in_micro_degrees', index=1, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_longitude_in_micro_degrees', full_name='google.ads.googleads.v5.common.GeoPointInfo._longitude_in_micro_degrees', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_latitude_in_micro_degrees', full_name='google.ads.googleads.v5.common.GeoPointInfo._latitude_in_micro_degrees', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6846, + serialized_end=7002, +) + + +_ADDRESSINFO = _descriptor.Descriptor( + name='AddressInfo', + full_name='google.ads.googleads.v5.common.AddressInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='postal_code', full_name='google.ads.googleads.v5.common.AddressInfo.postal_code', index=0, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='province_code', full_name='google.ads.googleads.v5.common.AddressInfo.province_code', index=1, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.AddressInfo.country_code', index=2, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='province_name', full_name='google.ads.googleads.v5.common.AddressInfo.province_name', index=3, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='street_address', full_name='google.ads.googleads.v5.common.AddressInfo.street_address', index=4, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='street_address2', full_name='google.ads.googleads.v5.common.AddressInfo.street_address2', index=5, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='city_name', full_name='google.ads.googleads.v5.common.AddressInfo.city_name', index=6, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_postal_code', full_name='google.ads.googleads.v5.common.AddressInfo._postal_code', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_province_code', full_name='google.ads.googleads.v5.common.AddressInfo._province_code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.common.AddressInfo._country_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_province_name', full_name='google.ads.googleads.v5.common.AddressInfo._province_name', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_street_address', full_name='google.ads.googleads.v5.common.AddressInfo._street_address', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_street_address2', full_name='google.ads.googleads.v5.common.AddressInfo._street_address2', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_city_name', full_name='google.ads.googleads.v5.common.AddressInfo._city_name', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7005, + serialized_end=7332, +) + + +_TOPICINFO = _descriptor.Descriptor( + name='TopicInfo', + full_name='google.ads.googleads.v5.common.TopicInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='topic_constant', full_name='google.ads.googleads.v5.common.TopicInfo.topic_constant', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path', full_name='google.ads.googleads.v5.common.TopicInfo.path', index=1, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_topic_constant', full_name='google.ads.googleads.v5.common.TopicInfo._topic_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7334, + serialized_end=7407, +) + + +_LANGUAGEINFO = _descriptor.Descriptor( + name='LanguageInfo', + full_name='google.ads.googleads.v5.common.LanguageInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='language_constant', full_name='google.ads.googleads.v5.common.LanguageInfo.language_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_language_constant', full_name='google.ads.googleads.v5.common.LanguageInfo._language_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7409, + serialized_end=7477, +) + + +_IPBLOCKINFO = _descriptor.Descriptor( + name='IpBlockInfo', + full_name='google.ads.googleads.v5.common.IpBlockInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ip_address', full_name='google.ads.googleads.v5.common.IpBlockInfo.ip_address', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ip_address', full_name='google.ads.googleads.v5.common.IpBlockInfo._ip_address', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7479, + serialized_end=7532, +) + + +_CONTENTLABELINFO = _descriptor.Descriptor( + name='ContentLabelInfo', + full_name='google.ads.googleads.v5.common.ContentLabelInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.ContentLabelInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7534, + serialized_end=7636, +) + + +_CARRIERINFO = _descriptor.Descriptor( + name='CarrierInfo', + full_name='google.ads.googleads.v5.common.CarrierInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='carrier_constant', full_name='google.ads.googleads.v5.common.CarrierInfo.carrier_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_carrier_constant', full_name='google.ads.googleads.v5.common.CarrierInfo._carrier_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7638, + serialized_end=7703, +) + + +_USERINTERESTINFO = _descriptor.Descriptor( + name='UserInterestInfo', + full_name='google.ads.googleads.v5.common.UserInterestInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='user_interest_category', full_name='google.ads.googleads.v5.common.UserInterestInfo.user_interest_category', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_user_interest_category', full_name='google.ads.googleads.v5.common.UserInterestInfo._user_interest_category', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7705, + serialized_end=7787, +) + + +_WEBPAGEINFO = _descriptor.Descriptor( + name='WebpageInfo', + full_name='google.ads.googleads.v5.common.WebpageInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='criterion_name', full_name='google.ads.googleads.v5.common.WebpageInfo.criterion_name', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conditions', full_name='google.ads.googleads.v5.common.WebpageInfo.conditions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_criterion_name', full_name='google.ads.googleads.v5.common.WebpageInfo._criterion_name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7790, + serialized_end=7925, +) + + +_WEBPAGECONDITIONINFO = _descriptor.Descriptor( + name='WebpageConditionInfo', + full_name='google.ads.googleads.v5.common.WebpageConditionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operand', full_name='google.ads.googleads.v5.common.WebpageConditionInfo.operand', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.WebpageConditionInfo.operator', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='argument', full_name='google.ads.googleads.v5.common.WebpageConditionInfo.argument', index=2, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_argument', full_name='google.ads.googleads.v5.common.WebpageConditionInfo._argument', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7928, + serialized_end=8191, +) + + +_OPERATINGSYSTEMVERSIONINFO = _descriptor.Descriptor( + name='OperatingSystemVersionInfo', + full_name='google.ads.googleads.v5.common.OperatingSystemVersionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operating_system_version_constant', full_name='google.ads.googleads.v5.common.OperatingSystemVersionInfo.operating_system_version_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_operating_system_version_constant', full_name='google.ads.googleads.v5.common.OperatingSystemVersionInfo._operating_system_version_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8193, + serialized_end=8307, +) + + +_APPPAYMENTMODELINFO = _descriptor.Descriptor( + name='AppPaymentModelInfo', + full_name='google.ads.googleads.v5.common.AppPaymentModelInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.AppPaymentModelInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8309, + serialized_end=8420, +) + + +_MOBILEDEVICEINFO = _descriptor.Descriptor( + name='MobileDeviceInfo', + full_name='google.ads.googleads.v5.common.MobileDeviceInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='mobile_device_constant', full_name='google.ads.googleads.v5.common.MobileDeviceInfo.mobile_device_constant', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_mobile_device_constant', full_name='google.ads.googleads.v5.common.MobileDeviceInfo._mobile_device_constant', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8422, + serialized_end=8504, +) + + +_CUSTOMAFFINITYINFO = _descriptor.Descriptor( + name='CustomAffinityInfo', + full_name='google.ads.googleads.v5.common.CustomAffinityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='custom_affinity', full_name='google.ads.googleads.v5.common.CustomAffinityInfo.custom_affinity', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_custom_affinity', full_name='google.ads.googleads.v5.common.CustomAffinityInfo._custom_affinity', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8506, + serialized_end=8576, +) + + +_CUSTOMINTENTINFO = _descriptor.Descriptor( + name='CustomIntentInfo', + full_name='google.ads.googleads.v5.common.CustomIntentInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='custom_intent', full_name='google.ads.googleads.v5.common.CustomIntentInfo.custom_intent', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_custom_intent', full_name='google.ads.googleads.v5.common.CustomIntentInfo._custom_intent', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8578, + serialized_end=8642, +) + + +_LOCATIONGROUPINFO = _descriptor.Descriptor( + name='LocationGroupInfo', + full_name='google.ads.googleads.v5.common.LocationGroupInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.common.LocationGroupInfo.feed', index=0, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constants', full_name='google.ads.googleads.v5.common.LocationGroupInfo.geo_target_constants', index=1, + number=6, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='radius', full_name='google.ads.googleads.v5.common.LocationGroupInfo.radius', index=2, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='radius_units', full_name='google.ads.googleads.v5.common.LocationGroupInfo.radius_units', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_feed', full_name='google.ads.googleads.v5.common.LocationGroupInfo._feed', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_radius', full_name='google.ads.googleads.v5.common.LocationGroupInfo._radius', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=8645, + serialized_end=8862, +) + +_KEYWORDINFO.fields_by_name['match_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2._KEYWORDMATCHTYPEENUM_KEYWORDMATCHTYPE +_KEYWORDINFO.oneofs_by_name['_text'].fields.append( + _KEYWORDINFO.fields_by_name['text']) +_KEYWORDINFO.fields_by_name['text'].containing_oneof = _KEYWORDINFO.oneofs_by_name['_text'] +_PLACEMENTINFO.oneofs_by_name['_url'].fields.append( + _PLACEMENTINFO.fields_by_name['url']) +_PLACEMENTINFO.fields_by_name['url'].containing_oneof = _PLACEMENTINFO.oneofs_by_name['_url'] +_MOBILEAPPCATEGORYINFO.oneofs_by_name['_mobile_app_category_constant'].fields.append( + _MOBILEAPPCATEGORYINFO.fields_by_name['mobile_app_category_constant']) +_MOBILEAPPCATEGORYINFO.fields_by_name['mobile_app_category_constant'].containing_oneof = _MOBILEAPPCATEGORYINFO.oneofs_by_name['_mobile_app_category_constant'] +_MOBILEAPPLICATIONINFO.oneofs_by_name['_app_id'].fields.append( + _MOBILEAPPLICATIONINFO.fields_by_name['app_id']) +_MOBILEAPPLICATIONINFO.fields_by_name['app_id'].containing_oneof = _MOBILEAPPLICATIONINFO.oneofs_by_name['_app_id'] +_MOBILEAPPLICATIONINFO.oneofs_by_name['_name'].fields.append( + _MOBILEAPPLICATIONINFO.fields_by_name['name']) +_MOBILEAPPLICATIONINFO.fields_by_name['name'].containing_oneof = _MOBILEAPPLICATIONINFO.oneofs_by_name['_name'] +_LOCATIONINFO.oneofs_by_name['_geo_target_constant'].fields.append( + _LOCATIONINFO.fields_by_name['geo_target_constant']) +_LOCATIONINFO.fields_by_name['geo_target_constant'].containing_oneof = _LOCATIONINFO.oneofs_by_name['_geo_target_constant'] +_DEVICEINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2._DEVICEENUM_DEVICE +_PREFERREDCONTENTINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_preferred__content__type__pb2._PREFERREDCONTENTTYPEENUM_PREFERREDCONTENTTYPE +_LISTINGGROUPINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_listing__group__type__pb2._LISTINGGROUPTYPEENUM_LISTINGGROUPTYPE +_LISTINGGROUPINFO.fields_by_name['case_value'].message_type = _LISTINGDIMENSIONINFO +_LISTINGGROUPINFO.oneofs_by_name['_parent_ad_group_criterion'].fields.append( + _LISTINGGROUPINFO.fields_by_name['parent_ad_group_criterion']) +_LISTINGGROUPINFO.fields_by_name['parent_ad_group_criterion'].containing_oneof = _LISTINGGROUPINFO.oneofs_by_name['_parent_ad_group_criterion'] +_LISTINGSCOPEINFO.fields_by_name['dimensions'].message_type = _LISTINGDIMENSIONINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_id'].message_type = _HOTELIDINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_class'].message_type = _HOTELCLASSINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region'].message_type = _HOTELCOUNTRYREGIONINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_state'].message_type = _HOTELSTATEINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_city'].message_type = _HOTELCITYINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_bidding_category'].message_type = _PRODUCTBIDDINGCATEGORYINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_brand'].message_type = _PRODUCTBRANDINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_channel'].message_type = _PRODUCTCHANNELINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_channel_exclusivity'].message_type = _PRODUCTCHANNELEXCLUSIVITYINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_condition'].message_type = _PRODUCTCONDITIONINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_custom_attribute'].message_type = _PRODUCTCUSTOMATTRIBUTEINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_item_id'].message_type = _PRODUCTITEMIDINFO +_LISTINGDIMENSIONINFO.fields_by_name['product_type'].message_type = _PRODUCTTYPEINFO +_LISTINGDIMENSIONINFO.fields_by_name['unknown_listing_dimension'].message_type = _UNKNOWNLISTINGDIMENSIONINFO +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_id']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_id'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_class']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_class'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_state']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_state'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_city']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_city'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_bidding_category']) +_LISTINGDIMENSIONINFO.fields_by_name['product_bidding_category'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_brand']) +_LISTINGDIMENSIONINFO.fields_by_name['product_brand'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_channel']) +_LISTINGDIMENSIONINFO.fields_by_name['product_channel'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_channel_exclusivity']) +_LISTINGDIMENSIONINFO.fields_by_name['product_channel_exclusivity'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_condition']) +_LISTINGDIMENSIONINFO.fields_by_name['product_condition'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_custom_attribute']) +_LISTINGDIMENSIONINFO.fields_by_name['product_custom_attribute'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_item_id']) +_LISTINGDIMENSIONINFO.fields_by_name['product_item_id'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['product_type']) +_LISTINGDIMENSIONINFO.fields_by_name['product_type'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['unknown_listing_dimension']) +_LISTINGDIMENSIONINFO.fields_by_name['unknown_listing_dimension'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_HOTELIDINFO.oneofs_by_name['_value'].fields.append( + _HOTELIDINFO.fields_by_name['value']) +_HOTELIDINFO.fields_by_name['value'].containing_oneof = _HOTELIDINFO.oneofs_by_name['_value'] +_HOTELCLASSINFO.oneofs_by_name['_value'].fields.append( + _HOTELCLASSINFO.fields_by_name['value']) +_HOTELCLASSINFO.fields_by_name['value'].containing_oneof = _HOTELCLASSINFO.oneofs_by_name['_value'] +_HOTELCOUNTRYREGIONINFO.oneofs_by_name['_country_region_criterion'].fields.append( + _HOTELCOUNTRYREGIONINFO.fields_by_name['country_region_criterion']) +_HOTELCOUNTRYREGIONINFO.fields_by_name['country_region_criterion'].containing_oneof = _HOTELCOUNTRYREGIONINFO.oneofs_by_name['_country_region_criterion'] +_HOTELSTATEINFO.oneofs_by_name['_state_criterion'].fields.append( + _HOTELSTATEINFO.fields_by_name['state_criterion']) +_HOTELSTATEINFO.fields_by_name['state_criterion'].containing_oneof = _HOTELSTATEINFO.oneofs_by_name['_state_criterion'] +_HOTELCITYINFO.oneofs_by_name['_city_criterion'].fields.append( + _HOTELCITYINFO.fields_by_name['city_criterion']) +_HOTELCITYINFO.fields_by_name['city_criterion'].containing_oneof = _HOTELCITYINFO.oneofs_by_name['_city_criterion'] +_PRODUCTBIDDINGCATEGORYINFO.fields_by_name['level'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2._PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL +_PRODUCTBIDDINGCATEGORYINFO.oneofs_by_name['_id'].fields.append( + _PRODUCTBIDDINGCATEGORYINFO.fields_by_name['id']) +_PRODUCTBIDDINGCATEGORYINFO.fields_by_name['id'].containing_oneof = _PRODUCTBIDDINGCATEGORYINFO.oneofs_by_name['_id'] +_PRODUCTBIDDINGCATEGORYINFO.oneofs_by_name['_country_code'].fields.append( + _PRODUCTBIDDINGCATEGORYINFO.fields_by_name['country_code']) +_PRODUCTBIDDINGCATEGORYINFO.fields_by_name['country_code'].containing_oneof = _PRODUCTBIDDINGCATEGORYINFO.oneofs_by_name['_country_code'] +_PRODUCTBRANDINFO.oneofs_by_name['_value'].fields.append( + _PRODUCTBRANDINFO.fields_by_name['value']) +_PRODUCTBRANDINFO.fields_by_name['value'].containing_oneof = _PRODUCTBRANDINFO.oneofs_by_name['_value'] +_PRODUCTCHANNELINFO.fields_by_name['channel'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__pb2._PRODUCTCHANNELENUM_PRODUCTCHANNEL +_PRODUCTCHANNELEXCLUSIVITYINFO.fields_by_name['channel_exclusivity'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__exclusivity__pb2._PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY +_PRODUCTCONDITIONINFO.fields_by_name['condition'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__condition__pb2._PRODUCTCONDITIONENUM_PRODUCTCONDITION +_PRODUCTCUSTOMATTRIBUTEINFO.fields_by_name['index'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__custom__attribute__index__pb2._PRODUCTCUSTOMATTRIBUTEINDEXENUM_PRODUCTCUSTOMATTRIBUTEINDEX +_PRODUCTCUSTOMATTRIBUTEINFO.oneofs_by_name['_value'].fields.append( + _PRODUCTCUSTOMATTRIBUTEINFO.fields_by_name['value']) +_PRODUCTCUSTOMATTRIBUTEINFO.fields_by_name['value'].containing_oneof = _PRODUCTCUSTOMATTRIBUTEINFO.oneofs_by_name['_value'] +_PRODUCTITEMIDINFO.oneofs_by_name['_value'].fields.append( + _PRODUCTITEMIDINFO.fields_by_name['value']) +_PRODUCTITEMIDINFO.fields_by_name['value'].containing_oneof = _PRODUCTITEMIDINFO.oneofs_by_name['_value'] +_PRODUCTTYPEINFO.fields_by_name['level'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__type__level__pb2._PRODUCTTYPELEVELENUM_PRODUCTTYPELEVEL +_PRODUCTTYPEINFO.oneofs_by_name['_value'].fields.append( + _PRODUCTTYPEINFO.fields_by_name['value']) +_PRODUCTTYPEINFO.fields_by_name['value'].containing_oneof = _PRODUCTTYPEINFO.oneofs_by_name['_value'] +_HOTELDATESELECTIONTYPEINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__date__selection__type__pb2._HOTELDATESELECTIONTYPEENUM_HOTELDATESELECTIONTYPE +_HOTELADVANCEBOOKINGWINDOWINFO.oneofs_by_name['_min_days'].fields.append( + _HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['min_days']) +_HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['min_days'].containing_oneof = _HOTELADVANCEBOOKINGWINDOWINFO.oneofs_by_name['_min_days'] +_HOTELADVANCEBOOKINGWINDOWINFO.oneofs_by_name['_max_days'].fields.append( + _HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['max_days']) +_HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['max_days'].containing_oneof = _HOTELADVANCEBOOKINGWINDOWINFO.oneofs_by_name['_max_days'] +_HOTELLENGTHOFSTAYINFO.oneofs_by_name['_min_nights'].fields.append( + _HOTELLENGTHOFSTAYINFO.fields_by_name['min_nights']) +_HOTELLENGTHOFSTAYINFO.fields_by_name['min_nights'].containing_oneof = _HOTELLENGTHOFSTAYINFO.oneofs_by_name['_min_nights'] +_HOTELLENGTHOFSTAYINFO.oneofs_by_name['_max_nights'].fields.append( + _HOTELLENGTHOFSTAYINFO.fields_by_name['max_nights']) +_HOTELLENGTHOFSTAYINFO.fields_by_name['max_nights'].containing_oneof = _HOTELLENGTHOFSTAYINFO.oneofs_by_name['_max_nights'] +_HOTELCHECKINDAYINFO.fields_by_name['day_of_week'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2._DAYOFWEEKENUM_DAYOFWEEK +_INTERACTIONTYPEINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__type__pb2._INTERACTIONTYPEENUM_INTERACTIONTYPE +_ADSCHEDULEINFO.fields_by_name['start_minute'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_minute__of__hour__pb2._MINUTEOFHOURENUM_MINUTEOFHOUR +_ADSCHEDULEINFO.fields_by_name['end_minute'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_minute__of__hour__pb2._MINUTEOFHOURENUM_MINUTEOFHOUR +_ADSCHEDULEINFO.fields_by_name['day_of_week'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2._DAYOFWEEKENUM_DAYOFWEEK +_ADSCHEDULEINFO.oneofs_by_name['_start_hour'].fields.append( + _ADSCHEDULEINFO.fields_by_name['start_hour']) +_ADSCHEDULEINFO.fields_by_name['start_hour'].containing_oneof = _ADSCHEDULEINFO.oneofs_by_name['_start_hour'] +_ADSCHEDULEINFO.oneofs_by_name['_end_hour'].fields.append( + _ADSCHEDULEINFO.fields_by_name['end_hour']) +_ADSCHEDULEINFO.fields_by_name['end_hour'].containing_oneof = _ADSCHEDULEINFO.oneofs_by_name['_end_hour'] +_AGERANGEINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_age__range__type__pb2._AGERANGETYPEENUM_AGERANGETYPE +_GENDERINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_gender__type__pb2._GENDERTYPEENUM_GENDERTYPE +_INCOMERANGEINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_income__range__type__pb2._INCOMERANGETYPEENUM_INCOMERANGETYPE +_PARENTALSTATUSINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_parental__status__type__pb2._PARENTALSTATUSTYPEENUM_PARENTALSTATUSTYPE +_YOUTUBEVIDEOINFO.oneofs_by_name['_video_id'].fields.append( + _YOUTUBEVIDEOINFO.fields_by_name['video_id']) +_YOUTUBEVIDEOINFO.fields_by_name['video_id'].containing_oneof = _YOUTUBEVIDEOINFO.oneofs_by_name['_video_id'] +_YOUTUBECHANNELINFO.oneofs_by_name['_channel_id'].fields.append( + _YOUTUBECHANNELINFO.fields_by_name['channel_id']) +_YOUTUBECHANNELINFO.fields_by_name['channel_id'].containing_oneof = _YOUTUBECHANNELINFO.oneofs_by_name['_channel_id'] +_USERLISTINFO.oneofs_by_name['_user_list'].fields.append( + _USERLISTINFO.fields_by_name['user_list']) +_USERLISTINFO.fields_by_name['user_list'].containing_oneof = _USERLISTINFO.oneofs_by_name['_user_list'] +_PROXIMITYINFO.fields_by_name['geo_point'].message_type = _GEOPOINTINFO +_PROXIMITYINFO.fields_by_name['radius_units'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_proximity__radius__units__pb2._PROXIMITYRADIUSUNITSENUM_PROXIMITYRADIUSUNITS +_PROXIMITYINFO.fields_by_name['address'].message_type = _ADDRESSINFO +_PROXIMITYINFO.oneofs_by_name['_radius'].fields.append( + _PROXIMITYINFO.fields_by_name['radius']) +_PROXIMITYINFO.fields_by_name['radius'].containing_oneof = _PROXIMITYINFO.oneofs_by_name['_radius'] +_GEOPOINTINFO.oneofs_by_name['_longitude_in_micro_degrees'].fields.append( + _GEOPOINTINFO.fields_by_name['longitude_in_micro_degrees']) +_GEOPOINTINFO.fields_by_name['longitude_in_micro_degrees'].containing_oneof = _GEOPOINTINFO.oneofs_by_name['_longitude_in_micro_degrees'] +_GEOPOINTINFO.oneofs_by_name['_latitude_in_micro_degrees'].fields.append( + _GEOPOINTINFO.fields_by_name['latitude_in_micro_degrees']) +_GEOPOINTINFO.fields_by_name['latitude_in_micro_degrees'].containing_oneof = _GEOPOINTINFO.oneofs_by_name['_latitude_in_micro_degrees'] +_ADDRESSINFO.oneofs_by_name['_postal_code'].fields.append( + _ADDRESSINFO.fields_by_name['postal_code']) +_ADDRESSINFO.fields_by_name['postal_code'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_postal_code'] +_ADDRESSINFO.oneofs_by_name['_province_code'].fields.append( + _ADDRESSINFO.fields_by_name['province_code']) +_ADDRESSINFO.fields_by_name['province_code'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_province_code'] +_ADDRESSINFO.oneofs_by_name['_country_code'].fields.append( + _ADDRESSINFO.fields_by_name['country_code']) +_ADDRESSINFO.fields_by_name['country_code'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_country_code'] +_ADDRESSINFO.oneofs_by_name['_province_name'].fields.append( + _ADDRESSINFO.fields_by_name['province_name']) +_ADDRESSINFO.fields_by_name['province_name'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_province_name'] +_ADDRESSINFO.oneofs_by_name['_street_address'].fields.append( + _ADDRESSINFO.fields_by_name['street_address']) +_ADDRESSINFO.fields_by_name['street_address'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_street_address'] +_ADDRESSINFO.oneofs_by_name['_street_address2'].fields.append( + _ADDRESSINFO.fields_by_name['street_address2']) +_ADDRESSINFO.fields_by_name['street_address2'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_street_address2'] +_ADDRESSINFO.oneofs_by_name['_city_name'].fields.append( + _ADDRESSINFO.fields_by_name['city_name']) +_ADDRESSINFO.fields_by_name['city_name'].containing_oneof = _ADDRESSINFO.oneofs_by_name['_city_name'] +_TOPICINFO.oneofs_by_name['_topic_constant'].fields.append( + _TOPICINFO.fields_by_name['topic_constant']) +_TOPICINFO.fields_by_name['topic_constant'].containing_oneof = _TOPICINFO.oneofs_by_name['_topic_constant'] +_LANGUAGEINFO.oneofs_by_name['_language_constant'].fields.append( + _LANGUAGEINFO.fields_by_name['language_constant']) +_LANGUAGEINFO.fields_by_name['language_constant'].containing_oneof = _LANGUAGEINFO.oneofs_by_name['_language_constant'] +_IPBLOCKINFO.oneofs_by_name['_ip_address'].fields.append( + _IPBLOCKINFO.fields_by_name['ip_address']) +_IPBLOCKINFO.fields_by_name['ip_address'].containing_oneof = _IPBLOCKINFO.oneofs_by_name['_ip_address'] +_CONTENTLABELINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_content__label__type__pb2._CONTENTLABELTYPEENUM_CONTENTLABELTYPE +_CARRIERINFO.oneofs_by_name['_carrier_constant'].fields.append( + _CARRIERINFO.fields_by_name['carrier_constant']) +_CARRIERINFO.fields_by_name['carrier_constant'].containing_oneof = _CARRIERINFO.oneofs_by_name['_carrier_constant'] +_USERINTERESTINFO.oneofs_by_name['_user_interest_category'].fields.append( + _USERINTERESTINFO.fields_by_name['user_interest_category']) +_USERINTERESTINFO.fields_by_name['user_interest_category'].containing_oneof = _USERINTERESTINFO.oneofs_by_name['_user_interest_category'] +_WEBPAGEINFO.fields_by_name['conditions'].message_type = _WEBPAGECONDITIONINFO +_WEBPAGEINFO.oneofs_by_name['_criterion_name'].fields.append( + _WEBPAGEINFO.fields_by_name['criterion_name']) +_WEBPAGEINFO.fields_by_name['criterion_name'].containing_oneof = _WEBPAGEINFO.oneofs_by_name['_criterion_name'] +_WEBPAGECONDITIONINFO.fields_by_name['operand'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operand__pb2._WEBPAGECONDITIONOPERANDENUM_WEBPAGECONDITIONOPERAND +_WEBPAGECONDITIONINFO.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_webpage__condition__operator__pb2._WEBPAGECONDITIONOPERATORENUM_WEBPAGECONDITIONOPERATOR +_WEBPAGECONDITIONINFO.oneofs_by_name['_argument'].fields.append( + _WEBPAGECONDITIONINFO.fields_by_name['argument']) +_WEBPAGECONDITIONINFO.fields_by_name['argument'].containing_oneof = _WEBPAGECONDITIONINFO.oneofs_by_name['_argument'] +_OPERATINGSYSTEMVERSIONINFO.oneofs_by_name['_operating_system_version_constant'].fields.append( + _OPERATINGSYSTEMVERSIONINFO.fields_by_name['operating_system_version_constant']) +_OPERATINGSYSTEMVERSIONINFO.fields_by_name['operating_system_version_constant'].containing_oneof = _OPERATINGSYSTEMVERSIONINFO.oneofs_by_name['_operating_system_version_constant'] +_APPPAYMENTMODELINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__payment__model__type__pb2._APPPAYMENTMODELTYPEENUM_APPPAYMENTMODELTYPE +_MOBILEDEVICEINFO.oneofs_by_name['_mobile_device_constant'].fields.append( + _MOBILEDEVICEINFO.fields_by_name['mobile_device_constant']) +_MOBILEDEVICEINFO.fields_by_name['mobile_device_constant'].containing_oneof = _MOBILEDEVICEINFO.oneofs_by_name['_mobile_device_constant'] +_CUSTOMAFFINITYINFO.oneofs_by_name['_custom_affinity'].fields.append( + _CUSTOMAFFINITYINFO.fields_by_name['custom_affinity']) +_CUSTOMAFFINITYINFO.fields_by_name['custom_affinity'].containing_oneof = _CUSTOMAFFINITYINFO.oneofs_by_name['_custom_affinity'] +_CUSTOMINTENTINFO.oneofs_by_name['_custom_intent'].fields.append( + _CUSTOMINTENTINFO.fields_by_name['custom_intent']) +_CUSTOMINTENTINFO.fields_by_name['custom_intent'].containing_oneof = _CUSTOMINTENTINFO.oneofs_by_name['_custom_intent'] +_LOCATIONGROUPINFO.fields_by_name['radius_units'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__group__radius__units__pb2._LOCATIONGROUPRADIUSUNITSENUM_LOCATIONGROUPRADIUSUNITS +_LOCATIONGROUPINFO.oneofs_by_name['_feed'].fields.append( + _LOCATIONGROUPINFO.fields_by_name['feed']) +_LOCATIONGROUPINFO.fields_by_name['feed'].containing_oneof = _LOCATIONGROUPINFO.oneofs_by_name['_feed'] +_LOCATIONGROUPINFO.oneofs_by_name['_radius'].fields.append( + _LOCATIONGROUPINFO.fields_by_name['radius']) +_LOCATIONGROUPINFO.fields_by_name['radius'].containing_oneof = _LOCATIONGROUPINFO.oneofs_by_name['_radius'] +DESCRIPTOR.message_types_by_name['KeywordInfo'] = _KEYWORDINFO +DESCRIPTOR.message_types_by_name['PlacementInfo'] = _PLACEMENTINFO +DESCRIPTOR.message_types_by_name['MobileAppCategoryInfo'] = _MOBILEAPPCATEGORYINFO +DESCRIPTOR.message_types_by_name['MobileApplicationInfo'] = _MOBILEAPPLICATIONINFO +DESCRIPTOR.message_types_by_name['LocationInfo'] = _LOCATIONINFO +DESCRIPTOR.message_types_by_name['DeviceInfo'] = _DEVICEINFO +DESCRIPTOR.message_types_by_name['PreferredContentInfo'] = _PREFERREDCONTENTINFO +DESCRIPTOR.message_types_by_name['ListingGroupInfo'] = _LISTINGGROUPINFO +DESCRIPTOR.message_types_by_name['ListingScopeInfo'] = _LISTINGSCOPEINFO +DESCRIPTOR.message_types_by_name['ListingDimensionInfo'] = _LISTINGDIMENSIONINFO +DESCRIPTOR.message_types_by_name['HotelIdInfo'] = _HOTELIDINFO +DESCRIPTOR.message_types_by_name['HotelClassInfo'] = _HOTELCLASSINFO +DESCRIPTOR.message_types_by_name['HotelCountryRegionInfo'] = _HOTELCOUNTRYREGIONINFO +DESCRIPTOR.message_types_by_name['HotelStateInfo'] = _HOTELSTATEINFO +DESCRIPTOR.message_types_by_name['HotelCityInfo'] = _HOTELCITYINFO +DESCRIPTOR.message_types_by_name['ProductBiddingCategoryInfo'] = _PRODUCTBIDDINGCATEGORYINFO +DESCRIPTOR.message_types_by_name['ProductBrandInfo'] = _PRODUCTBRANDINFO +DESCRIPTOR.message_types_by_name['ProductChannelInfo'] = _PRODUCTCHANNELINFO +DESCRIPTOR.message_types_by_name['ProductChannelExclusivityInfo'] = _PRODUCTCHANNELEXCLUSIVITYINFO +DESCRIPTOR.message_types_by_name['ProductConditionInfo'] = _PRODUCTCONDITIONINFO +DESCRIPTOR.message_types_by_name['ProductCustomAttributeInfo'] = _PRODUCTCUSTOMATTRIBUTEINFO +DESCRIPTOR.message_types_by_name['ProductItemIdInfo'] = _PRODUCTITEMIDINFO +DESCRIPTOR.message_types_by_name['ProductTypeInfo'] = _PRODUCTTYPEINFO +DESCRIPTOR.message_types_by_name['UnknownListingDimensionInfo'] = _UNKNOWNLISTINGDIMENSIONINFO +DESCRIPTOR.message_types_by_name['HotelDateSelectionTypeInfo'] = _HOTELDATESELECTIONTYPEINFO +DESCRIPTOR.message_types_by_name['HotelAdvanceBookingWindowInfo'] = _HOTELADVANCEBOOKINGWINDOWINFO +DESCRIPTOR.message_types_by_name['HotelLengthOfStayInfo'] = _HOTELLENGTHOFSTAYINFO +DESCRIPTOR.message_types_by_name['HotelCheckInDayInfo'] = _HOTELCHECKINDAYINFO +DESCRIPTOR.message_types_by_name['InteractionTypeInfo'] = _INTERACTIONTYPEINFO +DESCRIPTOR.message_types_by_name['AdScheduleInfo'] = _ADSCHEDULEINFO +DESCRIPTOR.message_types_by_name['AgeRangeInfo'] = _AGERANGEINFO +DESCRIPTOR.message_types_by_name['GenderInfo'] = _GENDERINFO +DESCRIPTOR.message_types_by_name['IncomeRangeInfo'] = _INCOMERANGEINFO +DESCRIPTOR.message_types_by_name['ParentalStatusInfo'] = _PARENTALSTATUSINFO +DESCRIPTOR.message_types_by_name['YouTubeVideoInfo'] = _YOUTUBEVIDEOINFO +DESCRIPTOR.message_types_by_name['YouTubeChannelInfo'] = _YOUTUBECHANNELINFO +DESCRIPTOR.message_types_by_name['UserListInfo'] = _USERLISTINFO +DESCRIPTOR.message_types_by_name['ProximityInfo'] = _PROXIMITYINFO +DESCRIPTOR.message_types_by_name['GeoPointInfo'] = _GEOPOINTINFO +DESCRIPTOR.message_types_by_name['AddressInfo'] = _ADDRESSINFO +DESCRIPTOR.message_types_by_name['TopicInfo'] = _TOPICINFO +DESCRIPTOR.message_types_by_name['LanguageInfo'] = _LANGUAGEINFO +DESCRIPTOR.message_types_by_name['IpBlockInfo'] = _IPBLOCKINFO +DESCRIPTOR.message_types_by_name['ContentLabelInfo'] = _CONTENTLABELINFO +DESCRIPTOR.message_types_by_name['CarrierInfo'] = _CARRIERINFO +DESCRIPTOR.message_types_by_name['UserInterestInfo'] = _USERINTERESTINFO +DESCRIPTOR.message_types_by_name['WebpageInfo'] = _WEBPAGEINFO +DESCRIPTOR.message_types_by_name['WebpageConditionInfo'] = _WEBPAGECONDITIONINFO +DESCRIPTOR.message_types_by_name['OperatingSystemVersionInfo'] = _OPERATINGSYSTEMVERSIONINFO +DESCRIPTOR.message_types_by_name['AppPaymentModelInfo'] = _APPPAYMENTMODELINFO +DESCRIPTOR.message_types_by_name['MobileDeviceInfo'] = _MOBILEDEVICEINFO +DESCRIPTOR.message_types_by_name['CustomAffinityInfo'] = _CUSTOMAFFINITYINFO +DESCRIPTOR.message_types_by_name['CustomIntentInfo'] = _CUSTOMINTENTINFO +DESCRIPTOR.message_types_by_name['LocationGroupInfo'] = _LOCATIONGROUPINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordInfo = _reflection.GeneratedProtocolMessageType('KeywordInfo', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A keyword criterion. + + Attributes: + text: + The text of the keyword (at most 80 characters and 10 words). + match_type: + The match type of the keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.KeywordInfo) + }) +_sym_db.RegisterMessage(KeywordInfo) + +PlacementInfo = _reflection.GeneratedProtocolMessageType('PlacementInfo', (_message.Message,), { + 'DESCRIPTOR' : _PLACEMENTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A placement criterion. This can be used to modify bids for sites when + targeting the content network. + + Attributes: + url: + URL of the placement. For example, "http://www.domain.com". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PlacementInfo) + }) +_sym_db.RegisterMessage(PlacementInfo) + +MobileAppCategoryInfo = _reflection.GeneratedProtocolMessageType('MobileAppCategoryInfo', (_message.Message,), { + 'DESCRIPTOR' : _MOBILEAPPCATEGORYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A mobile app category criterion. + + Attributes: + mobile_app_category_constant: + The mobile app category constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MobileAppCategoryInfo) + }) +_sym_db.RegisterMessage(MobileAppCategoryInfo) + +MobileApplicationInfo = _reflection.GeneratedProtocolMessageType('MobileApplicationInfo', (_message.Message,), { + 'DESCRIPTOR' : _MOBILEAPPLICATIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A mobile application criterion. + + Attributes: + app_id: + A string that uniquely identifies a mobile application to + Google Ads API. The format of this string is + "{platform}-{platform\_native\_id}", where platform is "1" for + iOS apps and "2" for Android apps, and where + platform\_native\_id is the mobile application identifier + native to the corresponding platform. For iOS, this native + identifier is the 9 digit string that appears at the end of an + App Store URL (e.g., "476943146" for "Flood-It! 2" whose App + Store link is "http://itunes.apple.com/us/app/flood- + it!-2/id476943146"). For Android, this native identifier is + the application's package name (e.g., + "com.labpixies.colordrips" for "Color Drips" given Google Play + link "https://play.google.com/store/apps/details?id=com.labpix + ies.colordrips"). A well formed app id for Google Ads API + would thus be "1-476943146" for iOS and + "2-com.labpixies.colordrips" for Android. This field is + required and must be set in CREATE operations. + name: + Name of this mobile application. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MobileApplicationInfo) + }) +_sym_db.RegisterMessage(MobileApplicationInfo) + +LocationInfo = _reflection.GeneratedProtocolMessageType('LocationInfo', (_message.Message,), { + 'DESCRIPTOR' : _LOCATIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A location criterion. + + Attributes: + geo_target_constant: + The geo target constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LocationInfo) + }) +_sym_db.RegisterMessage(LocationInfo) + +DeviceInfo = _reflection.GeneratedProtocolMessageType('DeviceInfo', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A device criterion. + + Attributes: + type: + Type of the device. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.DeviceInfo) + }) +_sym_db.RegisterMessage(DeviceInfo) + +PreferredContentInfo = _reflection.GeneratedProtocolMessageType('PreferredContentInfo', (_message.Message,), { + 'DESCRIPTOR' : _PREFERREDCONTENTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A preferred content criterion. + + Attributes: + type: + Type of the preferred content. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PreferredContentInfo) + }) +_sym_db.RegisterMessage(PreferredContentInfo) + +ListingGroupInfo = _reflection.GeneratedProtocolMessageType('ListingGroupInfo', (_message.Message,), { + 'DESCRIPTOR' : _LISTINGGROUPINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A listing group criterion. + + Attributes: + type: + Type of the listing group. + case_value: + Dimension value with which this listing group is refining its + parent. Undefined for the root group. + parent_ad_group_criterion: + Resource name of ad group criterion which is the parent + listing group subdivision. Null for the root group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ListingGroupInfo) + }) +_sym_db.RegisterMessage(ListingGroupInfo) + +ListingScopeInfo = _reflection.GeneratedProtocolMessageType('ListingScopeInfo', (_message.Message,), { + 'DESCRIPTOR' : _LISTINGSCOPEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A listing scope criterion. + + Attributes: + dimensions: + Scope of the campaign criterion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ListingScopeInfo) + }) +_sym_db.RegisterMessage(ListingScopeInfo) + +ListingDimensionInfo = _reflection.GeneratedProtocolMessageType('ListingDimensionInfo', (_message.Message,), { + 'DESCRIPTOR' : _LISTINGDIMENSIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Listing dimensions for listing group criterion. + + Attributes: + dimension: + Dimension of one of the types below is always present. + hotel_id: + Advertiser-specific hotel ID. + hotel_class: + Class of the hotel as a number of stars 1 to 5. + hotel_country_region: + Country or Region the hotel is located in. + hotel_state: + State the hotel is located in. + hotel_city: + City the hotel is located in. + product_bidding_category: + Bidding category of a product offer. + product_brand: + Brand of a product offer. + product_channel: + Locality of a product offer. + product_channel_exclusivity: + Availability of a product offer. + product_condition: + Condition of a product offer. + product_custom_attribute: + Custom attribute of a product offer. + product_item_id: + Item id of a product offer. + product_type: + Type of a product offer. + unknown_listing_dimension: + Unknown dimension. Set when no other listing dimension is set. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ListingDimensionInfo) + }) +_sym_db.RegisterMessage(ListingDimensionInfo) + +HotelIdInfo = _reflection.GeneratedProtocolMessageType('HotelIdInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELIDINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Advertiser-specific hotel ID. + + Attributes: + value: + String value of the hotel ID. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelIdInfo) + }) +_sym_db.RegisterMessage(HotelIdInfo) + +HotelClassInfo = _reflection.GeneratedProtocolMessageType('HotelClassInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELCLASSINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Class of the hotel as a number of stars 1 to 5. + + Attributes: + value: + Long value of the hotel class. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelClassInfo) + }) +_sym_db.RegisterMessage(HotelClassInfo) + +HotelCountryRegionInfo = _reflection.GeneratedProtocolMessageType('HotelCountryRegionInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELCOUNTRYREGIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Country or Region the hotel is located in. + + Attributes: + country_region_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelCountryRegionInfo) + }) +_sym_db.RegisterMessage(HotelCountryRegionInfo) + +HotelStateInfo = _reflection.GeneratedProtocolMessageType('HotelStateInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELSTATEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """State the hotel is located in. + + Attributes: + state_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelStateInfo) + }) +_sym_db.RegisterMessage(HotelStateInfo) + +HotelCityInfo = _reflection.GeneratedProtocolMessageType('HotelCityInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELCITYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """City the hotel is located in. + + Attributes: + city_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelCityInfo) + }) +_sym_db.RegisterMessage(HotelCityInfo) + +ProductBiddingCategoryInfo = _reflection.GeneratedProtocolMessageType('ProductBiddingCategoryInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTBIDDINGCATEGORYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Bidding category of a product offer. + + Attributes: + id: + ID of the product bidding category. This ID is equivalent to + the google\_product\_category ID as described in this article: + https://support.google.com/merchants/answer/6324436 + country_code: + Two-letter upper-case country code of the product bidding + category. It must match the + campaign.shopping\_setting.sales\_country field. + level: + Level of the product bidding category. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductBiddingCategoryInfo) + }) +_sym_db.RegisterMessage(ProductBiddingCategoryInfo) + +ProductBrandInfo = _reflection.GeneratedProtocolMessageType('ProductBrandInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTBRANDINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Brand of the product. + + Attributes: + value: + String value of the product brand. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductBrandInfo) + }) +_sym_db.RegisterMessage(ProductBrandInfo) + +ProductChannelInfo = _reflection.GeneratedProtocolMessageType('ProductChannelInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCHANNELINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Locality of a product offer. + + Attributes: + channel: + Value of the locality. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductChannelInfo) + }) +_sym_db.RegisterMessage(ProductChannelInfo) + +ProductChannelExclusivityInfo = _reflection.GeneratedProtocolMessageType('ProductChannelExclusivityInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCHANNELEXCLUSIVITYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Availability of a product offer. + + Attributes: + channel_exclusivity: + Value of the availability. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductChannelExclusivityInfo) + }) +_sym_db.RegisterMessage(ProductChannelExclusivityInfo) + +ProductConditionInfo = _reflection.GeneratedProtocolMessageType('ProductConditionInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCONDITIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Condition of a product offer. + + Attributes: + condition: + Value of the condition. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductConditionInfo) + }) +_sym_db.RegisterMessage(ProductConditionInfo) + +ProductCustomAttributeInfo = _reflection.GeneratedProtocolMessageType('ProductCustomAttributeInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCUSTOMATTRIBUTEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Custom attribute of a product offer. + + Attributes: + value: + String value of the product custom attribute. + index: + Indicates the index of the custom attribute. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductCustomAttributeInfo) + }) +_sym_db.RegisterMessage(ProductCustomAttributeInfo) + +ProductItemIdInfo = _reflection.GeneratedProtocolMessageType('ProductItemIdInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTITEMIDINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Item id of a product offer. + + Attributes: + value: + Value of the id. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductItemIdInfo) + }) +_sym_db.RegisterMessage(ProductItemIdInfo) + +ProductTypeInfo = _reflection.GeneratedProtocolMessageType('ProductTypeInfo', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTTYPEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Type of a product offer. + + Attributes: + value: + Value of the type. + level: + Level of the type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProductTypeInfo) + }) +_sym_db.RegisterMessage(ProductTypeInfo) + +UnknownListingDimensionInfo = _reflection.GeneratedProtocolMessageType('UnknownListingDimensionInfo', (_message.Message,), { + 'DESCRIPTOR' : _UNKNOWNLISTINGDIMENSIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Unknown listing dimension.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UnknownListingDimensionInfo) + }) +_sym_db.RegisterMessage(UnknownListingDimensionInfo) + +HotelDateSelectionTypeInfo = _reflection.GeneratedProtocolMessageType('HotelDateSelectionTypeInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELDATESELECTIONTYPEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Criterion for hotel date selection (default dates vs. user selected). + + Attributes: + type: + Type of the hotel date selection + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelDateSelectionTypeInfo) + }) +_sym_db.RegisterMessage(HotelDateSelectionTypeInfo) + +HotelAdvanceBookingWindowInfo = _reflection.GeneratedProtocolMessageType('HotelAdvanceBookingWindowInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELADVANCEBOOKINGWINDOWINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Criterion for number of days prior to the stay the booking is being + made. + + Attributes: + min_days: + Low end of the number of days prior to the stay. + max_days: + High end of the number of days prior to the stay. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfo) + }) +_sym_db.RegisterMessage(HotelAdvanceBookingWindowInfo) + +HotelLengthOfStayInfo = _reflection.GeneratedProtocolMessageType('HotelLengthOfStayInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELLENGTHOFSTAYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Criterion for length of hotel stay in nights. + + Attributes: + min_nights: + Low end of the number of nights in the stay. + max_nights: + High end of the number of nights in the stay. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelLengthOfStayInfo) + }) +_sym_db.RegisterMessage(HotelLengthOfStayInfo) + +HotelCheckInDayInfo = _reflection.GeneratedProtocolMessageType('HotelCheckInDayInfo', (_message.Message,), { + 'DESCRIPTOR' : _HOTELCHECKINDAYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Criterion for day of the week the booking is for. + + Attributes: + day_of_week: + The day of the week. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelCheckInDayInfo) + }) +_sym_db.RegisterMessage(HotelCheckInDayInfo) + +InteractionTypeInfo = _reflection.GeneratedProtocolMessageType('InteractionTypeInfo', (_message.Message,), { + 'DESCRIPTOR' : _INTERACTIONTYPEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Criterion for Interaction Type. + + Attributes: + type: + The interaction type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.InteractionTypeInfo) + }) +_sym_db.RegisterMessage(InteractionTypeInfo) + +AdScheduleInfo = _reflection.GeneratedProtocolMessageType('AdScheduleInfo', (_message.Message,), { + 'DESCRIPTOR' : _ADSCHEDULEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Represents an AdSchedule criterion. AdSchedule is specified as the + day of the week and a time interval within which ads will be shown. + No more than six AdSchedules can be added for the same day. + + Attributes: + start_minute: + Minutes after the start hour at which this schedule starts. + This field is required for CREATE operations and is prohibited + on UPDATE operations. + end_minute: + Minutes after the end hour at which this schedule ends. The + schedule is exclusive of the end minute. This field is + required for CREATE operations and is prohibited on UPDATE + operations. + start_hour: + Starting hour in 24 hour time. This field must be between 0 + and 23, inclusive. This field is required for CREATE + operations and is prohibited on UPDATE operations. + end_hour: + Ending hour in 24 hour time; 24 signifies end of the day. This + field must be between 0 and 24, inclusive. This field is + required for CREATE operations and is prohibited on UPDATE + operations. + day_of_week: + Day of the week the schedule applies to. This field is + required for CREATE operations and is prohibited on UPDATE + operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AdScheduleInfo) + }) +_sym_db.RegisterMessage(AdScheduleInfo) + +AgeRangeInfo = _reflection.GeneratedProtocolMessageType('AgeRangeInfo', (_message.Message,), { + 'DESCRIPTOR' : _AGERANGEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """An age range criterion. + + Attributes: + type: + Type of the age range. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AgeRangeInfo) + }) +_sym_db.RegisterMessage(AgeRangeInfo) + +GenderInfo = _reflection.GeneratedProtocolMessageType('GenderInfo', (_message.Message,), { + 'DESCRIPTOR' : _GENDERINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A gender criterion. + + Attributes: + type: + Type of the gender. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.GenderInfo) + }) +_sym_db.RegisterMessage(GenderInfo) + +IncomeRangeInfo = _reflection.GeneratedProtocolMessageType('IncomeRangeInfo', (_message.Message,), { + 'DESCRIPTOR' : _INCOMERANGEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """An income range criterion. + + Attributes: + type: + Type of the income range. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.IncomeRangeInfo) + }) +_sym_db.RegisterMessage(IncomeRangeInfo) + +ParentalStatusInfo = _reflection.GeneratedProtocolMessageType('ParentalStatusInfo', (_message.Message,), { + 'DESCRIPTOR' : _PARENTALSTATUSINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A parental status criterion. + + Attributes: + type: + Type of the parental status. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ParentalStatusInfo) + }) +_sym_db.RegisterMessage(ParentalStatusInfo) + +YouTubeVideoInfo = _reflection.GeneratedProtocolMessageType('YouTubeVideoInfo', (_message.Message,), { + 'DESCRIPTOR' : _YOUTUBEVIDEOINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A YouTube Video criterion. + + Attributes: + video_id: + YouTube video id as it appears on the YouTube watch page. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.YouTubeVideoInfo) + }) +_sym_db.RegisterMessage(YouTubeVideoInfo) + +YouTubeChannelInfo = _reflection.GeneratedProtocolMessageType('YouTubeChannelInfo', (_message.Message,), { + 'DESCRIPTOR' : _YOUTUBECHANNELINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A YouTube Channel criterion. + + Attributes: + channel_id: + The YouTube uploader channel id or the channel code of a + YouTube channel. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.YouTubeChannelInfo) + }) +_sym_db.RegisterMessage(YouTubeChannelInfo) + +UserListInfo = _reflection.GeneratedProtocolMessageType('UserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A User List criterion. Represents a user list that is defined by the + advertiser to be targeted. + + Attributes: + user_list: + The User List resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListInfo) + }) +_sym_db.RegisterMessage(UserListInfo) + +ProximityInfo = _reflection.GeneratedProtocolMessageType('ProximityInfo', (_message.Message,), { + 'DESCRIPTOR' : _PROXIMITYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A Proximity criterion. The geo point and radius determine what + geographical area is included. The address is a description of the geo + point that does not affect ad serving. There are two ways to create a + proximity. First, by setting an address and radius. The geo point will + be automatically computed. Second, by setting a geo point and radius. + The address is an optional label that won't be validated. + + Attributes: + geo_point: + Latitude and longitude. + radius: + The radius of the proximity. + radius_units: + The unit of measurement of the radius. Default is KILOMETERS. + address: + Full address. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ProximityInfo) + }) +_sym_db.RegisterMessage(ProximityInfo) + +GeoPointInfo = _reflection.GeneratedProtocolMessageType('GeoPointInfo', (_message.Message,), { + 'DESCRIPTOR' : _GEOPOINTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Geo point for proximity criterion. + + Attributes: + longitude_in_micro_degrees: + Micro degrees for the longitude. + latitude_in_micro_degrees: + Micro degrees for the latitude. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.GeoPointInfo) + }) +_sym_db.RegisterMessage(GeoPointInfo) + +AddressInfo = _reflection.GeneratedProtocolMessageType('AddressInfo', (_message.Message,), { + 'DESCRIPTOR' : _ADDRESSINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Address for proximity criterion. + + Attributes: + postal_code: + Postal code. + province_code: + Province or state code. + country_code: + Country code. + province_name: + Province or state name. + street_address: + Street address line 1. + street_address2: + Street address line 2. This field is write-only. It is only + used for calculating the longitude and latitude of an address + when geo\_point is empty. + city_name: + Name of the city. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AddressInfo) + }) +_sym_db.RegisterMessage(AddressInfo) + +TopicInfo = _reflection.GeneratedProtocolMessageType('TopicInfo', (_message.Message,), { + 'DESCRIPTOR' : _TOPICINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A topic criterion. Use topics to target or exclude placements in the + Google Display Network based on the category into which the placement + falls (for example, "Pets & Animals/Pets/Dogs"). + + Attributes: + topic_constant: + The Topic Constant resource name. + path: + The category to target or exclude. Each subsequent element in + the array describes a more specific sub-category. For example, + "Pets & Animals", "Pets", "Dogs" represents the "Pets & + Animals/Pets/Dogs" category. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TopicInfo) + }) +_sym_db.RegisterMessage(TopicInfo) + +LanguageInfo = _reflection.GeneratedProtocolMessageType('LanguageInfo', (_message.Message,), { + 'DESCRIPTOR' : _LANGUAGEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A language criterion. + + Attributes: + language_constant: + The language constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LanguageInfo) + }) +_sym_db.RegisterMessage(LanguageInfo) + +IpBlockInfo = _reflection.GeneratedProtocolMessageType('IpBlockInfo', (_message.Message,), { + 'DESCRIPTOR' : _IPBLOCKINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """An IpBlock criterion used for IP exclusions. We allow: - IPv4 and IPv6 + addresses - individual addresses (192.168.0.1) - masks for individual + addresses (192.168.0.1/32) - masks for Class C networks + (192.168.0.1/24) + + Attributes: + ip_address: + The IP address of this IP block. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.IpBlockInfo) + }) +_sym_db.RegisterMessage(IpBlockInfo) + +ContentLabelInfo = _reflection.GeneratedProtocolMessageType('ContentLabelInfo', (_message.Message,), { + 'DESCRIPTOR' : _CONTENTLABELINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Content Label for category exclusion. + + Attributes: + type: + Content label type, required for CREATE operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ContentLabelInfo) + }) +_sym_db.RegisterMessage(ContentLabelInfo) + +CarrierInfo = _reflection.GeneratedProtocolMessageType('CarrierInfo', (_message.Message,), { + 'DESCRIPTOR' : _CARRIERINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Represents a Carrier Criterion. + + Attributes: + carrier_constant: + The Carrier constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CarrierInfo) + }) +_sym_db.RegisterMessage(CarrierInfo) + +UserInterestInfo = _reflection.GeneratedProtocolMessageType('UserInterestInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERINTERESTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Represents a particular interest-based topic to be targeted. + + Attributes: + user_interest_category: + The UserInterest resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserInterestInfo) + }) +_sym_db.RegisterMessage(UserInterestInfo) + +WebpageInfo = _reflection.GeneratedProtocolMessageType('WebpageInfo', (_message.Message,), { + 'DESCRIPTOR' : _WEBPAGEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Represents a criterion for targeting webpages of an advertiser's + website. + + Attributes: + criterion_name: + The name of the criterion that is defined by this parameter. + The name value will be used for identifying, sorting and + filtering criteria with this type of parameters. This field + is required for CREATE operations and is prohibited on UPDATE + operations. + conditions: + Conditions, or logical expressions, for webpage targeting. The + list of webpage targeting conditions are and-ed together when + evaluated for targeting. This field is required for CREATE + operations and is prohibited on UPDATE operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.WebpageInfo) + }) +_sym_db.RegisterMessage(WebpageInfo) + +WebpageConditionInfo = _reflection.GeneratedProtocolMessageType('WebpageConditionInfo', (_message.Message,), { + 'DESCRIPTOR' : _WEBPAGECONDITIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Logical expression for targeting webpages of an advertiser's website. + + Attributes: + operand: + Operand of webpage targeting condition. + operator: + Operator of webpage targeting condition. + argument: + Argument of webpage targeting condition. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.WebpageConditionInfo) + }) +_sym_db.RegisterMessage(WebpageConditionInfo) + +OperatingSystemVersionInfo = _reflection.GeneratedProtocolMessageType('OperatingSystemVersionInfo', (_message.Message,), { + 'DESCRIPTOR' : _OPERATINGSYSTEMVERSIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """Represents an operating system version to be targeted. + + Attributes: + operating_system_version_constant: + The operating system version constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.OperatingSystemVersionInfo) + }) +_sym_db.RegisterMessage(OperatingSystemVersionInfo) + +AppPaymentModelInfo = _reflection.GeneratedProtocolMessageType('AppPaymentModelInfo', (_message.Message,), { + 'DESCRIPTOR' : _APPPAYMENTMODELINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """An app payment model criterion. + + Attributes: + type: + Type of the app payment model. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AppPaymentModelInfo) + }) +_sym_db.RegisterMessage(AppPaymentModelInfo) + +MobileDeviceInfo = _reflection.GeneratedProtocolMessageType('MobileDeviceInfo', (_message.Message,), { + 'DESCRIPTOR' : _MOBILEDEVICEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A mobile device criterion. + + Attributes: + mobile_device_constant: + The mobile device constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MobileDeviceInfo) + }) +_sym_db.RegisterMessage(MobileDeviceInfo) + +CustomAffinityInfo = _reflection.GeneratedProtocolMessageType('CustomAffinityInfo', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMAFFINITYINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A custom affinity criterion. A criterion of this type is only + targetable. + + Attributes: + custom_affinity: + The CustomInterest resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CustomAffinityInfo) + }) +_sym_db.RegisterMessage(CustomAffinityInfo) + +CustomIntentInfo = _reflection.GeneratedProtocolMessageType('CustomIntentInfo', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTENTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A custom intent criterion. A criterion of this type is only + targetable. + + Attributes: + custom_intent: + The CustomInterest resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CustomIntentInfo) + }) +_sym_db.RegisterMessage(CustomIntentInfo) + +LocationGroupInfo = _reflection.GeneratedProtocolMessageType('LocationGroupInfo', (_message.Message,), { + 'DESCRIPTOR' : _LOCATIONGROUPINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.criteria_pb2' + , + '__doc__': """A radius around a list of locations specified via a feed. + + Attributes: + feed: + Feed specifying locations for targeting. This is required and + must be set in CREATE operations. + geo_target_constants: + Geo target constant(s) restricting the scope of the geographic + area within the feed. Currently only one geo target constant + is allowed. + radius: + Distance in units specifying the radius around targeted + locations. This is required and must be set in CREATE + operations. + radius_units: + Unit of the radius, miles and meters supported currently. This + is required and must be set in CREATE operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LocationGroupInfo) + }) +_sym_db.RegisterMessage(LocationGroupInfo) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/criteria_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/criteria_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/criteria_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2.py b/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2.py new file mode 100644 index 000000000..b126e6c6f --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2.py @@ -0,0 +1,258 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/criterion_category_availability.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import advertising_channel_sub_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2 +from google.ads.google_ads.v5.proto.enums import advertising_channel_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_category_channel_availability_mode_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__channel__availability__mode__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_category_locale_availability_mode_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__locale__availability__mode__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/criterion_category_availability.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\"CriterionCategoryAvailabilityProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/common/criterion_category_availability.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x46google/ads/googleads_v5/proto/enums/advertising_channel_sub_type.proto\x1a\x42google/ads/googleads_v5/proto/enums/advertising_channel_type.proto\x1aVgoogle/ads/googleads_v5/proto/enums/criterion_category_channel_availability_mode.proto\x1aUgoogle/ads/googleads_v5/proto/enums/criterion_category_locale_availability_mode.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xcb\x01\n\x1d\x43riterionCategoryAvailability\x12U\n\x07\x63hannel\x18\x01 \x01(\x0b\x32\x44.google.ads.googleads.v5.common.CriterionCategoryChannelAvailability\x12S\n\x06locale\x18\x02 \x03(\x0b\x32\x43.google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability\"\xf0\x03\n$CriterionCategoryChannelAvailability\x12\x8f\x01\n\x11\x61vailability_mode\x18\x01 \x01(\x0e\x32t.google.ads.googleads.v5.enums.CriterionCategoryChannelAvailabilityModeEnum.CriterionCategoryChannelAvailabilityMode\x12r\n\x18\x61\x64vertising_channel_type\x18\x02 \x01(\x0e\x32P.google.ads.googleads.v5.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType\x12|\n\x1c\x61\x64vertising_channel_sub_type\x18\x03 \x03(\x0e\x32V.google.ads.googleads.v5.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType\x12\x44\n include_default_channel_sub_type\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x9e\x02\n#CriterionCategoryLocaleAvailability\x12\x8d\x01\n\x11\x61vailability_mode\x18\x01 \x01(\x0e\x32r.google.ads.googleads.v5.enums.CriterionCategoryLocaleAvailabilityModeEnum.CriterionCategoryLocaleAvailabilityMode\x12\x32\n\x0c\x63ountry_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlanguage_code\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xfd\x01\n\"com.google.ads.googleads.v5.commonB\"CriterionCategoryAvailabilityProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__channel__availability__mode__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__locale__availability__mode__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CRITERIONCATEGORYAVAILABILITY = _descriptor.Descriptor( + name='CriterionCategoryAvailability', + full_name='google.ads.googleads.v5.common.CriterionCategoryAvailability', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='channel', full_name='google.ads.googleads.v5.common.CriterionCategoryAvailability.channel', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='locale', full_name='google.ads.googleads.v5.common.CriterionCategoryAvailability.locale', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=488, + serialized_end=691, +) + + +_CRITERIONCATEGORYCHANNELAVAILABILITY = _descriptor.Descriptor( + name='CriterionCategoryChannelAvailability', + full_name='google.ads.googleads.v5.common.CriterionCategoryChannelAvailability', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='availability_mode', full_name='google.ads.googleads.v5.common.CriterionCategoryChannelAvailability.availability_mode', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='advertising_channel_type', full_name='google.ads.googleads.v5.common.CriterionCategoryChannelAvailability.advertising_channel_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='advertising_channel_sub_type', full_name='google.ads.googleads.v5.common.CriterionCategoryChannelAvailability.advertising_channel_sub_type', index=2, + number=3, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='include_default_channel_sub_type', full_name='google.ads.googleads.v5.common.CriterionCategoryChannelAvailability.include_default_channel_sub_type', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=694, + serialized_end=1190, +) + + +_CRITERIONCATEGORYLOCALEAVAILABILITY = _descriptor.Descriptor( + name='CriterionCategoryLocaleAvailability', + full_name='google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='availability_mode', full_name='google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability.availability_mode', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability.country_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability.language_code', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1193, + serialized_end=1479, +) + +_CRITERIONCATEGORYAVAILABILITY.fields_by_name['channel'].message_type = _CRITERIONCATEGORYCHANNELAVAILABILITY +_CRITERIONCATEGORYAVAILABILITY.fields_by_name['locale'].message_type = _CRITERIONCATEGORYLOCALEAVAILABILITY +_CRITERIONCATEGORYCHANNELAVAILABILITY.fields_by_name['availability_mode'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__channel__availability__mode__pb2._CRITERIONCATEGORYCHANNELAVAILABILITYMODEENUM_CRITERIONCATEGORYCHANNELAVAILABILITYMODE +_CRITERIONCATEGORYCHANNELAVAILABILITY.fields_by_name['advertising_channel_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2._ADVERTISINGCHANNELTYPEENUM_ADVERTISINGCHANNELTYPE +_CRITERIONCATEGORYCHANNELAVAILABILITY.fields_by_name['advertising_channel_sub_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2._ADVERTISINGCHANNELSUBTYPEENUM_ADVERTISINGCHANNELSUBTYPE +_CRITERIONCATEGORYCHANNELAVAILABILITY.fields_by_name['include_default_channel_sub_type'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CRITERIONCATEGORYLOCALEAVAILABILITY.fields_by_name['availability_mode'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__category__locale__availability__mode__pb2._CRITERIONCATEGORYLOCALEAVAILABILITYMODEENUM_CRITERIONCATEGORYLOCALEAVAILABILITYMODE +_CRITERIONCATEGORYLOCALEAVAILABILITY.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CRITERIONCATEGORYLOCALEAVAILABILITY.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['CriterionCategoryAvailability'] = _CRITERIONCATEGORYAVAILABILITY +DESCRIPTOR.message_types_by_name['CriterionCategoryChannelAvailability'] = _CRITERIONCATEGORYCHANNELAVAILABILITY +DESCRIPTOR.message_types_by_name['CriterionCategoryLocaleAvailability'] = _CRITERIONCATEGORYLOCALEAVAILABILITY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CriterionCategoryAvailability = _reflection.GeneratedProtocolMessageType('CriterionCategoryAvailability', (_message.Message,), { + 'DESCRIPTOR' : _CRITERIONCATEGORYAVAILABILITY, + '__module__' : 'google.ads.googleads_v5.proto.common.criterion_category_availability_pb2' + , + '__doc__': """Information of category availability, per advertising channel. + + Attributes: + channel: + Channel types and subtypes that are available to the category. + locale: + Locales that are available to the category for the channel. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CriterionCategoryAvailability) + }) +_sym_db.RegisterMessage(CriterionCategoryAvailability) + +CriterionCategoryChannelAvailability = _reflection.GeneratedProtocolMessageType('CriterionCategoryChannelAvailability', (_message.Message,), { + 'DESCRIPTOR' : _CRITERIONCATEGORYCHANNELAVAILABILITY, + '__module__' : 'google.ads.googleads_v5.proto.common.criterion_category_availability_pb2' + , + '__doc__': """Information of advertising channel type and subtypes a category is + available in. + + Attributes: + availability_mode: + Format of the channel availability. Can be ALL\_CHANNELS (the + rest of the fields will not be set), CHANNEL\_TYPE (only + advertising\_channel\_type type will be set, the category is + available to all sub types under it) or + CHANNEL\_TYPE\_AND\_SUBTYPES (advertising\_channel\_type, + advertising\_channel\_sub\_type, and + include\_default\_channel\_sub\_type will all be set). + advertising_channel_type: + Channel type the category is available to. + advertising_channel_sub_type: + Channel subtypes under the channel type the category is + available to. + include_default_channel_sub_type: + Whether default channel sub type is included. For example, + advertising\_channel\_type being DISPLAY and + include\_default\_channel\_sub\_type being false means that + the default display campaign where channel sub type is not set + is not included in this availability configuration. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CriterionCategoryChannelAvailability) + }) +_sym_db.RegisterMessage(CriterionCategoryChannelAvailability) + +CriterionCategoryLocaleAvailability = _reflection.GeneratedProtocolMessageType('CriterionCategoryLocaleAvailability', (_message.Message,), { + 'DESCRIPTOR' : _CRITERIONCATEGORYLOCALEAVAILABILITY, + '__module__' : 'google.ads.googleads_v5.proto.common.criterion_category_availability_pb2' + , + '__doc__': """Information about which locales a category is available in. + + Attributes: + availability_mode: + Format of the locale availability. Can be LAUNCHED\_TO\_ALL + (both country and language will be empty), COUNTRY (only + country will be set), LANGUAGE (only language wil be set), + COUNTRY\_AND\_LANGUAGE (both country and language will be + set). + country_code: + Code of the country. + language_code: + Code of the language. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CriterionCategoryLocaleAvailability) + }) +_sym_db.RegisterMessage(CriterionCategoryLocaleAvailability) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/criterion_category_availability_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/custom_parameter_pb2.py b/google/ads/google_ads/v5/proto/common/custom_parameter_pb2.py new file mode 100644 index 000000000..3aebd8948 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/custom_parameter_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/custom_parameter.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/custom_parameter.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\024CustomParameterProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/common/custom_parameter.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1cgoogle/api/annotations.proto\"I\n\x0f\x43ustomParameter\x12\x10\n\x03key\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x08\n\x06_valueB\xef\x01\n\"com.google.ads.googleads.v5.commonB\x14\x43ustomParameterProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMPARAMETER = _descriptor.Descriptor( + name='CustomParameter', + full_name='google.ads.googleads.v5.common.CustomParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='google.ads.googleads.v5.common.CustomParameter.key', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.CustomParameter.value', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_key', full_name='google.ads.googleads.v5.common.CustomParameter._key', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_value', full_name='google.ads.googleads.v5.common.CustomParameter._value', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=125, + serialized_end=198, +) + +_CUSTOMPARAMETER.oneofs_by_name['_key'].fields.append( + _CUSTOMPARAMETER.fields_by_name['key']) +_CUSTOMPARAMETER.fields_by_name['key'].containing_oneof = _CUSTOMPARAMETER.oneofs_by_name['_key'] +_CUSTOMPARAMETER.oneofs_by_name['_value'].fields.append( + _CUSTOMPARAMETER.fields_by_name['value']) +_CUSTOMPARAMETER.fields_by_name['value'].containing_oneof = _CUSTOMPARAMETER.oneofs_by_name['_value'] +DESCRIPTOR.message_types_by_name['CustomParameter'] = _CUSTOMPARAMETER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomParameter = _reflection.GeneratedProtocolMessageType('CustomParameter', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMPARAMETER, + '__module__' : 'google.ads.googleads_v5.proto.common.custom_parameter_pb2' + , + '__doc__': """A mapping that can be used by custom parameter tags in a + ``tracking_url_template``, ``final_urls``, or ``mobile_final_urls``. + + Attributes: + key: + The key matching the parameter tag name. + value: + The value to be substituted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CustomParameter) + }) +_sym_db.RegisterMessage(CustomParameter) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/custom_parameter_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/custom_parameter_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/custom_parameter_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/dates_pb2.py b/google/ads/google_ads/v5/proto/common/dates_pb2.py new file mode 100644 index 000000000..eddcb7bb7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/dates_pb2.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/dates.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/dates.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\nDatesProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n0google/ads/googleads_v5/proto/common/dates.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"m\n\tDateRange\x12\x30\n\nstart_date\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08\x65nd_date\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xe5\x01\n\"com.google.ads.googleads.v5.commonB\nDatesProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DATERANGE = _descriptor.Descriptor( + name='DateRange', + full_name='google.ads.googleads.v5.common.DateRange', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.common.DateRange.start_date', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.common.DateRange.end_date', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=146, + serialized_end=255, +) + +_DATERANGE.fields_by_name['start_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DATERANGE.fields_by_name['end_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['DateRange'] = _DATERANGE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DateRange = _reflection.GeneratedProtocolMessageType('DateRange', (_message.Message,), { + 'DESCRIPTOR' : _DATERANGE, + '__module__' : 'google.ads.googleads_v5.proto.common.dates_pb2' + , + '__doc__': """A date range. + + Attributes: + start_date: + The start date, in yyyy-mm-dd format. This date is inclusive. + end_date: + The end date, in yyyy-mm-dd format. This date is inclusive. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.DateRange) + }) +_sym_db.RegisterMessage(DateRange) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/dates_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/dates_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/dates_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2.py b/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2.py new file mode 100644 index 000000000..782da07be --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/explorer_auto_optimizer_setting.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/explorer_auto_optimizer_setting.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB!ExplorerAutoOptimizerSettingProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/common/explorer_auto_optimizer_setting.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1cgoogle/api/annotations.proto\">\n\x1c\x45xplorerAutoOptimizerSetting\x12\x13\n\x06opt_in\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_opt_inB\xfc\x01\n\"com.google.ads.googleads.v5.commonB!ExplorerAutoOptimizerSettingProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_EXPLORERAUTOOPTIMIZERSETTING = _descriptor.Descriptor( + name='ExplorerAutoOptimizerSetting', + full_name='google.ads.googleads.v5.common.ExplorerAutoOptimizerSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='opt_in', full_name='google.ads.googleads.v5.common.ExplorerAutoOptimizerSetting.opt_in', index=0, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_opt_in', full_name='google.ads.googleads.v5.common.ExplorerAutoOptimizerSetting._opt_in', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=140, + serialized_end=202, +) + +_EXPLORERAUTOOPTIMIZERSETTING.oneofs_by_name['_opt_in'].fields.append( + _EXPLORERAUTOOPTIMIZERSETTING.fields_by_name['opt_in']) +_EXPLORERAUTOOPTIMIZERSETTING.fields_by_name['opt_in'].containing_oneof = _EXPLORERAUTOOPTIMIZERSETTING.oneofs_by_name['_opt_in'] +DESCRIPTOR.message_types_by_name['ExplorerAutoOptimizerSetting'] = _EXPLORERAUTOOPTIMIZERSETTING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExplorerAutoOptimizerSetting = _reflection.GeneratedProtocolMessageType('ExplorerAutoOptimizerSetting', (_message.Message,), { + 'DESCRIPTOR' : _EXPLORERAUTOOPTIMIZERSETTING, + '__module__' : 'google.ads.googleads_v5.proto.common.explorer_auto_optimizer_setting_pb2' + , + '__doc__': """Settings for the Display Campaign Optimizer, initially named + "Explorer". Learn more about `automatic targeting + `__. + + Attributes: + opt_in: + Indicates whether the optimizer is turned on. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ExplorerAutoOptimizerSetting) + }) +_sym_db.RegisterMessage(ExplorerAutoOptimizerSetting) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/explorer_auto_optimizer_setting_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/extensions_pb2.py b/google/ads/google_ads/v5/proto/common/extensions_pb2.py new file mode 100644 index 000000000..c32b82a77 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/extensions_pb2.py @@ -0,0 +1,1352 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/extensions.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v5.proto.common import feed_common_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2 +from google.ads.google_ads.v5.proto.enums import app_store_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__store__pb2 +from google.ads.google_ads.v5.proto.enums import call_conversion_reporting_state_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2 +from google.ads.google_ads.v5.proto.enums import price_extension_price_qualifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__qualifier__pb2 +from google.ads.google_ads.v5.proto.enums import price_extension_price_unit_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__unit__pb2 +from google.ads.google_ads.v5.proto.enums import price_extension_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__type__pb2 +from google.ads.google_ads.v5.proto.enums import promotion_extension_discount_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__discount__modifier__pb2 +from google.ads.google_ads.v5.proto.enums import promotion_extension_occasion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__occasion__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/extensions.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\017ExtensionsProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/common/extensions.proto\x12\x1egoogle.ads.googleads.v5.common\x1a;google/ads/googleads_v5/proto/common/custom_parameter.proto\x1a\x36google/ads/googleads_v5/proto/common/feed_common.proto\x1a\x33google/ads/googleads_v5/proto/enums/app_store.proto\x1aIgoogle/ads/googleads_v5/proto/enums/call_conversion_reporting_state.proto\x1aIgoogle/ads/googleads_v5/proto/enums/price_extension_price_qualifier.proto\x1a\x44google/ads/googleads_v5/proto/enums/price_extension_price_unit.proto\x1a>google/ads/googleads_v5/proto/enums/price_extension_type.proto\x1aOgoogle/ads/googleads_v5/proto/enums/promotion_extension_discount_modifier.proto\x1a\x46google/ads/googleads_v5/proto/enums/promotion_extension_occasion.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xe5\x03\n\x0b\x41ppFeedItem\x12/\n\tlink_text\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06\x61pp_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12G\n\tapp_store\x18\x03 \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.AppStoreEnum.AppStore\x12\x30\n\nfinal_urls\x18\x04 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x66inal_mobile_urls\x18\x05 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\x07 \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12\x36\n\x10\x66inal_url_suffix\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xbe\x03\n\x0c\x43\x61llFeedItem\x12\x32\n\x0cphone_number\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ountry_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x39\n\x15\x63\x61ll_tracking_enabled\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16\x63\x61ll_conversion_action\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x45\n!call_conversion_tracking_disabled\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x85\x01\n\x1f\x63\x61ll_conversion_reporting_state\x18\x06 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.CallConversionReportingStateEnum.CallConversionReportingState\"E\n\x0f\x43\x61lloutFeedItem\x12\x32\n\x0c\x63\x61llout_text\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xaa\x03\n\x10LocationFeedItem\x12\x33\n\rbusiness_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0e\x61\x64\x64ress_line_1\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0e\x61\x64\x64ress_line_2\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04\x63ity\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08province\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bpostal_code\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ountry_code\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cphone_number\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x94\x04\n\x19\x41\x66\x66iliateLocationFeedItem\x12\x33\n\rbusiness_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0e\x61\x64\x64ress_line_1\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0e\x61\x64\x64ress_line_2\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04\x63ity\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08province\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bpostal_code\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ountry_code\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cphone_number\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x08\x63hain_id\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\nchain_name\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x94\x02\n\x13TextMessageFeedItem\x12\x33\n\rbusiness_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ountry_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cphone_number\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04text\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0e\x65xtension_text\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xcd\x03\n\rPriceFeedItem\x12V\n\x04type\x18\x01 \x01(\x0e\x32H.google.ads.googleads.v5.enums.PriceExtensionTypeEnum.PriceExtensionType\x12u\n\x0fprice_qualifier\x18\x02 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier\x12;\n\x15tracking_url_template\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlanguage_code\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x43\n\x0fprice_offerings\x18\x05 \x03(\x0b\x32*.google.ads.googleads.v5.common.PriceOffer\x12\x36\n\x10\x66inal_url_suffix\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xf0\x02\n\nPriceOffer\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x05price\x18\x03 \x01(\x0b\x32%.google.ads.googleads.v5.common.Money\x12`\n\x04unit\x18\x04 \x01(\x0e\x32R.google.ads.googleads.v5.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit\x12\x30\n\nfinal_urls\x18\x05 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x66inal_mobile_urls\x18\x06 \x03(\x0b\x32\x1c.google.protobuf.StringValue\"\xb2\x08\n\x11PromotionFeedItem\x12\x36\n\x10promotion_target\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x83\x01\n\x11\x64iscount_modifier\x18\x02 \x01(\x0e\x32h.google.ads.googleads.v5.enums.PromotionExtensionDiscountModifierEnum.PromotionExtensionDiscountModifier\x12:\n\x14promotion_start_date\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x38\n\x12promotion_end_date\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12j\n\x08occasion\x18\t \x01(\x0e\x32X.google.ads.googleads.v5.enums.PromotionExtensionOccasionEnum.PromotionExtensionOccasion\x12\x30\n\nfinal_urls\x18\n \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x66inal_mobile_urls\x18\x0b \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\r \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12\x36\n\x10\x66inal_url_suffix\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlanguage_code\x18\x0f \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0bpercent_off\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueH\x00\x12\x41\n\x10money_amount_off\x18\x04 \x01(\x0b\x32%.google.ads.googleads.v5.common.MoneyH\x00\x12\x36\n\x0epromotion_code\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x01\x12\x43\n\x12orders_over_amount\x18\x06 \x01(\x0b\x32%.google.ads.googleads.v5.common.MoneyH\x01\x42\x0f\n\rdiscount_typeB\x13\n\x11promotion_trigger\"w\n\x19StructuredSnippetFeedItem\x12,\n\x06header\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12,\n\x06values\x18\x02 \x03(\x0b\x32\x1c.google.protobuf.StringValue\"\xcd\x03\n\x10SitelinkFeedItem\x12/\n\tlink_text\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05line1\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05line2\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nfinal_urls\x18\x04 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x66inal_mobile_urls\x18\x05 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\x07 \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12\x36\n\x10\x66inal_url_suffix\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"w\n\x14HotelCalloutFeedItem\x12*\n\x04text\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlanguage_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xea\x01\n\"com.google.ads.googleads.v5.commonB\x0f\x45xtensionsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__store__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__qualifier__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__unit__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__discount__modifier__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__occasion__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_APPFEEDITEM = _descriptor.Descriptor( + name='AppFeedItem', + full_name='google.ads.googleads.v5.common.AppFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='link_text', full_name='google.ads.googleads.v5.common.AppFeedItem.link_text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.common.AppFeedItem.app_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_store', full_name='google.ads.googleads.v5.common.AppFeedItem.app_store', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.common.AppFeedItem.final_urls', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.common.AppFeedItem.final_mobile_urls', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.common.AppFeedItem.tracking_url_template', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.common.AppFeedItem.url_custom_parameters', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.common.AppFeedItem.final_url_suffix', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=759, + serialized_end=1244, +) + + +_CALLFEEDITEM = _descriptor.Descriptor( + name='CallFeedItem', + full_name='google.ads.googleads.v5.common.CallFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v5.common.CallFeedItem.phone_number', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.CallFeedItem.country_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_tracking_enabled', full_name='google.ads.googleads.v5.common.CallFeedItem.call_tracking_enabled', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_conversion_action', full_name='google.ads.googleads.v5.common.CallFeedItem.call_conversion_action', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_conversion_tracking_disabled', full_name='google.ads.googleads.v5.common.CallFeedItem.call_conversion_tracking_disabled', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_conversion_reporting_state', full_name='google.ads.googleads.v5.common.CallFeedItem.call_conversion_reporting_state', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1247, + serialized_end=1693, +) + + +_CALLOUTFEEDITEM = _descriptor.Descriptor( + name='CalloutFeedItem', + full_name='google.ads.googleads.v5.common.CalloutFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='callout_text', full_name='google.ads.googleads.v5.common.CalloutFeedItem.callout_text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1695, + serialized_end=1764, +) + + +_LOCATIONFEEDITEM = _descriptor.Descriptor( + name='LocationFeedItem', + full_name='google.ads.googleads.v5.common.LocationFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.LocationFeedItem.business_name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='address_line_1', full_name='google.ads.googleads.v5.common.LocationFeedItem.address_line_1', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='address_line_2', full_name='google.ads.googleads.v5.common.LocationFeedItem.address_line_2', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='city', full_name='google.ads.googleads.v5.common.LocationFeedItem.city', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='province', full_name='google.ads.googleads.v5.common.LocationFeedItem.province', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='postal_code', full_name='google.ads.googleads.v5.common.LocationFeedItem.postal_code', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.LocationFeedItem.country_code', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v5.common.LocationFeedItem.phone_number', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1767, + serialized_end=2193, +) + + +_AFFILIATELOCATIONFEEDITEM = _descriptor.Descriptor( + name='AffiliateLocationFeedItem', + full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.business_name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='address_line_1', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.address_line_1', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='address_line_2', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.address_line_2', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='city', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.city', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='province', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.province', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='postal_code', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.postal_code', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.country_code', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.phone_number', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='chain_id', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.chain_id', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='chain_name', full_name='google.ads.googleads.v5.common.AffiliateLocationFeedItem.chain_name', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2196, + serialized_end=2728, +) + + +_TEXTMESSAGEFEEDITEM = _descriptor.Descriptor( + name='TextMessageFeedItem', + full_name='google.ads.googleads.v5.common.TextMessageFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v5.common.TextMessageFeedItem.business_name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.common.TextMessageFeedItem.country_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v5.common.TextMessageFeedItem.phone_number', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.TextMessageFeedItem.text', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_text', full_name='google.ads.googleads.v5.common.TextMessageFeedItem.extension_text', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2731, + serialized_end=3007, +) + + +_PRICEFEEDITEM = _descriptor.Descriptor( + name='PriceFeedItem', + full_name='google.ads.googleads.v5.common.PriceFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.common.PriceFeedItem.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_qualifier', full_name='google.ads.googleads.v5.common.PriceFeedItem.price_qualifier', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.common.PriceFeedItem.tracking_url_template', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.common.PriceFeedItem.language_code', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_offerings', full_name='google.ads.googleads.v5.common.PriceFeedItem.price_offerings', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.common.PriceFeedItem.final_url_suffix', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3010, + serialized_end=3471, +) + + +_PRICEOFFER = _descriptor.Descriptor( + name='PriceOffer', + full_name='google.ads.googleads.v5.common.PriceOffer', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='google.ads.googleads.v5.common.PriceOffer.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.common.PriceOffer.description', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price', full_name='google.ads.googleads.v5.common.PriceOffer.price', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unit', full_name='google.ads.googleads.v5.common.PriceOffer.unit', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.common.PriceOffer.final_urls', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.common.PriceOffer.final_mobile_urls', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3474, + serialized_end=3842, +) + + +_PROMOTIONFEEDITEM = _descriptor.Descriptor( + name='PromotionFeedItem', + full_name='google.ads.googleads.v5.common.PromotionFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='promotion_target', full_name='google.ads.googleads.v5.common.PromotionFeedItem.promotion_target', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='discount_modifier', full_name='google.ads.googleads.v5.common.PromotionFeedItem.discount_modifier', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promotion_start_date', full_name='google.ads.googleads.v5.common.PromotionFeedItem.promotion_start_date', index=2, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promotion_end_date', full_name='google.ads.googleads.v5.common.PromotionFeedItem.promotion_end_date', index=3, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='occasion', full_name='google.ads.googleads.v5.common.PromotionFeedItem.occasion', index=4, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.common.PromotionFeedItem.final_urls', index=5, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.common.PromotionFeedItem.final_mobile_urls', index=6, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.common.PromotionFeedItem.tracking_url_template', index=7, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.common.PromotionFeedItem.url_custom_parameters', index=8, + number=13, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.common.PromotionFeedItem.final_url_suffix', index=9, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.common.PromotionFeedItem.language_code', index=10, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_off', full_name='google.ads.googleads.v5.common.PromotionFeedItem.percent_off', index=11, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='money_amount_off', full_name='google.ads.googleads.v5.common.PromotionFeedItem.money_amount_off', index=12, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promotion_code', full_name='google.ads.googleads.v5.common.PromotionFeedItem.promotion_code', index=13, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='orders_over_amount', full_name='google.ads.googleads.v5.common.PromotionFeedItem.orders_over_amount', index=14, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='discount_type', full_name='google.ads.googleads.v5.common.PromotionFeedItem.discount_type', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='promotion_trigger', full_name='google.ads.googleads.v5.common.PromotionFeedItem.promotion_trigger', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3845, + serialized_end=4919, +) + + +_STRUCTUREDSNIPPETFEEDITEM = _descriptor.Descriptor( + name='StructuredSnippetFeedItem', + full_name='google.ads.googleads.v5.common.StructuredSnippetFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='header', full_name='google.ads.googleads.v5.common.StructuredSnippetFeedItem.header', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='values', full_name='google.ads.googleads.v5.common.StructuredSnippetFeedItem.values', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4921, + serialized_end=5040, +) + + +_SITELINKFEEDITEM = _descriptor.Descriptor( + name='SitelinkFeedItem', + full_name='google.ads.googleads.v5.common.SitelinkFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='link_text', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.link_text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='line1', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.line1', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='line2', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.line2', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.final_urls', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.final_mobile_urls', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.tracking_url_template', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.url_custom_parameters', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.common.SitelinkFeedItem.final_url_suffix', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5043, + serialized_end=5504, +) + + +_HOTELCALLOUTFEEDITEM = _descriptor.Descriptor( + name='HotelCalloutFeedItem', + full_name='google.ads.googleads.v5.common.HotelCalloutFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.common.HotelCalloutFeedItem.text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.common.HotelCalloutFeedItem.language_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5506, + serialized_end=5625, +) + +_APPFEEDITEM.fields_by_name['link_text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPFEEDITEM.fields_by_name['app_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPFEEDITEM.fields_by_name['app_store'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__store__pb2._APPSTOREENUM_APPSTORE +_APPFEEDITEM.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPFEEDITEM.fields_by_name['final_mobile_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPFEEDITEM.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPFEEDITEM.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_APPFEEDITEM.fields_by_name['final_url_suffix'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLFEEDITEM.fields_by_name['phone_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLFEEDITEM.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLFEEDITEM.fields_by_name['call_tracking_enabled'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CALLFEEDITEM.fields_by_name['call_conversion_action'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLFEEDITEM.fields_by_name['call_conversion_tracking_disabled'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CALLFEEDITEM.fields_by_name['call_conversion_reporting_state'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__conversion__reporting__state__pb2._CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE +_CALLOUTFEEDITEM.fields_by_name['callout_text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['business_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['address_line_1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['address_line_2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['city'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['province'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['postal_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LOCATIONFEEDITEM.fields_by_name['phone_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['business_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['address_line_1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['address_line_2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['city'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['province'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['postal_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['phone_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['chain_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_AFFILIATELOCATIONFEEDITEM.fields_by_name['chain_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTMESSAGEFEEDITEM.fields_by_name['business_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTMESSAGEFEEDITEM.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTMESSAGEFEEDITEM.fields_by_name['phone_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTMESSAGEFEEDITEM.fields_by_name['text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTMESSAGEFEEDITEM.fields_by_name['extension_text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEFEEDITEM.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__type__pb2._PRICEEXTENSIONTYPEENUM_PRICEEXTENSIONTYPE +_PRICEFEEDITEM.fields_by_name['price_qualifier'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__qualifier__pb2._PRICEEXTENSIONPRICEQUALIFIERENUM_PRICEEXTENSIONPRICEQUALIFIER +_PRICEFEEDITEM.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEFEEDITEM.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEFEEDITEM.fields_by_name['price_offerings'].message_type = _PRICEOFFER +_PRICEFEEDITEM.fields_by_name['final_url_suffix'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEOFFER.fields_by_name['header'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEOFFER.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEOFFER.fields_by_name['price'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2._MONEY +_PRICEOFFER.fields_by_name['unit'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__extension__price__unit__pb2._PRICEEXTENSIONPRICEUNITENUM_PRICEEXTENSIONPRICEUNIT +_PRICEOFFER.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRICEOFFER.fields_by_name['final_mobile_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['promotion_target'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['discount_modifier'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__discount__modifier__pb2._PROMOTIONEXTENSIONDISCOUNTMODIFIERENUM_PROMOTIONEXTENSIONDISCOUNTMODIFIER +_PROMOTIONFEEDITEM.fields_by_name['promotion_start_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['promotion_end_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['occasion'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__extension__occasion__pb2._PROMOTIONEXTENSIONOCCASIONENUM_PROMOTIONEXTENSIONOCCASION +_PROMOTIONFEEDITEM.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['final_mobile_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_PROMOTIONFEEDITEM.fields_by_name['final_url_suffix'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['percent_off'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_PROMOTIONFEEDITEM.fields_by_name['money_amount_off'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2._MONEY +_PROMOTIONFEEDITEM.fields_by_name['promotion_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PROMOTIONFEEDITEM.fields_by_name['orders_over_amount'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2._MONEY +_PROMOTIONFEEDITEM.oneofs_by_name['discount_type'].fields.append( + _PROMOTIONFEEDITEM.fields_by_name['percent_off']) +_PROMOTIONFEEDITEM.fields_by_name['percent_off'].containing_oneof = _PROMOTIONFEEDITEM.oneofs_by_name['discount_type'] +_PROMOTIONFEEDITEM.oneofs_by_name['discount_type'].fields.append( + _PROMOTIONFEEDITEM.fields_by_name['money_amount_off']) +_PROMOTIONFEEDITEM.fields_by_name['money_amount_off'].containing_oneof = _PROMOTIONFEEDITEM.oneofs_by_name['discount_type'] +_PROMOTIONFEEDITEM.oneofs_by_name['promotion_trigger'].fields.append( + _PROMOTIONFEEDITEM.fields_by_name['promotion_code']) +_PROMOTIONFEEDITEM.fields_by_name['promotion_code'].containing_oneof = _PROMOTIONFEEDITEM.oneofs_by_name['promotion_trigger'] +_PROMOTIONFEEDITEM.oneofs_by_name['promotion_trigger'].fields.append( + _PROMOTIONFEEDITEM.fields_by_name['orders_over_amount']) +_PROMOTIONFEEDITEM.fields_by_name['orders_over_amount'].containing_oneof = _PROMOTIONFEEDITEM.oneofs_by_name['promotion_trigger'] +_STRUCTUREDSNIPPETFEEDITEM.fields_by_name['header'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_STRUCTUREDSNIPPETFEEDITEM.fields_by_name['values'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['link_text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['line1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['line2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['final_mobile_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITELINKFEEDITEM.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_SITELINKFEEDITEM.fields_by_name['final_url_suffix'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELCALLOUTFEEDITEM.fields_by_name['text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELCALLOUTFEEDITEM.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['AppFeedItem'] = _APPFEEDITEM +DESCRIPTOR.message_types_by_name['CallFeedItem'] = _CALLFEEDITEM +DESCRIPTOR.message_types_by_name['CalloutFeedItem'] = _CALLOUTFEEDITEM +DESCRIPTOR.message_types_by_name['LocationFeedItem'] = _LOCATIONFEEDITEM +DESCRIPTOR.message_types_by_name['AffiliateLocationFeedItem'] = _AFFILIATELOCATIONFEEDITEM +DESCRIPTOR.message_types_by_name['TextMessageFeedItem'] = _TEXTMESSAGEFEEDITEM +DESCRIPTOR.message_types_by_name['PriceFeedItem'] = _PRICEFEEDITEM +DESCRIPTOR.message_types_by_name['PriceOffer'] = _PRICEOFFER +DESCRIPTOR.message_types_by_name['PromotionFeedItem'] = _PROMOTIONFEEDITEM +DESCRIPTOR.message_types_by_name['StructuredSnippetFeedItem'] = _STRUCTUREDSNIPPETFEEDITEM +DESCRIPTOR.message_types_by_name['SitelinkFeedItem'] = _SITELINKFEEDITEM +DESCRIPTOR.message_types_by_name['HotelCalloutFeedItem'] = _HOTELCALLOUTFEEDITEM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AppFeedItem = _reflection.GeneratedProtocolMessageType('AppFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _APPFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents an App extension. + + Attributes: + link_text: + The visible text displayed when the link is rendered in an ad. + This string must not be empty, and the length of this string + should be between 1 and 25, inclusive. + app_id: + The store-specific ID for the target application. This string + must not be empty. + app_store: + The application store that the target application belongs to. + This field is required. + final_urls: + A list of possible final URLs after all cross domain + redirects. This list must not be empty. + final_mobile_urls: + A list of possible final mobile URLs after all cross domain + redirects. + tracking_url_template: + URL template for constructing a tracking URL. Default value is + "{lpurl}". + url_custom_parameters: + A list of mappings to be used for substituting URL custom + parameter tags in the tracking\_url\_template, final\_urls, + and/or final\_mobile\_urls. + final_url_suffix: + URL template for appending params to landing page URLs served + with parallel tracking. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AppFeedItem) + }) +_sym_db.RegisterMessage(AppFeedItem) + +CallFeedItem = _reflection.GeneratedProtocolMessageType('CallFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _CALLFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a Call extension. + + Attributes: + phone_number: + The advertiser's phone number to append to the ad. This string + must not be empty. + country_code: + Uppercase two-letter country code of the advertiser's phone + number. This string must not be empty. + call_tracking_enabled: + Indicates whether call tracking is enabled. By default, call + tracking is not enabled. + call_conversion_action: + The conversion action to attribute a call conversion to. If + not set a default conversion action is used. This field only + has effect if call\_tracking\_enabled is set to true. + Otherwise this field is ignored. + call_conversion_tracking_disabled: + If true, disable call conversion tracking. + call\_conversion\_action should not be set if this is true. + Optional. + call_conversion_reporting_state: + Enum value that indicates whether this call extension uses its + own call conversion setting (or just have call conversion + disabled), or following the account level setting. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CallFeedItem) + }) +_sym_db.RegisterMessage(CallFeedItem) + +CalloutFeedItem = _reflection.GeneratedProtocolMessageType('CalloutFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _CALLOUTFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a callout extension. + + Attributes: + callout_text: + The callout text. The length of this string should be between + 1 and 25, inclusive. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CalloutFeedItem) + }) +_sym_db.RegisterMessage(CalloutFeedItem) + +LocationFeedItem = _reflection.GeneratedProtocolMessageType('LocationFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _LOCATIONFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a location extension. + + Attributes: + business_name: + The name of the business. + address_line_1: + Line 1 of the business address. + address_line_2: + Line 2 of the business address. + city: + City of the business address. + province: + Province of the business address. + postal_code: + Postal code of the business address. + country_code: + Country code of the business address. + phone_number: + Phone number of the business. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LocationFeedItem) + }) +_sym_db.RegisterMessage(LocationFeedItem) + +AffiliateLocationFeedItem = _reflection.GeneratedProtocolMessageType('AffiliateLocationFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _AFFILIATELOCATIONFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents an affiliate location extension. + + Attributes: + business_name: + The name of the business. + address_line_1: + Line 1 of the business address. + address_line_2: + Line 2 of the business address. + city: + City of the business address. + province: + Province of the business address. + postal_code: + Postal code of the business address. + country_code: + Country code of the business address. + phone_number: + Phone number of the business. + chain_id: + Id of the retail chain that is advertised as a seller of your + product. + chain_name: + Name of chain. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.AffiliateLocationFeedItem) + }) +_sym_db.RegisterMessage(AffiliateLocationFeedItem) + +TextMessageFeedItem = _reflection.GeneratedProtocolMessageType('TextMessageFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _TEXTMESSAGEFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """An extension that users can click on to send a text message to the + advertiser. + + Attributes: + business_name: + The business name to prepend to the message text. This field + is required. + country_code: + Uppercase two-letter country code of the advertiser's phone + number. This field is required. + phone_number: + The advertiser's phone number the message will be sent to. + Required. + text: + The text to show in the ad. This field is required. + extension_text: + The message text populated in the messaging app. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TextMessageFeedItem) + }) +_sym_db.RegisterMessage(TextMessageFeedItem) + +PriceFeedItem = _reflection.GeneratedProtocolMessageType('PriceFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _PRICEFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a Price extension. + + Attributes: + type: + Price extension type of this extension. + price_qualifier: + Price qualifier for all offers of this price extension. + tracking_url_template: + Tracking URL template for all offers of this price extension. + language_code: + The code of the language used for this price extension. + price_offerings: + The price offerings in this price extension. + final_url_suffix: + URL template for appending params to landing page URLs served + with parallel tracking. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PriceFeedItem) + }) +_sym_db.RegisterMessage(PriceFeedItem) + +PriceOffer = _reflection.GeneratedProtocolMessageType('PriceOffer', (_message.Message,), { + 'DESCRIPTOR' : _PRICEOFFER, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents one price offer in a price extension. + + Attributes: + header: + Header text of this offer. + description: + Description text of this offer. + price: + Price value of this offer. + unit: + Price unit for this offer. + final_urls: + A list of possible final URLs after all cross domain + redirects. + final_mobile_urls: + A list of possible final mobile URLs after all cross domain + redirects. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PriceOffer) + }) +_sym_db.RegisterMessage(PriceOffer) + +PromotionFeedItem = _reflection.GeneratedProtocolMessageType('PromotionFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _PROMOTIONFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a Promotion extension. + + Attributes: + promotion_target: + A freeform description of what the promotion is targeting. + This field is required. + discount_modifier: + Enum that modifies the qualification of the discount. + promotion_start_date: + Start date of when the promotion is eligible to be redeemed. + promotion_end_date: + End date of when the promotion is eligible to be redeemed. + occasion: + The occasion the promotion was intended for. If an occasion is + set, the redemption window will need to fall within the date + range associated with the occasion. + final_urls: + A list of possible final URLs after all cross domain + redirects. This field is required. + final_mobile_urls: + A list of possible final mobile URLs after all cross domain + redirects. + tracking_url_template: + URL template for constructing a tracking URL. + url_custom_parameters: + A list of mappings to be used for substituting URL custom + parameter tags in the tracking\_url\_template, final\_urls, + and/or final\_mobile\_urls. + final_url_suffix: + URL template for appending params to landing page URLs served + with parallel tracking. + language_code: + The language of the promotion. Represented as BCP 47 language + tag. + discount_type: + Discount type, can be percentage off or amount off. + percent_off: + Percentage off discount in the promotion in micros. One + million is equivalent to one percent. Either this or + money\_off\_amount is required. + money_amount_off: + Money amount off for discount in the promotion. Either this or + percent\_off is required. + promotion_trigger: + Promotion trigger. Can be by promotion code or promo by + eligible order amount. + promotion_code: + A code the user should use in order to be eligible for the + promotion. + orders_over_amount: + The amount the total order needs to be for the user to be + eligible for the promotion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PromotionFeedItem) + }) +_sym_db.RegisterMessage(PromotionFeedItem) + +StructuredSnippetFeedItem = _reflection.GeneratedProtocolMessageType('StructuredSnippetFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _STRUCTUREDSNIPPETFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a structured snippet extension. + + Attributes: + header: + The header of the snippet. This string must not be empty. + values: + The values in the snippet. The maximum size of this collection + is 10. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.StructuredSnippetFeedItem) + }) +_sym_db.RegisterMessage(StructuredSnippetFeedItem) + +SitelinkFeedItem = _reflection.GeneratedProtocolMessageType('SitelinkFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _SITELINKFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a sitelink extension. + + Attributes: + link_text: + URL display text for the sitelink. The length of this string + should be between 1 and 25, inclusive. + line1: + First line of the description for the sitelink. If this value + is set, line2 must also be set. The length of this string + should be between 0 and 35, inclusive. + line2: + Second line of the description for the sitelink. If this value + is set, line1 must also be set. The length of this string + should be between 0 and 35, inclusive. + final_urls: + A list of possible final URLs after all cross domain + redirects. + final_mobile_urls: + A list of possible final mobile URLs after all cross domain + redirects. + tracking_url_template: + URL template for constructing a tracking URL. + url_custom_parameters: + A list of mappings to be used for substituting URL custom + parameter tags in the tracking\_url\_template, final\_urls, + and/or final\_mobile\_urls. + final_url_suffix: + Final URL suffix to be appended to landing page URLs served + with parallel tracking. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.SitelinkFeedItem) + }) +_sym_db.RegisterMessage(SitelinkFeedItem) + +HotelCalloutFeedItem = _reflection.GeneratedProtocolMessageType('HotelCalloutFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _HOTELCALLOUTFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.common.extensions_pb2' + , + '__doc__': """Represents a hotel callout extension. + + Attributes: + text: + The callout text. The length of this string should be between + 1 and 25, inclusive. + language_code: + The language of the hotel callout text. IETF BCP 47 compliant + language code. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.HotelCalloutFeedItem) + }) +_sym_db.RegisterMessage(HotelCalloutFeedItem) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/extensions_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/extensions_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/extensions_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/feed_common_pb2.py b/google/ads/google_ads/v5/proto/common/feed_common_pb2.py new file mode 100644 index 000000000..cd5d48d76 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/feed_common_pb2.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/feed_common.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/feed_common.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\017FeedCommonProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/common/feed_common.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"p\n\x05Money\x12\x33\n\rcurrency_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\ramount_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\xea\x01\n\"com.google.ads.googleads.v5.commonB\x0f\x46\x65\x65\x64\x43ommonProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MONEY = _descriptor.Descriptor( + name='Money', + full_name='google.ads.googleads.v5.common.Money', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.common.Money.currency_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='amount_micros', full_name='google.ads.googleads.v5.common.Money.amount_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=152, + serialized_end=264, +) + +_MONEY.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_MONEY.fields_by_name['amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['Money'] = _MONEY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Money = _reflection.GeneratedProtocolMessageType('Money', (_message.Message,), { + 'DESCRIPTOR' : _MONEY, + '__module__' : 'google.ads.googleads_v5.proto.common.feed_common_pb2' + , + '__doc__': """Represents a price in a particular currency. + + Attributes: + currency_code: + Three-character ISO 4217 currency code. + amount_micros: + Amount in micros. One million is equivalent to one unit. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Money) + }) +_sym_db.RegisterMessage(Money) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/feed_common_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/feed_common_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/feed_common_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/final_app_url_pb2.py b/google/ads/google_ads/v5/proto/common/final_app_url_pb2.py new file mode 100644 index 000000000..15ddc4cf6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/final_app_url_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/final_app_url.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import app_url_operating_system_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__url__operating__system__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/final_app_url.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\020FinalAppUrlProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/common/final_app_url.proto\x12\x1egoogle.ads.googleads.v5.common\x1aGgoogle/ads/googleads_v5/proto/enums/app_url_operating_system_type.proto\x1a\x1cgoogle/api/annotations.proto\"\x90\x01\n\x0b\x46inalAppUrl\x12g\n\x07os_type\x18\x01 \x01(\x0e\x32V.google.ads.googleads.v5.enums.AppUrlOperatingSystemTypeEnum.AppUrlOperatingSystemType\x12\x10\n\x03url\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x06\n\x04_urlB\xeb\x01\n\"com.google.ads.googleads.v5.commonB\x10\x46inalAppUrlProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__url__operating__system__type__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FINALAPPURL = _descriptor.Descriptor( + name='FinalAppUrl', + full_name='google.ads.googleads.v5.common.FinalAppUrl', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='os_type', full_name='google.ads.googleads.v5.common.FinalAppUrl.os_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.common.FinalAppUrl.url', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_url', full_name='google.ads.googleads.v5.common.FinalAppUrl._url', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=196, + serialized_end=340, +) + +_FINALAPPURL.fields_by_name['os_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__url__operating__system__type__pb2._APPURLOPERATINGSYSTEMTYPEENUM_APPURLOPERATINGSYSTEMTYPE +_FINALAPPURL.oneofs_by_name['_url'].fields.append( + _FINALAPPURL.fields_by_name['url']) +_FINALAPPURL.fields_by_name['url'].containing_oneof = _FINALAPPURL.oneofs_by_name['_url'] +DESCRIPTOR.message_types_by_name['FinalAppUrl'] = _FINALAPPURL +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FinalAppUrl = _reflection.GeneratedProtocolMessageType('FinalAppUrl', (_message.Message,), { + 'DESCRIPTOR' : _FINALAPPURL, + '__module__' : 'google.ads.googleads_v5.proto.common.final_app_url_pb2' + , + '__doc__': """A URL for deep linking into an app for the given operating system. + + Attributes: + os_type: + The operating system targeted by this URL. Required. + url: + The app deep link URL. Deep links specify a location in an app + that corresponds to the content you'd like to show, and should + be of the form {scheme}://{host\_path} The scheme identifies + which app to open. For your app, you can use a custom scheme + that starts with the app's name. The host and path specify the + unique location in the app where your content exists. Example: + "exampleapp://productid\_1234". Required. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.FinalAppUrl) + }) +_sym_db.RegisterMessage(FinalAppUrl) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/final_app_url_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/final_app_url_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/final_app_url_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/frequency_cap_pb2.py b/google/ads/google_ads/v5/proto/common/frequency_cap_pb2.py new file mode 100644 index 000000000..e084ed97f --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/frequency_cap_pb2.py @@ -0,0 +1,192 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/frequency_cap.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import frequency_cap_event_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__event__type__pb2 +from google.ads.google_ads.v5.proto.enums import frequency_cap_level_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__level__pb2 +from google.ads.google_ads.v5.proto.enums import frequency_cap_time_unit_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/frequency_cap.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\021FrequencyCapProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/common/frequency_cap.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x42google/ads/googleads_v5/proto/enums/frequency_cap_event_type.proto\x1a=google/ads/googleads_v5/proto/enums/frequency_cap_level.proto\x1a\x41google/ads/googleads_v5/proto/enums/frequency_cap_time_unit.proto\x1a\x1cgoogle/api/annotations.proto\"k\n\x11\x46requencyCapEntry\x12<\n\x03key\x18\x01 \x01(\x0b\x32/.google.ads.googleads.v5.common.FrequencyCapKey\x12\x10\n\x03\x63\x61p\x18\x03 \x01(\x05H\x00\x88\x01\x01\x42\x06\n\x04_cap\"\xd7\x02\n\x0f\x46requencyCapKey\x12U\n\x05level\x18\x01 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.FrequencyCapLevelEnum.FrequencyCapLevel\x12\x62\n\nevent_type\x18\x03 \x01(\x0e\x32N.google.ads.googleads.v5.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType\x12_\n\ttime_unit\x18\x02 \x01(\x0e\x32L.google.ads.googleads.v5.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit\x12\x18\n\x0btime_length\x18\x05 \x01(\x05H\x00\x88\x01\x01\x42\x0e\n\x0c_time_lengthB\xec\x01\n\"com.google.ads.googleads.v5.commonB\x11\x46requencyCapProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__event__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__level__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FREQUENCYCAPENTRY = _descriptor.Descriptor( + name='FrequencyCapEntry', + full_name='google.ads.googleads.v5.common.FrequencyCapEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='google.ads.googleads.v5.common.FrequencyCapEntry.key', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cap', full_name='google.ads.googleads.v5.common.FrequencyCapEntry.cap', index=1, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_cap', full_name='google.ads.googleads.v5.common.FrequencyCapEntry._cap', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=320, + serialized_end=427, +) + + +_FREQUENCYCAPKEY = _descriptor.Descriptor( + name='FrequencyCapKey', + full_name='google.ads.googleads.v5.common.FrequencyCapKey', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='level', full_name='google.ads.googleads.v5.common.FrequencyCapKey.level', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='event_type', full_name='google.ads.googleads.v5.common.FrequencyCapKey.event_type', index=1, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_unit', full_name='google.ads.googleads.v5.common.FrequencyCapKey.time_unit', index=2, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_length', full_name='google.ads.googleads.v5.common.FrequencyCapKey.time_length', index=3, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_time_length', full_name='google.ads.googleads.v5.common.FrequencyCapKey._time_length', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=430, + serialized_end=773, +) + +_FREQUENCYCAPENTRY.fields_by_name['key'].message_type = _FREQUENCYCAPKEY +_FREQUENCYCAPENTRY.oneofs_by_name['_cap'].fields.append( + _FREQUENCYCAPENTRY.fields_by_name['cap']) +_FREQUENCYCAPENTRY.fields_by_name['cap'].containing_oneof = _FREQUENCYCAPENTRY.oneofs_by_name['_cap'] +_FREQUENCYCAPKEY.fields_by_name['level'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__level__pb2._FREQUENCYCAPLEVELENUM_FREQUENCYCAPLEVEL +_FREQUENCYCAPKEY.fields_by_name['event_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__event__type__pb2._FREQUENCYCAPEVENTTYPEENUM_FREQUENCYCAPEVENTTYPE +_FREQUENCYCAPKEY.fields_by_name['time_unit'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2._FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT +_FREQUENCYCAPKEY.oneofs_by_name['_time_length'].fields.append( + _FREQUENCYCAPKEY.fields_by_name['time_length']) +_FREQUENCYCAPKEY.fields_by_name['time_length'].containing_oneof = _FREQUENCYCAPKEY.oneofs_by_name['_time_length'] +DESCRIPTOR.message_types_by_name['FrequencyCapEntry'] = _FREQUENCYCAPENTRY +DESCRIPTOR.message_types_by_name['FrequencyCapKey'] = _FREQUENCYCAPKEY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FrequencyCapEntry = _reflection.GeneratedProtocolMessageType('FrequencyCapEntry', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAPENTRY, + '__module__' : 'google.ads.googleads_v5.proto.common.frequency_cap_pb2' + , + '__doc__': """A rule specifying the maximum number of times an ad (or some set of + ads) can be shown to a user over a particular time period. + + Attributes: + key: + The key of a particular frequency cap. There can be no more + than one frequency cap with the same key. + cap: + Maximum number of events allowed during the time range by this + cap. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.FrequencyCapEntry) + }) +_sym_db.RegisterMessage(FrequencyCapEntry) + +FrequencyCapKey = _reflection.GeneratedProtocolMessageType('FrequencyCapKey', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAPKEY, + '__module__' : 'google.ads.googleads_v5.proto.common.frequency_cap_pb2' + , + '__doc__': """A group of fields used as keys for a frequency cap. There can be no + more than one frequency cap with the same key. + + Attributes: + level: + The level on which the cap is to be applied (e.g. ad group ad, + ad group). The cap is applied to all the entities of this + level. + event_type: + The type of event that the cap applies to (e.g. impression). + time_unit: + Unit of time the cap is defined at (e.g. day, week). + time_length: + Number of time units the cap lasts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.FrequencyCapKey) + }) +_sym_db.RegisterMessage(FrequencyCapKey) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/frequency_cap_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/frequency_cap_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/frequency_cap_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2.py b/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2.py new file mode 100644 index 000000000..d7a56e98c --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2.py @@ -0,0 +1,213 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/keyword_plan_common.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import keyword_plan_competition_level_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__competition__level__pb2 +from google.ads.google_ads.v5.proto.enums import month_of_year_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/keyword_plan_common.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\026KeywordPlanCommonProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/common/keyword_plan_common.proto\x12\x1egoogle.ads.googleads.v5.common\x1aHgoogle/ads/googleads_v5/proto/enums/keyword_plan_competition_level.proto\x1a\x37google/ads/googleads_v5/proto/enums/month_of_year.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xda\x03\n\x1cKeywordPlanHistoricalMetrics\x12\x39\n\x14\x61vg_monthly_searches\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12S\n\x16monthly_search_volumes\x18\x06 \x03(\x0b\x32\x33.google.ads.googleads.v5.common.MonthlySearchVolume\x12o\n\x0b\x63ompetition\x18\x02 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.KeywordPlanCompetitionLevelEnum.KeywordPlanCompetitionLevel\x12\x36\n\x11\x63ompetition_index\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12?\n\x1alow_top_of_page_bid_micros\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12@\n\x1bhigh_top_of_page_bid_micros\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xc2\x01\n\x13MonthlySearchVolume\x12)\n\x04year\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12I\n\x05month\x18\x02 \x01(\x0e\x32:.google.ads.googleads.v5.enums.MonthOfYearEnum.MonthOfYear\x12\x35\n\x10monthly_searches\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\xf1\x01\n\"com.google.ads.googleads.v5.commonB\x16KeywordPlanCommonProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__competition__level__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_KEYWORDPLANHISTORICALMETRICS = _descriptor.Descriptor( + name='KeywordPlanHistoricalMetrics', + full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='avg_monthly_searches', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.avg_monthly_searches', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='monthly_search_volumes', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.monthly_search_volumes', index=1, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='competition', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.competition', index=2, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='competition_index', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.competition_index', index=3, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='low_top_of_page_bid_micros', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.low_top_of_page_bid_micros', index=4, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='high_top_of_page_bid_micros', full_name='google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics.high_top_of_page_bid_micros', index=5, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=292, + serialized_end=766, +) + + +_MONTHLYSEARCHVOLUME = _descriptor.Descriptor( + name='MonthlySearchVolume', + full_name='google.ads.googleads.v5.common.MonthlySearchVolume', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='year', full_name='google.ads.googleads.v5.common.MonthlySearchVolume.year', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='month', full_name='google.ads.googleads.v5.common.MonthlySearchVolume.month', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='monthly_searches', full_name='google.ads.googleads.v5.common.MonthlySearchVolume.monthly_searches', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=769, + serialized_end=963, +) + +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['avg_monthly_searches'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['monthly_search_volumes'].message_type = _MONTHLYSEARCHVOLUME +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['competition'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__competition__level__pb2._KEYWORDPLANCOMPETITIONLEVELENUM_KEYWORDPLANCOMPETITIONLEVEL +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['competition_index'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['low_top_of_page_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANHISTORICALMETRICS.fields_by_name['high_top_of_page_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_MONTHLYSEARCHVOLUME.fields_by_name['year'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_MONTHLYSEARCHVOLUME.fields_by_name['month'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2._MONTHOFYEARENUM_MONTHOFYEAR +_MONTHLYSEARCHVOLUME.fields_by_name['monthly_searches'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['KeywordPlanHistoricalMetrics'] = _KEYWORDPLANHISTORICALMETRICS +DESCRIPTOR.message_types_by_name['MonthlySearchVolume'] = _MONTHLYSEARCHVOLUME +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanHistoricalMetrics = _reflection.GeneratedProtocolMessageType('KeywordPlanHistoricalMetrics', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANHISTORICALMETRICS, + '__module__' : 'google.ads.googleads_v5.proto.common.keyword_plan_common_pb2' + , + '__doc__': """Historical metrics specific to the targeting options selected. + Targeting options include geographies, network, etc. Refer to + https://support.google.com/google-ads/answer/3022575 for more details. + + Attributes: + avg_monthly_searches: + Approximate number of monthly searches on this query averaged + for the past 12 months. + monthly_search_volumes: + Approximate number of searches on this query for the past + twelve months. + competition: + The competition level for the query. + competition_index: + The competition index for the query in the range [0, 100]. + Shows how competitive ad placement is for a keyword. The level + of competition from 0-100 is determined by the number of ad + slots filled divided by the total number of ad slots + available. If not enough data is available, null is returned. + low_top_of_page_bid_micros: + Top of page bid low range (20th percentile) in micros for the + keyword. + high_top_of_page_bid_micros: + Top of page bid high range (80th percentile) in micros for the + keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics) + }) +_sym_db.RegisterMessage(KeywordPlanHistoricalMetrics) + +MonthlySearchVolume = _reflection.GeneratedProtocolMessageType('MonthlySearchVolume', (_message.Message,), { + 'DESCRIPTOR' : _MONTHLYSEARCHVOLUME, + '__module__' : 'google.ads.googleads_v5.proto.common.keyword_plan_common_pb2' + , + '__doc__': """Monthly search volume. + + Attributes: + year: + The year of the search volume (e.g. 2020). + month: + The month of the search volume. + monthly_searches: + Approximate number of searches for the month. A null value + indicates the search volume is unavailable for that month. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MonthlySearchVolume) + }) +_sym_db.RegisterMessage(MonthlySearchVolume) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/keyword_plan_common_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/matching_function_pb2.py b/google/ads/google_ads/v5/proto/common/matching_function_pb2.py new file mode 100644 index 000000000..2782555c9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/matching_function_pb2.py @@ -0,0 +1,483 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/matching_function.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import matching_function_context_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__context__type__pb2 +from google.ads.google_ads.v5.proto.enums import matching_function_operator_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__operator__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/matching_function.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\025MatchingFunctionProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\n\rleft_operands\x18\x02 \x03(\x0b\x32\'.google.ads.googleads.v5.common.Operand\x12?\n\x0eright_operands\x18\x03 \x03(\x0b\x32\'.google.ads.googleads.v5.common.Operand\"\xfe\x07\n\x07Operand\x12S\n\x10\x63onstant_operand\x18\x01 \x01(\x0b\x32\x37.google.ads.googleads.v5.common.Operand.ConstantOperandH\x00\x12^\n\x16\x66\x65\x65\x64_attribute_operand\x18\x02 \x01(\x0b\x32<.google.ads.googleads.v5.common.Operand.FeedAttributeOperandH\x00\x12S\n\x10\x66unction_operand\x18\x03 \x01(\x0b\x32\x37.google.ads.googleads.v5.common.Operand.FunctionOperandH\x00\x12`\n\x17request_context_operand\x18\x04 \x01(\x0b\x32=.google.ads.googleads.v5.common.Operand.RequestContextOperandH\x00\x1a\xff\x01\n\x0f\x43onstantOperand\x12\x34\n\x0cstring_value\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x12\x31\n\nlong_value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueH\x00\x12\x33\n\rboolean_value\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueH\x00\x12\x34\n\x0c\x64ouble_value\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.DoubleValueH\x00\x42\x18\n\x16\x63onstant_operand_value\x1a|\n\x14\x46\x65\x65\x64\x41ttributeOperand\x12,\n\x07\x66\x65\x65\x64_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x11\x66\x65\x65\x64_attribute_id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a^\n\x0f\x46unctionOperand\x12K\n\x11matching_function\x18\x01 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.MatchingFunction\x1a\x89\x01\n\x15RequestContextOperand\x12p\n\x0c\x63ontext_type\x18\x01 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextTypeB\x1b\n\x19\x66unction_argument_operandB\xf0\x01\n\"com.google.ads.googleads.v5.commonB\x15MatchingFunctionProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__context__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__operator__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MATCHINGFUNCTION = _descriptor.Descriptor( + name='MatchingFunction', + full_name='google.ads.googleads.v5.common.MatchingFunction', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='function_string', full_name='google.ads.googleads.v5.common.MatchingFunction.function_string', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.MatchingFunction.operator', index=1, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='left_operands', full_name='google.ads.googleads.v5.common.MatchingFunction.left_operands', index=2, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='right_operands', full_name='google.ads.googleads.v5.common.MatchingFunction.right_operands', index=3, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=303, + serialized_end=609, +) + + +_OPERAND_CONSTANTOPERAND = _descriptor.Descriptor( + name='ConstantOperand', + full_name='google.ads.googleads.v5.common.Operand.ConstantOperand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='string_value', full_name='google.ads.googleads.v5.common.Operand.ConstantOperand.string_value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='long_value', full_name='google.ads.googleads.v5.common.Operand.ConstantOperand.long_value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='boolean_value', full_name='google.ads.googleads.v5.common.Operand.ConstantOperand.boolean_value', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='double_value', full_name='google.ads.googleads.v5.common.Operand.ConstantOperand.double_value', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='constant_operand_value', full_name='google.ads.googleads.v5.common.Operand.ConstantOperand.constant_operand_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=988, + serialized_end=1243, +) + +_OPERAND_FEEDATTRIBUTEOPERAND = _descriptor.Descriptor( + name='FeedAttributeOperand', + full_name='google.ads.googleads.v5.common.Operand.FeedAttributeOperand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='feed_id', full_name='google.ads.googleads.v5.common.Operand.FeedAttributeOperand.feed_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_attribute_id', full_name='google.ads.googleads.v5.common.Operand.FeedAttributeOperand.feed_attribute_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1245, + serialized_end=1369, +) + +_OPERAND_FUNCTIONOPERAND = _descriptor.Descriptor( + name='FunctionOperand', + full_name='google.ads.googleads.v5.common.Operand.FunctionOperand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='matching_function', full_name='google.ads.googleads.v5.common.Operand.FunctionOperand.matching_function', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1371, + serialized_end=1465, +) + +_OPERAND_REQUESTCONTEXTOPERAND = _descriptor.Descriptor( + name='RequestContextOperand', + full_name='google.ads.googleads.v5.common.Operand.RequestContextOperand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='context_type', full_name='google.ads.googleads.v5.common.Operand.RequestContextOperand.context_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1468, + serialized_end=1605, +) + +_OPERAND = _descriptor.Descriptor( + name='Operand', + full_name='google.ads.googleads.v5.common.Operand', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='constant_operand', full_name='google.ads.googleads.v5.common.Operand.constant_operand', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_attribute_operand', full_name='google.ads.googleads.v5.common.Operand.feed_attribute_operand', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='function_operand', full_name='google.ads.googleads.v5.common.Operand.function_operand', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='request_context_operand', full_name='google.ads.googleads.v5.common.Operand.request_context_operand', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_OPERAND_CONSTANTOPERAND, _OPERAND_FEEDATTRIBUTEOPERAND, _OPERAND_FUNCTIONOPERAND, _OPERAND_REQUESTCONTEXTOPERAND, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='function_argument_operand', full_name='google.ads.googleads.v5.common.Operand.function_argument_operand', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=612, + serialized_end=1634, +) + +_MATCHINGFUNCTION.fields_by_name['function_string'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_MATCHINGFUNCTION.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__operator__pb2._MATCHINGFUNCTIONOPERATORENUM_MATCHINGFUNCTIONOPERATOR +_MATCHINGFUNCTION.fields_by_name['left_operands'].message_type = _OPERAND +_MATCHINGFUNCTION.fields_by_name['right_operands'].message_type = _OPERAND +_OPERAND_CONSTANTOPERAND.fields_by_name['string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_OPERAND_CONSTANTOPERAND.fields_by_name['long_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_OPERAND_CONSTANTOPERAND.fields_by_name['boolean_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_OPERAND_CONSTANTOPERAND.fields_by_name['double_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_OPERAND_CONSTANTOPERAND.containing_type = _OPERAND +_OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'].fields.append( + _OPERAND_CONSTANTOPERAND.fields_by_name['string_value']) +_OPERAND_CONSTANTOPERAND.fields_by_name['string_value'].containing_oneof = _OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'] +_OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'].fields.append( + _OPERAND_CONSTANTOPERAND.fields_by_name['long_value']) +_OPERAND_CONSTANTOPERAND.fields_by_name['long_value'].containing_oneof = _OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'] +_OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'].fields.append( + _OPERAND_CONSTANTOPERAND.fields_by_name['boolean_value']) +_OPERAND_CONSTANTOPERAND.fields_by_name['boolean_value'].containing_oneof = _OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'] +_OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'].fields.append( + _OPERAND_CONSTANTOPERAND.fields_by_name['double_value']) +_OPERAND_CONSTANTOPERAND.fields_by_name['double_value'].containing_oneof = _OPERAND_CONSTANTOPERAND.oneofs_by_name['constant_operand_value'] +_OPERAND_FEEDATTRIBUTEOPERAND.fields_by_name['feed_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_OPERAND_FEEDATTRIBUTEOPERAND.fields_by_name['feed_attribute_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_OPERAND_FEEDATTRIBUTEOPERAND.containing_type = _OPERAND +_OPERAND_FUNCTIONOPERAND.fields_by_name['matching_function'].message_type = _MATCHINGFUNCTION +_OPERAND_FUNCTIONOPERAND.containing_type = _OPERAND +_OPERAND_REQUESTCONTEXTOPERAND.fields_by_name['context_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_matching__function__context__type__pb2._MATCHINGFUNCTIONCONTEXTTYPEENUM_MATCHINGFUNCTIONCONTEXTTYPE +_OPERAND_REQUESTCONTEXTOPERAND.containing_type = _OPERAND +_OPERAND.fields_by_name['constant_operand'].message_type = _OPERAND_CONSTANTOPERAND +_OPERAND.fields_by_name['feed_attribute_operand'].message_type = _OPERAND_FEEDATTRIBUTEOPERAND +_OPERAND.fields_by_name['function_operand'].message_type = _OPERAND_FUNCTIONOPERAND +_OPERAND.fields_by_name['request_context_operand'].message_type = _OPERAND_REQUESTCONTEXTOPERAND +_OPERAND.oneofs_by_name['function_argument_operand'].fields.append( + _OPERAND.fields_by_name['constant_operand']) +_OPERAND.fields_by_name['constant_operand'].containing_oneof = _OPERAND.oneofs_by_name['function_argument_operand'] +_OPERAND.oneofs_by_name['function_argument_operand'].fields.append( + _OPERAND.fields_by_name['feed_attribute_operand']) +_OPERAND.fields_by_name['feed_attribute_operand'].containing_oneof = _OPERAND.oneofs_by_name['function_argument_operand'] +_OPERAND.oneofs_by_name['function_argument_operand'].fields.append( + _OPERAND.fields_by_name['function_operand']) +_OPERAND.fields_by_name['function_operand'].containing_oneof = _OPERAND.oneofs_by_name['function_argument_operand'] +_OPERAND.oneofs_by_name['function_argument_operand'].fields.append( + _OPERAND.fields_by_name['request_context_operand']) +_OPERAND.fields_by_name['request_context_operand'].containing_oneof = _OPERAND.oneofs_by_name['function_argument_operand'] +DESCRIPTOR.message_types_by_name['MatchingFunction'] = _MATCHINGFUNCTION +DESCRIPTOR.message_types_by_name['Operand'] = _OPERAND +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MatchingFunction = _reflection.GeneratedProtocolMessageType('MatchingFunction', (_message.Message,), { + 'DESCRIPTOR' : _MATCHINGFUNCTION, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """Matching function associated with a CustomerFeed, CampaignFeed, or + AdGroupFeed. The matching function is used to filter the set of feed + items selected. + + Attributes: + function_string: + String representation of the Function. Examples: 1. + IDENTITY(true) or IDENTITY(false). All or no feed items + served. 2. EQUALS(CONTEXT.DEVICE,"Mobile") 3. + IN(FEED\_ITEM\_ID,{1000001,1000002,1000003}) 4. + CONTAINS\_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus + cruise"}) 5. AND(IN(FEED\_ITEM\_ID,{10001,10002}),EQUALS(CONTE + XT.DEVICE,"Mobile")) For more details, visit + https://developers.google.com/adwords/api/docs/guides/feed- + matching-functions Note that because multiple strings may + represent the same underlying function (whitespace and single + versus double quotation marks, for example), the value + returned may not be identical to the string sent in a mutate + request. + operator: + Operator for a function. + left_operands: + The operands on the left hand side of the equation. This is + also the operand to be used for single operand expressions + such as NOT. + right_operands: + The operands on the right hand side of the equation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.MatchingFunction) + }) +_sym_db.RegisterMessage(MatchingFunction) + +Operand = _reflection.GeneratedProtocolMessageType('Operand', (_message.Message,), { + + 'ConstantOperand' : _reflection.GeneratedProtocolMessageType('ConstantOperand', (_message.Message,), { + 'DESCRIPTOR' : _OPERAND_CONSTANTOPERAND, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """A constant operand in a matching function. + + Attributes: + constant_operand_value: + Constant operand values. Required. + string_value: + String value of the operand if it is a string type. + long_value: + Int64 value of the operand if it is a int64 type. + boolean_value: + Boolean value of the operand if it is a boolean type. + double_value: + Double value of the operand if it is a double type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Operand.ConstantOperand) + }) + , + + 'FeedAttributeOperand' : _reflection.GeneratedProtocolMessageType('FeedAttributeOperand', (_message.Message,), { + 'DESCRIPTOR' : _OPERAND_FEEDATTRIBUTEOPERAND, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """A feed attribute operand in a matching function. Used to represent a + feed attribute in feed. + + Attributes: + feed_id: + The associated feed. Required. + feed_attribute_id: + Id of the referenced feed attribute. Required. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Operand.FeedAttributeOperand) + }) + , + + 'FunctionOperand' : _reflection.GeneratedProtocolMessageType('FunctionOperand', (_message.Message,), { + 'DESCRIPTOR' : _OPERAND_FUNCTIONOPERAND, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """A function operand in a matching function. Used to represent nested + functions. + + Attributes: + matching_function: + The matching function held in this operand. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Operand.FunctionOperand) + }) + , + + 'RequestContextOperand' : _reflection.GeneratedProtocolMessageType('RequestContextOperand', (_message.Message,), { + 'DESCRIPTOR' : _OPERAND_REQUESTCONTEXTOPERAND, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """An operand in a function referring to a value in the request context. + + Attributes: + context_type: + Type of value to be referred in the request context. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Operand.RequestContextOperand) + }) + , + 'DESCRIPTOR' : _OPERAND, + '__module__' : 'google.ads.googleads_v5.proto.common.matching_function_pb2' + , + '__doc__': """An operand in a matching function. + + Attributes: + function_argument_operand: + Different operands that can be used in a matching function. + Required. + constant_operand: + A constant operand in a matching function. + feed_attribute_operand: + This operand specifies a feed attribute in feed. + function_operand: + A function operand in a matching function. Used to represent + nested functions. + request_context_operand: + An operand in a function referring to a value in the request + context. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Operand) + }) +_sym_db.RegisterMessage(Operand) +_sym_db.RegisterMessage(Operand.ConstantOperand) +_sym_db.RegisterMessage(Operand.FeedAttributeOperand) +_sym_db.RegisterMessage(Operand.FunctionOperand) +_sym_db.RegisterMessage(Operand.RequestContextOperand) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/matching_function_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/matching_function_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/matching_function_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/metrics_pb2.py b/google/ads/google_ads/v5/proto/common/metrics_pb2.py new file mode 100644 index 000000000..312ec1b77 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/metrics_pb2.py @@ -0,0 +1,2183 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/metrics.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import interaction_event_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__event__type__pb2 +from google.ads.google_ads.v5.proto.enums import quality_score_bucket_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/metrics.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\014MetricsProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n2google/ads/googleads_v5/proto/common/metrics.proto\x12\x1egoogle.ads.googleads.v5.common\x1a@google/ads/googleads_v5/proto/enums/interaction_event_type.proto\x1a>google/ads/googleads_v5/proto/enums/quality_score_bucket.proto\x1a\x1cgoogle/api/annotations.proto\"\xf9?\n\x07Metrics\x12\x30\n\"absolute_top_impression_percentage\x18\xb7\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1d\n\x0f\x61\x63tive_view_cpm\x18\xb8\x01 \x01(\x01H\x01\x88\x01\x01\x12\x1d\n\x0f\x61\x63tive_view_ctr\x18\xb9\x01 \x01(\x01H\x02\x88\x01\x01\x12%\n\x17\x61\x63tive_view_impressions\x18\xba\x01 \x01(\x03H\x03\x88\x01\x01\x12\'\n\x19\x61\x63tive_view_measurability\x18\xbb\x01 \x01(\x01H\x04\x88\x01\x01\x12\x30\n\"active_view_measurable_cost_micros\x18\xbc\x01 \x01(\x03H\x05\x88\x01\x01\x12\x30\n\"active_view_measurable_impressions\x18\xbd\x01 \x01(\x03H\x06\x88\x01\x01\x12%\n\x17\x61\x63tive_view_viewability\x18\xbe\x01 \x01(\x01H\x07\x88\x01\x01\x12\x34\n&all_conversions_from_interactions_rate\x18\xbf\x01 \x01(\x01H\x08\x88\x01\x01\x12#\n\x15\x61ll_conversions_value\x18\xc0\x01 \x01(\x01H\t\x88\x01\x01\x12\x1d\n\x0f\x61ll_conversions\x18\xc1\x01 \x01(\x01H\n\x88\x01\x01\x12,\n\x1e\x61ll_conversions_value_per_cost\x18\xc2\x01 \x01(\x01H\x0b\x88\x01\x01\x12\x30\n\"all_conversions_from_click_to_call\x18\xc3\x01 \x01(\x01H\x0c\x88\x01\x01\x12-\n\x1f\x61ll_conversions_from_directions\x18\xc4\x01 \x01(\x01H\r\x88\x01\x01\x12\x45\n7all_conversions_from_interactions_value_per_interaction\x18\xc5\x01 \x01(\x01H\x0e\x88\x01\x01\x12\'\n\x19\x61ll_conversions_from_menu\x18\xc6\x01 \x01(\x01H\x0f\x88\x01\x01\x12(\n\x1a\x61ll_conversions_from_order\x18\xc7\x01 \x01(\x01H\x10\x88\x01\x01\x12\x33\n%all_conversions_from_other_engagement\x18\xc8\x01 \x01(\x01H\x11\x88\x01\x01\x12.\n all_conversions_from_store_visit\x18\xc9\x01 \x01(\x01H\x12\x88\x01\x01\x12\x30\n\"all_conversions_from_store_website\x18\xca\x01 \x01(\x01H\x13\x88\x01\x01\x12\x1a\n\x0c\x61verage_cost\x18\xcb\x01 \x01(\x01H\x14\x88\x01\x01\x12\x19\n\x0b\x61verage_cpc\x18\xcc\x01 \x01(\x01H\x15\x88\x01\x01\x12\x19\n\x0b\x61verage_cpe\x18\xcd\x01 \x01(\x01H\x16\x88\x01\x01\x12\x19\n\x0b\x61verage_cpm\x18\xce\x01 \x01(\x01H\x17\x88\x01\x01\x12\x19\n\x0b\x61verage_cpv\x18\xcf\x01 \x01(\x01H\x18\x88\x01\x01\x12 \n\x12\x61verage_page_views\x18\xd0\x01 \x01(\x01H\x19\x88\x01\x01\x12\"\n\x14\x61verage_time_on_site\x18\xd1\x01 \x01(\x01H\x1a\x88\x01\x01\x12\'\n\x19\x62\x65nchmark_average_max_cpc\x18\xd2\x01 \x01(\x01H\x1b\x88\x01\x01\x12\x1b\n\rbenchmark_ctr\x18\xd3\x01 \x01(\x01H\x1c\x88\x01\x01\x12\x19\n\x0b\x62ounce_rate\x18\xd4\x01 \x01(\x01H\x1d\x88\x01\x01\x12\x14\n\x06\x63licks\x18\x83\x01 \x01(\x03H\x1e\x88\x01\x01\x12\x1d\n\x0f\x63ombined_clicks\x18\x9c\x01 \x01(\x03H\x1f\x88\x01\x01\x12\'\n\x19\x63ombined_clicks_per_query\x18\x9d\x01 \x01(\x01H \x88\x01\x01\x12\x1e\n\x10\x63ombined_queries\x18\x9e\x01 \x01(\x03H!\x88\x01\x01\x12\x32\n$content_budget_lost_impression_share\x18\x9f\x01 \x01(\x01H\"\x88\x01\x01\x12&\n\x18\x63ontent_impression_share\x18\xa0\x01 \x01(\x01H#\x88\x01\x01\x12\x38\n*conversion_last_received_request_date_time\x18\xa1\x01 \x01(\tH$\x88\x01\x01\x12-\n\x1f\x63onversion_last_conversion_date\x18\xa2\x01 \x01(\tH%\x88\x01\x01\x12\x30\n\"content_rank_lost_impression_share\x18\xa3\x01 \x01(\x01H&\x88\x01\x01\x12\x30\n\"conversions_from_interactions_rate\x18\xa4\x01 \x01(\x01H\'\x88\x01\x01\x12\x1f\n\x11\x63onversions_value\x18\xa5\x01 \x01(\x01H(\x88\x01\x01\x12(\n\x1a\x63onversions_value_per_cost\x18\xa6\x01 \x01(\x01H)\x88\x01\x01\x12\x41\n3conversions_from_interactions_value_per_interaction\x18\xa7\x01 \x01(\x01H*\x88\x01\x01\x12\x19\n\x0b\x63onversions\x18\xa8\x01 \x01(\x01H+\x88\x01\x01\x12\x19\n\x0b\x63ost_micros\x18\xa9\x01 \x01(\x03H,\x88\x01\x01\x12&\n\x18\x63ost_per_all_conversions\x18\xaa\x01 \x01(\x01H-\x88\x01\x01\x12!\n\x13\x63ost_per_conversion\x18\xab\x01 \x01(\x01H.\x88\x01\x01\x12:\n,cost_per_current_model_attributed_conversion\x18\xac\x01 \x01(\x01H/\x88\x01\x01\x12&\n\x18\x63ross_device_conversions\x18\xad\x01 \x01(\x01H0\x88\x01\x01\x12\x11\n\x03\x63tr\x18\xae\x01 \x01(\x01H1\x88\x01\x01\x12\x32\n$current_model_attributed_conversions\x18\xaf\x01 \x01(\x01H2\x88\x01\x01\x12I\n;current_model_attributed_conversions_from_interactions_rate\x18\xb0\x01 \x01(\x01H3\x88\x01\x01\x12Z\nLcurrent_model_attributed_conversions_from_interactions_value_per_interaction\x18\xb1\x01 \x01(\x01H4\x88\x01\x01\x12\x38\n*current_model_attributed_conversions_value\x18\xb2\x01 \x01(\x01H5\x88\x01\x01\x12\x41\n3current_model_attributed_conversions_value_per_cost\x18\xb3\x01 \x01(\x01H6\x88\x01\x01\x12\x1d\n\x0f\x65ngagement_rate\x18\xb4\x01 \x01(\x01H7\x88\x01\x01\x12\x19\n\x0b\x65ngagements\x18\xb5\x01 \x01(\x03H8\x88\x01\x01\x12-\n\x1fhotel_average_lead_value_micros\x18\xd5\x01 \x01(\x01H9\x88\x01\x01\x12/\n!hotel_price_difference_percentage\x18\xd6\x01 \x01(\x01H:\x88\x01\x01\x12(\n\x1ahotel_eligible_impressions\x18\xd7\x01 \x01(\x03H;\x88\x01\x01\x12s\n!historical_creative_quality_score\x18P \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucket\x12w\n%historical_landing_page_quality_score\x18Q \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucket\x12&\n\x18historical_quality_score\x18\xd8\x01 \x01(\x03H<\x88\x01\x01\x12q\n\x1fhistorical_search_predicted_ctr\x18S \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucket\x12\x1c\n\x0egmail_forwards\x18\xd9\x01 \x01(\x03H=\x88\x01\x01\x12\x19\n\x0bgmail_saves\x18\xda\x01 \x01(\x03H>\x88\x01\x01\x12$\n\x16gmail_secondary_clicks\x18\xdb\x01 \x01(\x03H?\x88\x01\x01\x12*\n\x1cimpressions_from_store_reach\x18\xdc\x01 \x01(\x03H@\x88\x01\x01\x12\x19\n\x0bimpressions\x18\xdd\x01 \x01(\x03HA\x88\x01\x01\x12\x1e\n\x10interaction_rate\x18\xde\x01 \x01(\x01HB\x88\x01\x01\x12\x1a\n\x0cinteractions\x18\xdf\x01 \x01(\x03HC\x88\x01\x01\x12m\n\x17interaction_event_types\x18\x64 \x03(\x0e\x32L.google.ads.googleads.v5.enums.InteractionEventTypeEnum.InteractionEventType\x12 \n\x12invalid_click_rate\x18\xe0\x01 \x01(\x01HD\x88\x01\x01\x12\x1c\n\x0einvalid_clicks\x18\xe1\x01 \x01(\x03HE\x88\x01\x01\x12\x1b\n\rmessage_chats\x18\xe2\x01 \x01(\x03HF\x88\x01\x01\x12!\n\x13message_impressions\x18\xe3\x01 \x01(\x03HG\x88\x01\x01\x12\x1f\n\x11message_chat_rate\x18\xe4\x01 \x01(\x01HH\x88\x01\x01\x12/\n!mobile_friendly_clicks_percentage\x18\xe5\x01 \x01(\x01HI\x88\x01\x01\x12\x1c\n\x0eorganic_clicks\x18\xe6\x01 \x01(\x03HJ\x88\x01\x01\x12&\n\x18organic_clicks_per_query\x18\xe7\x01 \x01(\x01HK\x88\x01\x01\x12!\n\x13organic_impressions\x18\xe8\x01 \x01(\x03HL\x88\x01\x01\x12+\n\x1dorganic_impressions_per_query\x18\xe9\x01 \x01(\x01HM\x88\x01\x01\x12\x1d\n\x0forganic_queries\x18\xea\x01 \x01(\x03HN\x88\x01\x01\x12\"\n\x14percent_new_visitors\x18\xeb\x01 \x01(\x01HO\x88\x01\x01\x12\x19\n\x0bphone_calls\x18\xec\x01 \x01(\x03HP\x88\x01\x01\x12\x1f\n\x11phone_impressions\x18\xed\x01 \x01(\x03HQ\x88\x01\x01\x12 \n\x12phone_through_rate\x18\xee\x01 \x01(\x01HR\x88\x01\x01\x12\x1a\n\x0crelative_ctr\x18\xef\x01 \x01(\x01HS\x88\x01\x01\x12\x32\n$search_absolute_top_impression_share\x18\x88\x01 \x01(\x01HT\x88\x01\x01\x12>\n0search_budget_lost_absolute_top_impression_share\x18\x89\x01 \x01(\x01HU\x88\x01\x01\x12\x31\n#search_budget_lost_impression_share\x18\x8a\x01 \x01(\x01HV\x88\x01\x01\x12\x35\n\'search_budget_lost_top_impression_share\x18\x8b\x01 \x01(\x01HW\x88\x01\x01\x12 \n\x12search_click_share\x18\x8c\x01 \x01(\x01HX\x88\x01\x01\x12\x31\n#search_exact_match_impression_share\x18\x8d\x01 \x01(\x01HY\x88\x01\x01\x12%\n\x17search_impression_share\x18\x8e\x01 \x01(\x01HZ\x88\x01\x01\x12<\n.search_rank_lost_absolute_top_impression_share\x18\x8f\x01 \x01(\x01H[\x88\x01\x01\x12/\n!search_rank_lost_impression_share\x18\x90\x01 \x01(\x01H\\\x88\x01\x01\x12\x33\n%search_rank_lost_top_impression_share\x18\x91\x01 \x01(\x01H]\x88\x01\x01\x12)\n\x1bsearch_top_impression_share\x18\x92\x01 \x01(\x01H^\x88\x01\x01\x12\x19\n\x0bspeed_score\x18\x93\x01 \x01(\x03H_\x88\x01\x01\x12\'\n\x19top_impression_percentage\x18\x94\x01 \x01(\x01H`\x88\x01\x01\x12>\n0valid_accelerated_mobile_pages_clicks_percentage\x18\x95\x01 \x01(\x01Ha\x88\x01\x01\x12\'\n\x19value_per_all_conversions\x18\x96\x01 \x01(\x01Hb\x88\x01\x01\x12\"\n\x14value_per_conversion\x18\x97\x01 \x01(\x01Hc\x88\x01\x01\x12;\n-value_per_current_model_attributed_conversion\x18\x98\x01 \x01(\x01Hd\x88\x01\x01\x12&\n\x18video_quartile_p100_rate\x18\x84\x01 \x01(\x01He\x88\x01\x01\x12%\n\x17video_quartile_p25_rate\x18\x85\x01 \x01(\x01Hf\x88\x01\x01\x12%\n\x17video_quartile_p50_rate\x18\x86\x01 \x01(\x01Hg\x88\x01\x01\x12%\n\x17video_quartile_p75_rate\x18\x87\x01 \x01(\x01Hh\x88\x01\x01\x12\x1d\n\x0fvideo_view_rate\x18\x99\x01 \x01(\x01Hi\x88\x01\x01\x12\x19\n\x0bvideo_views\x18\x9a\x01 \x01(\x03Hj\x88\x01\x01\x12&\n\x18view_through_conversions\x18\x9b\x01 \x01(\x03Hk\x88\x01\x01\x42%\n#_absolute_top_impression_percentageB\x12\n\x10_active_view_cpmB\x12\n\x10_active_view_ctrB\x1a\n\x18_active_view_impressionsB\x1c\n\x1a_active_view_measurabilityB%\n#_active_view_measurable_cost_microsB%\n#_active_view_measurable_impressionsB\x1a\n\x18_active_view_viewabilityB)\n\'_all_conversions_from_interactions_rateB\x18\n\x16_all_conversions_valueB\x12\n\x10_all_conversionsB!\n\x1f_all_conversions_value_per_costB%\n#_all_conversions_from_click_to_callB\"\n _all_conversions_from_directionsB:\n8_all_conversions_from_interactions_value_per_interactionB\x1c\n\x1a_all_conversions_from_menuB\x1d\n\x1b_all_conversions_from_orderB(\n&_all_conversions_from_other_engagementB#\n!_all_conversions_from_store_visitB%\n#_all_conversions_from_store_websiteB\x0f\n\r_average_costB\x0e\n\x0c_average_cpcB\x0e\n\x0c_average_cpeB\x0e\n\x0c_average_cpmB\x0e\n\x0c_average_cpvB\x15\n\x13_average_page_viewsB\x17\n\x15_average_time_on_siteB\x1c\n\x1a_benchmark_average_max_cpcB\x10\n\x0e_benchmark_ctrB\x0e\n\x0c_bounce_rateB\t\n\x07_clicksB\x12\n\x10_combined_clicksB\x1c\n\x1a_combined_clicks_per_queryB\x13\n\x11_combined_queriesB\'\n%_content_budget_lost_impression_shareB\x1b\n\x19_content_impression_shareB-\n+_conversion_last_received_request_date_timeB\"\n _conversion_last_conversion_dateB%\n#_content_rank_lost_impression_shareB%\n#_conversions_from_interactions_rateB\x14\n\x12_conversions_valueB\x1d\n\x1b_conversions_value_per_costB6\n4_conversions_from_interactions_value_per_interactionB\x0e\n\x0c_conversionsB\x0e\n\x0c_cost_microsB\x1b\n\x19_cost_per_all_conversionsB\x16\n\x14_cost_per_conversionB/\n-_cost_per_current_model_attributed_conversionB\x1b\n\x19_cross_device_conversionsB\x06\n\x04_ctrB\'\n%_current_model_attributed_conversionsB>\n<_current_model_attributed_conversions_from_interactions_rateBO\nM_current_model_attributed_conversions_from_interactions_value_per_interactionB-\n+_current_model_attributed_conversions_valueB6\n4_current_model_attributed_conversions_value_per_costB\x12\n\x10_engagement_rateB\x0e\n\x0c_engagementsB\"\n _hotel_average_lead_value_microsB$\n\"_hotel_price_difference_percentageB\x1d\n\x1b_hotel_eligible_impressionsB\x1b\n\x19_historical_quality_scoreB\x11\n\x0f_gmail_forwardsB\x0e\n\x0c_gmail_savesB\x19\n\x17_gmail_secondary_clicksB\x1f\n\x1d_impressions_from_store_reachB\x0e\n\x0c_impressionsB\x13\n\x11_interaction_rateB\x0f\n\r_interactionsB\x15\n\x13_invalid_click_rateB\x11\n\x0f_invalid_clicksB\x10\n\x0e_message_chatsB\x16\n\x14_message_impressionsB\x14\n\x12_message_chat_rateB$\n\"_mobile_friendly_clicks_percentageB\x11\n\x0f_organic_clicksB\x1b\n\x19_organic_clicks_per_queryB\x16\n\x14_organic_impressionsB \n\x1e_organic_impressions_per_queryB\x12\n\x10_organic_queriesB\x17\n\x15_percent_new_visitorsB\x0e\n\x0c_phone_callsB\x14\n\x12_phone_impressionsB\x15\n\x13_phone_through_rateB\x0f\n\r_relative_ctrB\'\n%_search_absolute_top_impression_shareB3\n1_search_budget_lost_absolute_top_impression_shareB&\n$_search_budget_lost_impression_shareB*\n(_search_budget_lost_top_impression_shareB\x15\n\x13_search_click_shareB&\n$_search_exact_match_impression_shareB\x1a\n\x18_search_impression_shareB1\n/_search_rank_lost_absolute_top_impression_shareB$\n\"_search_rank_lost_impression_shareB(\n&_search_rank_lost_top_impression_shareB\x1e\n\x1c_search_top_impression_shareB\x0e\n\x0c_speed_scoreB\x1c\n\x1a_top_impression_percentageB3\n1_valid_accelerated_mobile_pages_clicks_percentageB\x1c\n\x1a_value_per_all_conversionsB\x17\n\x15_value_per_conversionB0\n._value_per_current_model_attributed_conversionB\x1b\n\x19_video_quartile_p100_rateB\x1a\n\x18_video_quartile_p25_rateB\x1a\n\x18_video_quartile_p50_rateB\x1a\n\x18_video_quartile_p75_rateB\x12\n\x10_video_view_rateB\x0e\n\x0c_video_viewsB\x1b\n\x19_view_through_conversionsB\xe7\x01\n\"com.google.ads.googleads.v5.commonB\x0cMetricsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__event__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_METRICS = _descriptor.Descriptor( + name='Metrics', + full_name='google.ads.googleads.v5.common.Metrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='absolute_top_impression_percentage', full_name='google.ads.googleads.v5.common.Metrics.absolute_top_impression_percentage', index=0, + number=183, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_cpm', full_name='google.ads.googleads.v5.common.Metrics.active_view_cpm', index=1, + number=184, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_ctr', full_name='google.ads.googleads.v5.common.Metrics.active_view_ctr', index=2, + number=185, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_impressions', full_name='google.ads.googleads.v5.common.Metrics.active_view_impressions', index=3, + number=186, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_measurability', full_name='google.ads.googleads.v5.common.Metrics.active_view_measurability', index=4, + number=187, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_measurable_cost_micros', full_name='google.ads.googleads.v5.common.Metrics.active_view_measurable_cost_micros', index=5, + number=188, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_measurable_impressions', full_name='google.ads.googleads.v5.common.Metrics.active_view_measurable_impressions', index=6, + number=189, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='active_view_viewability', full_name='google.ads.googleads.v5.common.Metrics.active_view_viewability', index=7, + number=190, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_interactions_rate', index=8, + number=191, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_value', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_value', index=9, + number=192, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions', full_name='google.ads.googleads.v5.common.Metrics.all_conversions', index=10, + number=193, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_value_per_cost', index=11, + number=194, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_click_to_call', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_click_to_call', index=12, + number=195, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_directions', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_directions', index=13, + number=196, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_interactions_value_per_interaction', index=14, + number=197, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_menu', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_menu', index=15, + number=198, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_order', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_order', index=16, + number=199, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_other_engagement', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_other_engagement', index=17, + number=200, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_store_visit', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_store_visit', index=18, + number=201, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='all_conversions_from_store_website', full_name='google.ads.googleads.v5.common.Metrics.all_conversions_from_store_website', index=19, + number=202, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cost', full_name='google.ads.googleads.v5.common.Metrics.average_cost', index=20, + number=203, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cpc', full_name='google.ads.googleads.v5.common.Metrics.average_cpc', index=21, + number=204, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cpe', full_name='google.ads.googleads.v5.common.Metrics.average_cpe', index=22, + number=205, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cpm', full_name='google.ads.googleads.v5.common.Metrics.average_cpm', index=23, + number=206, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cpv', full_name='google.ads.googleads.v5.common.Metrics.average_cpv', index=24, + number=207, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_page_views', full_name='google.ads.googleads.v5.common.Metrics.average_page_views', index=25, + number=208, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_time_on_site', full_name='google.ads.googleads.v5.common.Metrics.average_time_on_site', index=26, + number=209, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='benchmark_average_max_cpc', full_name='google.ads.googleads.v5.common.Metrics.benchmark_average_max_cpc', index=27, + number=210, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='benchmark_ctr', full_name='google.ads.googleads.v5.common.Metrics.benchmark_ctr', index=28, + number=211, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bounce_rate', full_name='google.ads.googleads.v5.common.Metrics.bounce_rate', index=29, + number=212, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.Metrics.clicks', index=30, + number=131, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='combined_clicks', full_name='google.ads.googleads.v5.common.Metrics.combined_clicks', index=31, + number=156, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='combined_clicks_per_query', full_name='google.ads.googleads.v5.common.Metrics.combined_clicks_per_query', index=32, + number=157, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='combined_queries', full_name='google.ads.googleads.v5.common.Metrics.combined_queries', index=33, + number=158, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='content_budget_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics.content_budget_lost_impression_share', index=34, + number=159, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='content_impression_share', full_name='google.ads.googleads.v5.common.Metrics.content_impression_share', index=35, + number=160, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_last_received_request_date_time', full_name='google.ads.googleads.v5.common.Metrics.conversion_last_received_request_date_time', index=36, + number=161, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_last_conversion_date', full_name='google.ads.googleads.v5.common.Metrics.conversion_last_conversion_date', index=37, + number=162, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='content_rank_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics.content_rank_lost_impression_share', index=38, + number=163, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics.conversions_from_interactions_rate', index=39, + number=164, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions_value', full_name='google.ads.googleads.v5.common.Metrics.conversions_value', index=40, + number=165, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics.conversions_value_per_cost', index=41, + number=166, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics.conversions_from_interactions_value_per_interaction', index=42, + number=167, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions', full_name='google.ads.googleads.v5.common.Metrics.conversions', index=43, + number=168, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.Metrics.cost_micros', index=44, + number=169, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_per_all_conversions', full_name='google.ads.googleads.v5.common.Metrics.cost_per_all_conversions', index=45, + number=170, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_per_conversion', full_name='google.ads.googleads.v5.common.Metrics.cost_per_conversion', index=46, + number=171, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_per_current_model_attributed_conversion', full_name='google.ads.googleads.v5.common.Metrics.cost_per_current_model_attributed_conversion', index=47, + number=172, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cross_device_conversions', full_name='google.ads.googleads.v5.common.Metrics.cross_device_conversions', index=48, + number=173, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ctr', full_name='google.ads.googleads.v5.common.Metrics.ctr', index=49, + number=174, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='current_model_attributed_conversions', full_name='google.ads.googleads.v5.common.Metrics.current_model_attributed_conversions', index=50, + number=175, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='current_model_attributed_conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics.current_model_attributed_conversions_from_interactions_rate', index=51, + number=176, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='current_model_attributed_conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics.current_model_attributed_conversions_from_interactions_value_per_interaction', index=52, + number=177, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='current_model_attributed_conversions_value', full_name='google.ads.googleads.v5.common.Metrics.current_model_attributed_conversions_value', index=53, + number=178, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='current_model_attributed_conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics.current_model_attributed_conversions_value_per_cost', index=54, + number=179, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='engagement_rate', full_name='google.ads.googleads.v5.common.Metrics.engagement_rate', index=55, + number=180, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='engagements', full_name='google.ads.googleads.v5.common.Metrics.engagements', index=56, + number=181, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_average_lead_value_micros', full_name='google.ads.googleads.v5.common.Metrics.hotel_average_lead_value_micros', index=57, + number=213, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_price_difference_percentage', full_name='google.ads.googleads.v5.common.Metrics.hotel_price_difference_percentage', index=58, + number=214, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_eligible_impressions', full_name='google.ads.googleads.v5.common.Metrics.hotel_eligible_impressions', index=59, + number=215, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='historical_creative_quality_score', full_name='google.ads.googleads.v5.common.Metrics.historical_creative_quality_score', index=60, + number=80, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='historical_landing_page_quality_score', full_name='google.ads.googleads.v5.common.Metrics.historical_landing_page_quality_score', index=61, + number=81, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='historical_quality_score', full_name='google.ads.googleads.v5.common.Metrics.historical_quality_score', index=62, + number=216, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='historical_search_predicted_ctr', full_name='google.ads.googleads.v5.common.Metrics.historical_search_predicted_ctr', index=63, + number=83, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gmail_forwards', full_name='google.ads.googleads.v5.common.Metrics.gmail_forwards', index=64, + number=217, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gmail_saves', full_name='google.ads.googleads.v5.common.Metrics.gmail_saves', index=65, + number=218, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gmail_secondary_clicks', full_name='google.ads.googleads.v5.common.Metrics.gmail_secondary_clicks', index=66, + number=219, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions_from_store_reach', full_name='google.ads.googleads.v5.common.Metrics.impressions_from_store_reach', index=67, + number=220, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.Metrics.impressions', index=68, + number=221, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='interaction_rate', full_name='google.ads.googleads.v5.common.Metrics.interaction_rate', index=69, + number=222, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='interactions', full_name='google.ads.googleads.v5.common.Metrics.interactions', index=70, + number=223, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='interaction_event_types', full_name='google.ads.googleads.v5.common.Metrics.interaction_event_types', index=71, + number=100, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='invalid_click_rate', full_name='google.ads.googleads.v5.common.Metrics.invalid_click_rate', index=72, + number=224, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='invalid_clicks', full_name='google.ads.googleads.v5.common.Metrics.invalid_clicks', index=73, + number=225, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='message_chats', full_name='google.ads.googleads.v5.common.Metrics.message_chats', index=74, + number=226, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='message_impressions', full_name='google.ads.googleads.v5.common.Metrics.message_impressions', index=75, + number=227, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='message_chat_rate', full_name='google.ads.googleads.v5.common.Metrics.message_chat_rate', index=76, + number=228, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_friendly_clicks_percentage', full_name='google.ads.googleads.v5.common.Metrics.mobile_friendly_clicks_percentage', index=77, + number=229, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='organic_clicks', full_name='google.ads.googleads.v5.common.Metrics.organic_clicks', index=78, + number=230, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='organic_clicks_per_query', full_name='google.ads.googleads.v5.common.Metrics.organic_clicks_per_query', index=79, + number=231, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='organic_impressions', full_name='google.ads.googleads.v5.common.Metrics.organic_impressions', index=80, + number=232, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='organic_impressions_per_query', full_name='google.ads.googleads.v5.common.Metrics.organic_impressions_per_query', index=81, + number=233, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='organic_queries', full_name='google.ads.googleads.v5.common.Metrics.organic_queries', index=82, + number=234, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_new_visitors', full_name='google.ads.googleads.v5.common.Metrics.percent_new_visitors', index=83, + number=235, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_calls', full_name='google.ads.googleads.v5.common.Metrics.phone_calls', index=84, + number=236, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_impressions', full_name='google.ads.googleads.v5.common.Metrics.phone_impressions', index=85, + number=237, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_through_rate', full_name='google.ads.googleads.v5.common.Metrics.phone_through_rate', index=86, + number=238, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='relative_ctr', full_name='google.ads.googleads.v5.common.Metrics.relative_ctr', index=87, + number=239, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_absolute_top_impression_share', index=88, + number=136, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_budget_lost_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_budget_lost_absolute_top_impression_share', index=89, + number=137, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_budget_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_budget_lost_impression_share', index=90, + number=138, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_budget_lost_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_budget_lost_top_impression_share', index=91, + number=139, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_click_share', full_name='google.ads.googleads.v5.common.Metrics.search_click_share', index=92, + number=140, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_exact_match_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_exact_match_impression_share', index=93, + number=141, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_impression_share', index=94, + number=142, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_rank_lost_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_rank_lost_absolute_top_impression_share', index=95, + number=143, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_rank_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_rank_lost_impression_share', index=96, + number=144, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_rank_lost_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_rank_lost_top_impression_share', index=97, + number=145, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics.search_top_impression_share', index=98, + number=146, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='speed_score', full_name='google.ads.googleads.v5.common.Metrics.speed_score', index=99, + number=147, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_impression_percentage', full_name='google.ads.googleads.v5.common.Metrics.top_impression_percentage', index=100, + number=148, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='valid_accelerated_mobile_pages_clicks_percentage', full_name='google.ads.googleads.v5.common.Metrics.valid_accelerated_mobile_pages_clicks_percentage', index=101, + number=149, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value_per_all_conversions', full_name='google.ads.googleads.v5.common.Metrics.value_per_all_conversions', index=102, + number=150, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value_per_conversion', full_name='google.ads.googleads.v5.common.Metrics.value_per_conversion', index=103, + number=151, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value_per_current_model_attributed_conversion', full_name='google.ads.googleads.v5.common.Metrics.value_per_current_model_attributed_conversion', index=104, + number=152, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_quartile_p100_rate', full_name='google.ads.googleads.v5.common.Metrics.video_quartile_p100_rate', index=105, + number=132, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_quartile_p25_rate', full_name='google.ads.googleads.v5.common.Metrics.video_quartile_p25_rate', index=106, + number=133, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_quartile_p50_rate', full_name='google.ads.googleads.v5.common.Metrics.video_quartile_p50_rate', index=107, + number=134, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_quartile_p75_rate', full_name='google.ads.googleads.v5.common.Metrics.video_quartile_p75_rate', index=108, + number=135, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_view_rate', full_name='google.ads.googleads.v5.common.Metrics.video_view_rate', index=109, + number=153, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_views', full_name='google.ads.googleads.v5.common.Metrics.video_views', index=110, + number=154, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='view_through_conversions', full_name='google.ads.googleads.v5.common.Metrics.view_through_conversions', index=111, + number=155, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_absolute_top_impression_percentage', full_name='google.ads.googleads.v5.common.Metrics._absolute_top_impression_percentage', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_cpm', full_name='google.ads.googleads.v5.common.Metrics._active_view_cpm', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_ctr', full_name='google.ads.googleads.v5.common.Metrics._active_view_ctr', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_impressions', full_name='google.ads.googleads.v5.common.Metrics._active_view_impressions', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_measurability', full_name='google.ads.googleads.v5.common.Metrics._active_view_measurability', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_measurable_cost_micros', full_name='google.ads.googleads.v5.common.Metrics._active_view_measurable_cost_micros', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_measurable_impressions', full_name='google.ads.googleads.v5.common.Metrics._active_view_measurable_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_active_view_viewability', full_name='google.ads.googleads.v5.common.Metrics._active_view_viewability', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_interactions_rate', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_value', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_value', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions', full_name='google.ads.googleads.v5.common.Metrics._all_conversions', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_value_per_cost', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_click_to_call', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_click_to_call', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_directions', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_directions', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_interactions_value_per_interaction', + index=14, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_menu', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_menu', + index=15, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_order', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_order', + index=16, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_other_engagement', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_other_engagement', + index=17, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_store_visit', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_store_visit', + index=18, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_all_conversions_from_store_website', full_name='google.ads.googleads.v5.common.Metrics._all_conversions_from_store_website', + index=19, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_cost', full_name='google.ads.googleads.v5.common.Metrics._average_cost', + index=20, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_cpc', full_name='google.ads.googleads.v5.common.Metrics._average_cpc', + index=21, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_cpe', full_name='google.ads.googleads.v5.common.Metrics._average_cpe', + index=22, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_cpm', full_name='google.ads.googleads.v5.common.Metrics._average_cpm', + index=23, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_cpv', full_name='google.ads.googleads.v5.common.Metrics._average_cpv', + index=24, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_page_views', full_name='google.ads.googleads.v5.common.Metrics._average_page_views', + index=25, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_average_time_on_site', full_name='google.ads.googleads.v5.common.Metrics._average_time_on_site', + index=26, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_benchmark_average_max_cpc', full_name='google.ads.googleads.v5.common.Metrics._benchmark_average_max_cpc', + index=27, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_benchmark_ctr', full_name='google.ads.googleads.v5.common.Metrics._benchmark_ctr', + index=28, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_bounce_rate', full_name='google.ads.googleads.v5.common.Metrics._bounce_rate', + index=29, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.Metrics._clicks', + index=30, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_combined_clicks', full_name='google.ads.googleads.v5.common.Metrics._combined_clicks', + index=31, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_combined_clicks_per_query', full_name='google.ads.googleads.v5.common.Metrics._combined_clicks_per_query', + index=32, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_combined_queries', full_name='google.ads.googleads.v5.common.Metrics._combined_queries', + index=33, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_content_budget_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics._content_budget_lost_impression_share', + index=34, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_content_impression_share', full_name='google.ads.googleads.v5.common.Metrics._content_impression_share', + index=35, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_last_received_request_date_time', full_name='google.ads.googleads.v5.common.Metrics._conversion_last_received_request_date_time', + index=36, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_last_conversion_date', full_name='google.ads.googleads.v5.common.Metrics._conversion_last_conversion_date', + index=37, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_content_rank_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics._content_rank_lost_impression_share', + index=38, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics._conversions_from_interactions_rate', + index=39, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversions_value', full_name='google.ads.googleads.v5.common.Metrics._conversions_value', + index=40, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics._conversions_value_per_cost', + index=41, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics._conversions_from_interactions_value_per_interaction', + index=42, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversions', full_name='google.ads.googleads.v5.common.Metrics._conversions', + index=43, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.Metrics._cost_micros', + index=44, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_per_all_conversions', full_name='google.ads.googleads.v5.common.Metrics._cost_per_all_conversions', + index=45, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_per_conversion', full_name='google.ads.googleads.v5.common.Metrics._cost_per_conversion', + index=46, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_per_current_model_attributed_conversion', full_name='google.ads.googleads.v5.common.Metrics._cost_per_current_model_attributed_conversion', + index=47, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cross_device_conversions', full_name='google.ads.googleads.v5.common.Metrics._cross_device_conversions', + index=48, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ctr', full_name='google.ads.googleads.v5.common.Metrics._ctr', + index=49, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_current_model_attributed_conversions', full_name='google.ads.googleads.v5.common.Metrics._current_model_attributed_conversions', + index=50, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_current_model_attributed_conversions_from_interactions_rate', full_name='google.ads.googleads.v5.common.Metrics._current_model_attributed_conversions_from_interactions_rate', + index=51, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_current_model_attributed_conversions_from_interactions_value_per_interaction', full_name='google.ads.googleads.v5.common.Metrics._current_model_attributed_conversions_from_interactions_value_per_interaction', + index=52, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_current_model_attributed_conversions_value', full_name='google.ads.googleads.v5.common.Metrics._current_model_attributed_conversions_value', + index=53, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_current_model_attributed_conversions_value_per_cost', full_name='google.ads.googleads.v5.common.Metrics._current_model_attributed_conversions_value_per_cost', + index=54, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_engagement_rate', full_name='google.ads.googleads.v5.common.Metrics._engagement_rate', + index=55, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_engagements', full_name='google.ads.googleads.v5.common.Metrics._engagements', + index=56, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_average_lead_value_micros', full_name='google.ads.googleads.v5.common.Metrics._hotel_average_lead_value_micros', + index=57, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_price_difference_percentage', full_name='google.ads.googleads.v5.common.Metrics._hotel_price_difference_percentage', + index=58, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_eligible_impressions', full_name='google.ads.googleads.v5.common.Metrics._hotel_eligible_impressions', + index=59, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_historical_quality_score', full_name='google.ads.googleads.v5.common.Metrics._historical_quality_score', + index=60, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_gmail_forwards', full_name='google.ads.googleads.v5.common.Metrics._gmail_forwards', + index=61, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_gmail_saves', full_name='google.ads.googleads.v5.common.Metrics._gmail_saves', + index=62, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_gmail_secondary_clicks', full_name='google.ads.googleads.v5.common.Metrics._gmail_secondary_clicks', + index=63, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions_from_store_reach', full_name='google.ads.googleads.v5.common.Metrics._impressions_from_store_reach', + index=64, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.Metrics._impressions', + index=65, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_interaction_rate', full_name='google.ads.googleads.v5.common.Metrics._interaction_rate', + index=66, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_interactions', full_name='google.ads.googleads.v5.common.Metrics._interactions', + index=67, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_invalid_click_rate', full_name='google.ads.googleads.v5.common.Metrics._invalid_click_rate', + index=68, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_invalid_clicks', full_name='google.ads.googleads.v5.common.Metrics._invalid_clicks', + index=69, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_message_chats', full_name='google.ads.googleads.v5.common.Metrics._message_chats', + index=70, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_message_impressions', full_name='google.ads.googleads.v5.common.Metrics._message_impressions', + index=71, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_message_chat_rate', full_name='google.ads.googleads.v5.common.Metrics._message_chat_rate', + index=72, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_mobile_friendly_clicks_percentage', full_name='google.ads.googleads.v5.common.Metrics._mobile_friendly_clicks_percentage', + index=73, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_organic_clicks', full_name='google.ads.googleads.v5.common.Metrics._organic_clicks', + index=74, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_organic_clicks_per_query', full_name='google.ads.googleads.v5.common.Metrics._organic_clicks_per_query', + index=75, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_organic_impressions', full_name='google.ads.googleads.v5.common.Metrics._organic_impressions', + index=76, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_organic_impressions_per_query', full_name='google.ads.googleads.v5.common.Metrics._organic_impressions_per_query', + index=77, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_organic_queries', full_name='google.ads.googleads.v5.common.Metrics._organic_queries', + index=78, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_percent_new_visitors', full_name='google.ads.googleads.v5.common.Metrics._percent_new_visitors', + index=79, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_calls', full_name='google.ads.googleads.v5.common.Metrics._phone_calls', + index=80, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_impressions', full_name='google.ads.googleads.v5.common.Metrics._phone_impressions', + index=81, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_through_rate', full_name='google.ads.googleads.v5.common.Metrics._phone_through_rate', + index=82, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_relative_ctr', full_name='google.ads.googleads.v5.common.Metrics._relative_ctr', + index=83, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_absolute_top_impression_share', + index=84, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_budget_lost_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_budget_lost_absolute_top_impression_share', + index=85, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_budget_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_budget_lost_impression_share', + index=86, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_budget_lost_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_budget_lost_top_impression_share', + index=87, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_click_share', full_name='google.ads.googleads.v5.common.Metrics._search_click_share', + index=88, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_exact_match_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_exact_match_impression_share', + index=89, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_impression_share', + index=90, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_rank_lost_absolute_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_rank_lost_absolute_top_impression_share', + index=91, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_rank_lost_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_rank_lost_impression_share', + index=92, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_rank_lost_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_rank_lost_top_impression_share', + index=93, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_top_impression_share', full_name='google.ads.googleads.v5.common.Metrics._search_top_impression_share', + index=94, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_speed_score', full_name='google.ads.googleads.v5.common.Metrics._speed_score', + index=95, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_impression_percentage', full_name='google.ads.googleads.v5.common.Metrics._top_impression_percentage', + index=96, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_valid_accelerated_mobile_pages_clicks_percentage', full_name='google.ads.googleads.v5.common.Metrics._valid_accelerated_mobile_pages_clicks_percentage', + index=97, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_value_per_all_conversions', full_name='google.ads.googleads.v5.common.Metrics._value_per_all_conversions', + index=98, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_value_per_conversion', full_name='google.ads.googleads.v5.common.Metrics._value_per_conversion', + index=99, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_value_per_current_model_attributed_conversion', full_name='google.ads.googleads.v5.common.Metrics._value_per_current_model_attributed_conversion', + index=100, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_quartile_p100_rate', full_name='google.ads.googleads.v5.common.Metrics._video_quartile_p100_rate', + index=101, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_quartile_p25_rate', full_name='google.ads.googleads.v5.common.Metrics._video_quartile_p25_rate', + index=102, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_quartile_p50_rate', full_name='google.ads.googleads.v5.common.Metrics._video_quartile_p50_rate', + index=103, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_quartile_p75_rate', full_name='google.ads.googleads.v5.common.Metrics._video_quartile_p75_rate', + index=104, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_view_rate', full_name='google.ads.googleads.v5.common.Metrics._video_view_rate', + index=105, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_video_views', full_name='google.ads.googleads.v5.common.Metrics._video_views', + index=106, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_view_through_conversions', full_name='google.ads.googleads.v5.common.Metrics._view_through_conversions', + index=107, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=247, + serialized_end=8432, +) + +_METRICS.fields_by_name['historical_creative_quality_score'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_METRICS.fields_by_name['historical_landing_page_quality_score'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_METRICS.fields_by_name['historical_search_predicted_ctr'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_METRICS.fields_by_name['interaction_event_types'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_interaction__event__type__pb2._INTERACTIONEVENTTYPEENUM_INTERACTIONEVENTTYPE +_METRICS.oneofs_by_name['_absolute_top_impression_percentage'].fields.append( + _METRICS.fields_by_name['absolute_top_impression_percentage']) +_METRICS.fields_by_name['absolute_top_impression_percentage'].containing_oneof = _METRICS.oneofs_by_name['_absolute_top_impression_percentage'] +_METRICS.oneofs_by_name['_active_view_cpm'].fields.append( + _METRICS.fields_by_name['active_view_cpm']) +_METRICS.fields_by_name['active_view_cpm'].containing_oneof = _METRICS.oneofs_by_name['_active_view_cpm'] +_METRICS.oneofs_by_name['_active_view_ctr'].fields.append( + _METRICS.fields_by_name['active_view_ctr']) +_METRICS.fields_by_name['active_view_ctr'].containing_oneof = _METRICS.oneofs_by_name['_active_view_ctr'] +_METRICS.oneofs_by_name['_active_view_impressions'].fields.append( + _METRICS.fields_by_name['active_view_impressions']) +_METRICS.fields_by_name['active_view_impressions'].containing_oneof = _METRICS.oneofs_by_name['_active_view_impressions'] +_METRICS.oneofs_by_name['_active_view_measurability'].fields.append( + _METRICS.fields_by_name['active_view_measurability']) +_METRICS.fields_by_name['active_view_measurability'].containing_oneof = _METRICS.oneofs_by_name['_active_view_measurability'] +_METRICS.oneofs_by_name['_active_view_measurable_cost_micros'].fields.append( + _METRICS.fields_by_name['active_view_measurable_cost_micros']) +_METRICS.fields_by_name['active_view_measurable_cost_micros'].containing_oneof = _METRICS.oneofs_by_name['_active_view_measurable_cost_micros'] +_METRICS.oneofs_by_name['_active_view_measurable_impressions'].fields.append( + _METRICS.fields_by_name['active_view_measurable_impressions']) +_METRICS.fields_by_name['active_view_measurable_impressions'].containing_oneof = _METRICS.oneofs_by_name['_active_view_measurable_impressions'] +_METRICS.oneofs_by_name['_active_view_viewability'].fields.append( + _METRICS.fields_by_name['active_view_viewability']) +_METRICS.fields_by_name['active_view_viewability'].containing_oneof = _METRICS.oneofs_by_name['_active_view_viewability'] +_METRICS.oneofs_by_name['_all_conversions_from_interactions_rate'].fields.append( + _METRICS.fields_by_name['all_conversions_from_interactions_rate']) +_METRICS.fields_by_name['all_conversions_from_interactions_rate'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_interactions_rate'] +_METRICS.oneofs_by_name['_all_conversions_value'].fields.append( + _METRICS.fields_by_name['all_conversions_value']) +_METRICS.fields_by_name['all_conversions_value'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_value'] +_METRICS.oneofs_by_name['_all_conversions'].fields.append( + _METRICS.fields_by_name['all_conversions']) +_METRICS.fields_by_name['all_conversions'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions'] +_METRICS.oneofs_by_name['_all_conversions_value_per_cost'].fields.append( + _METRICS.fields_by_name['all_conversions_value_per_cost']) +_METRICS.fields_by_name['all_conversions_value_per_cost'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_value_per_cost'] +_METRICS.oneofs_by_name['_all_conversions_from_click_to_call'].fields.append( + _METRICS.fields_by_name['all_conversions_from_click_to_call']) +_METRICS.fields_by_name['all_conversions_from_click_to_call'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_click_to_call'] +_METRICS.oneofs_by_name['_all_conversions_from_directions'].fields.append( + _METRICS.fields_by_name['all_conversions_from_directions']) +_METRICS.fields_by_name['all_conversions_from_directions'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_directions'] +_METRICS.oneofs_by_name['_all_conversions_from_interactions_value_per_interaction'].fields.append( + _METRICS.fields_by_name['all_conversions_from_interactions_value_per_interaction']) +_METRICS.fields_by_name['all_conversions_from_interactions_value_per_interaction'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_interactions_value_per_interaction'] +_METRICS.oneofs_by_name['_all_conversions_from_menu'].fields.append( + _METRICS.fields_by_name['all_conversions_from_menu']) +_METRICS.fields_by_name['all_conversions_from_menu'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_menu'] +_METRICS.oneofs_by_name['_all_conversions_from_order'].fields.append( + _METRICS.fields_by_name['all_conversions_from_order']) +_METRICS.fields_by_name['all_conversions_from_order'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_order'] +_METRICS.oneofs_by_name['_all_conversions_from_other_engagement'].fields.append( + _METRICS.fields_by_name['all_conversions_from_other_engagement']) +_METRICS.fields_by_name['all_conversions_from_other_engagement'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_other_engagement'] +_METRICS.oneofs_by_name['_all_conversions_from_store_visit'].fields.append( + _METRICS.fields_by_name['all_conversions_from_store_visit']) +_METRICS.fields_by_name['all_conversions_from_store_visit'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_store_visit'] +_METRICS.oneofs_by_name['_all_conversions_from_store_website'].fields.append( + _METRICS.fields_by_name['all_conversions_from_store_website']) +_METRICS.fields_by_name['all_conversions_from_store_website'].containing_oneof = _METRICS.oneofs_by_name['_all_conversions_from_store_website'] +_METRICS.oneofs_by_name['_average_cost'].fields.append( + _METRICS.fields_by_name['average_cost']) +_METRICS.fields_by_name['average_cost'].containing_oneof = _METRICS.oneofs_by_name['_average_cost'] +_METRICS.oneofs_by_name['_average_cpc'].fields.append( + _METRICS.fields_by_name['average_cpc']) +_METRICS.fields_by_name['average_cpc'].containing_oneof = _METRICS.oneofs_by_name['_average_cpc'] +_METRICS.oneofs_by_name['_average_cpe'].fields.append( + _METRICS.fields_by_name['average_cpe']) +_METRICS.fields_by_name['average_cpe'].containing_oneof = _METRICS.oneofs_by_name['_average_cpe'] +_METRICS.oneofs_by_name['_average_cpm'].fields.append( + _METRICS.fields_by_name['average_cpm']) +_METRICS.fields_by_name['average_cpm'].containing_oneof = _METRICS.oneofs_by_name['_average_cpm'] +_METRICS.oneofs_by_name['_average_cpv'].fields.append( + _METRICS.fields_by_name['average_cpv']) +_METRICS.fields_by_name['average_cpv'].containing_oneof = _METRICS.oneofs_by_name['_average_cpv'] +_METRICS.oneofs_by_name['_average_page_views'].fields.append( + _METRICS.fields_by_name['average_page_views']) +_METRICS.fields_by_name['average_page_views'].containing_oneof = _METRICS.oneofs_by_name['_average_page_views'] +_METRICS.oneofs_by_name['_average_time_on_site'].fields.append( + _METRICS.fields_by_name['average_time_on_site']) +_METRICS.fields_by_name['average_time_on_site'].containing_oneof = _METRICS.oneofs_by_name['_average_time_on_site'] +_METRICS.oneofs_by_name['_benchmark_average_max_cpc'].fields.append( + _METRICS.fields_by_name['benchmark_average_max_cpc']) +_METRICS.fields_by_name['benchmark_average_max_cpc'].containing_oneof = _METRICS.oneofs_by_name['_benchmark_average_max_cpc'] +_METRICS.oneofs_by_name['_benchmark_ctr'].fields.append( + _METRICS.fields_by_name['benchmark_ctr']) +_METRICS.fields_by_name['benchmark_ctr'].containing_oneof = _METRICS.oneofs_by_name['_benchmark_ctr'] +_METRICS.oneofs_by_name['_bounce_rate'].fields.append( + _METRICS.fields_by_name['bounce_rate']) +_METRICS.fields_by_name['bounce_rate'].containing_oneof = _METRICS.oneofs_by_name['_bounce_rate'] +_METRICS.oneofs_by_name['_clicks'].fields.append( + _METRICS.fields_by_name['clicks']) +_METRICS.fields_by_name['clicks'].containing_oneof = _METRICS.oneofs_by_name['_clicks'] +_METRICS.oneofs_by_name['_combined_clicks'].fields.append( + _METRICS.fields_by_name['combined_clicks']) +_METRICS.fields_by_name['combined_clicks'].containing_oneof = _METRICS.oneofs_by_name['_combined_clicks'] +_METRICS.oneofs_by_name['_combined_clicks_per_query'].fields.append( + _METRICS.fields_by_name['combined_clicks_per_query']) +_METRICS.fields_by_name['combined_clicks_per_query'].containing_oneof = _METRICS.oneofs_by_name['_combined_clicks_per_query'] +_METRICS.oneofs_by_name['_combined_queries'].fields.append( + _METRICS.fields_by_name['combined_queries']) +_METRICS.fields_by_name['combined_queries'].containing_oneof = _METRICS.oneofs_by_name['_combined_queries'] +_METRICS.oneofs_by_name['_content_budget_lost_impression_share'].fields.append( + _METRICS.fields_by_name['content_budget_lost_impression_share']) +_METRICS.fields_by_name['content_budget_lost_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_content_budget_lost_impression_share'] +_METRICS.oneofs_by_name['_content_impression_share'].fields.append( + _METRICS.fields_by_name['content_impression_share']) +_METRICS.fields_by_name['content_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_content_impression_share'] +_METRICS.oneofs_by_name['_conversion_last_received_request_date_time'].fields.append( + _METRICS.fields_by_name['conversion_last_received_request_date_time']) +_METRICS.fields_by_name['conversion_last_received_request_date_time'].containing_oneof = _METRICS.oneofs_by_name['_conversion_last_received_request_date_time'] +_METRICS.oneofs_by_name['_conversion_last_conversion_date'].fields.append( + _METRICS.fields_by_name['conversion_last_conversion_date']) +_METRICS.fields_by_name['conversion_last_conversion_date'].containing_oneof = _METRICS.oneofs_by_name['_conversion_last_conversion_date'] +_METRICS.oneofs_by_name['_content_rank_lost_impression_share'].fields.append( + _METRICS.fields_by_name['content_rank_lost_impression_share']) +_METRICS.fields_by_name['content_rank_lost_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_content_rank_lost_impression_share'] +_METRICS.oneofs_by_name['_conversions_from_interactions_rate'].fields.append( + _METRICS.fields_by_name['conversions_from_interactions_rate']) +_METRICS.fields_by_name['conversions_from_interactions_rate'].containing_oneof = _METRICS.oneofs_by_name['_conversions_from_interactions_rate'] +_METRICS.oneofs_by_name['_conversions_value'].fields.append( + _METRICS.fields_by_name['conversions_value']) +_METRICS.fields_by_name['conversions_value'].containing_oneof = _METRICS.oneofs_by_name['_conversions_value'] +_METRICS.oneofs_by_name['_conversions_value_per_cost'].fields.append( + _METRICS.fields_by_name['conversions_value_per_cost']) +_METRICS.fields_by_name['conversions_value_per_cost'].containing_oneof = _METRICS.oneofs_by_name['_conversions_value_per_cost'] +_METRICS.oneofs_by_name['_conversions_from_interactions_value_per_interaction'].fields.append( + _METRICS.fields_by_name['conversions_from_interactions_value_per_interaction']) +_METRICS.fields_by_name['conversions_from_interactions_value_per_interaction'].containing_oneof = _METRICS.oneofs_by_name['_conversions_from_interactions_value_per_interaction'] +_METRICS.oneofs_by_name['_conversions'].fields.append( + _METRICS.fields_by_name['conversions']) +_METRICS.fields_by_name['conversions'].containing_oneof = _METRICS.oneofs_by_name['_conversions'] +_METRICS.oneofs_by_name['_cost_micros'].fields.append( + _METRICS.fields_by_name['cost_micros']) +_METRICS.fields_by_name['cost_micros'].containing_oneof = _METRICS.oneofs_by_name['_cost_micros'] +_METRICS.oneofs_by_name['_cost_per_all_conversions'].fields.append( + _METRICS.fields_by_name['cost_per_all_conversions']) +_METRICS.fields_by_name['cost_per_all_conversions'].containing_oneof = _METRICS.oneofs_by_name['_cost_per_all_conversions'] +_METRICS.oneofs_by_name['_cost_per_conversion'].fields.append( + _METRICS.fields_by_name['cost_per_conversion']) +_METRICS.fields_by_name['cost_per_conversion'].containing_oneof = _METRICS.oneofs_by_name['_cost_per_conversion'] +_METRICS.oneofs_by_name['_cost_per_current_model_attributed_conversion'].fields.append( + _METRICS.fields_by_name['cost_per_current_model_attributed_conversion']) +_METRICS.fields_by_name['cost_per_current_model_attributed_conversion'].containing_oneof = _METRICS.oneofs_by_name['_cost_per_current_model_attributed_conversion'] +_METRICS.oneofs_by_name['_cross_device_conversions'].fields.append( + _METRICS.fields_by_name['cross_device_conversions']) +_METRICS.fields_by_name['cross_device_conversions'].containing_oneof = _METRICS.oneofs_by_name['_cross_device_conversions'] +_METRICS.oneofs_by_name['_ctr'].fields.append( + _METRICS.fields_by_name['ctr']) +_METRICS.fields_by_name['ctr'].containing_oneof = _METRICS.oneofs_by_name['_ctr'] +_METRICS.oneofs_by_name['_current_model_attributed_conversions'].fields.append( + _METRICS.fields_by_name['current_model_attributed_conversions']) +_METRICS.fields_by_name['current_model_attributed_conversions'].containing_oneof = _METRICS.oneofs_by_name['_current_model_attributed_conversions'] +_METRICS.oneofs_by_name['_current_model_attributed_conversions_from_interactions_rate'].fields.append( + _METRICS.fields_by_name['current_model_attributed_conversions_from_interactions_rate']) +_METRICS.fields_by_name['current_model_attributed_conversions_from_interactions_rate'].containing_oneof = _METRICS.oneofs_by_name['_current_model_attributed_conversions_from_interactions_rate'] +_METRICS.oneofs_by_name['_current_model_attributed_conversions_from_interactions_value_per_interaction'].fields.append( + _METRICS.fields_by_name['current_model_attributed_conversions_from_interactions_value_per_interaction']) +_METRICS.fields_by_name['current_model_attributed_conversions_from_interactions_value_per_interaction'].containing_oneof = _METRICS.oneofs_by_name['_current_model_attributed_conversions_from_interactions_value_per_interaction'] +_METRICS.oneofs_by_name['_current_model_attributed_conversions_value'].fields.append( + _METRICS.fields_by_name['current_model_attributed_conversions_value']) +_METRICS.fields_by_name['current_model_attributed_conversions_value'].containing_oneof = _METRICS.oneofs_by_name['_current_model_attributed_conversions_value'] +_METRICS.oneofs_by_name['_current_model_attributed_conversions_value_per_cost'].fields.append( + _METRICS.fields_by_name['current_model_attributed_conversions_value_per_cost']) +_METRICS.fields_by_name['current_model_attributed_conversions_value_per_cost'].containing_oneof = _METRICS.oneofs_by_name['_current_model_attributed_conversions_value_per_cost'] +_METRICS.oneofs_by_name['_engagement_rate'].fields.append( + _METRICS.fields_by_name['engagement_rate']) +_METRICS.fields_by_name['engagement_rate'].containing_oneof = _METRICS.oneofs_by_name['_engagement_rate'] +_METRICS.oneofs_by_name['_engagements'].fields.append( + _METRICS.fields_by_name['engagements']) +_METRICS.fields_by_name['engagements'].containing_oneof = _METRICS.oneofs_by_name['_engagements'] +_METRICS.oneofs_by_name['_hotel_average_lead_value_micros'].fields.append( + _METRICS.fields_by_name['hotel_average_lead_value_micros']) +_METRICS.fields_by_name['hotel_average_lead_value_micros'].containing_oneof = _METRICS.oneofs_by_name['_hotel_average_lead_value_micros'] +_METRICS.oneofs_by_name['_hotel_price_difference_percentage'].fields.append( + _METRICS.fields_by_name['hotel_price_difference_percentage']) +_METRICS.fields_by_name['hotel_price_difference_percentage'].containing_oneof = _METRICS.oneofs_by_name['_hotel_price_difference_percentage'] +_METRICS.oneofs_by_name['_hotel_eligible_impressions'].fields.append( + _METRICS.fields_by_name['hotel_eligible_impressions']) +_METRICS.fields_by_name['hotel_eligible_impressions'].containing_oneof = _METRICS.oneofs_by_name['_hotel_eligible_impressions'] +_METRICS.oneofs_by_name['_historical_quality_score'].fields.append( + _METRICS.fields_by_name['historical_quality_score']) +_METRICS.fields_by_name['historical_quality_score'].containing_oneof = _METRICS.oneofs_by_name['_historical_quality_score'] +_METRICS.oneofs_by_name['_gmail_forwards'].fields.append( + _METRICS.fields_by_name['gmail_forwards']) +_METRICS.fields_by_name['gmail_forwards'].containing_oneof = _METRICS.oneofs_by_name['_gmail_forwards'] +_METRICS.oneofs_by_name['_gmail_saves'].fields.append( + _METRICS.fields_by_name['gmail_saves']) +_METRICS.fields_by_name['gmail_saves'].containing_oneof = _METRICS.oneofs_by_name['_gmail_saves'] +_METRICS.oneofs_by_name['_gmail_secondary_clicks'].fields.append( + _METRICS.fields_by_name['gmail_secondary_clicks']) +_METRICS.fields_by_name['gmail_secondary_clicks'].containing_oneof = _METRICS.oneofs_by_name['_gmail_secondary_clicks'] +_METRICS.oneofs_by_name['_impressions_from_store_reach'].fields.append( + _METRICS.fields_by_name['impressions_from_store_reach']) +_METRICS.fields_by_name['impressions_from_store_reach'].containing_oneof = _METRICS.oneofs_by_name['_impressions_from_store_reach'] +_METRICS.oneofs_by_name['_impressions'].fields.append( + _METRICS.fields_by_name['impressions']) +_METRICS.fields_by_name['impressions'].containing_oneof = _METRICS.oneofs_by_name['_impressions'] +_METRICS.oneofs_by_name['_interaction_rate'].fields.append( + _METRICS.fields_by_name['interaction_rate']) +_METRICS.fields_by_name['interaction_rate'].containing_oneof = _METRICS.oneofs_by_name['_interaction_rate'] +_METRICS.oneofs_by_name['_interactions'].fields.append( + _METRICS.fields_by_name['interactions']) +_METRICS.fields_by_name['interactions'].containing_oneof = _METRICS.oneofs_by_name['_interactions'] +_METRICS.oneofs_by_name['_invalid_click_rate'].fields.append( + _METRICS.fields_by_name['invalid_click_rate']) +_METRICS.fields_by_name['invalid_click_rate'].containing_oneof = _METRICS.oneofs_by_name['_invalid_click_rate'] +_METRICS.oneofs_by_name['_invalid_clicks'].fields.append( + _METRICS.fields_by_name['invalid_clicks']) +_METRICS.fields_by_name['invalid_clicks'].containing_oneof = _METRICS.oneofs_by_name['_invalid_clicks'] +_METRICS.oneofs_by_name['_message_chats'].fields.append( + _METRICS.fields_by_name['message_chats']) +_METRICS.fields_by_name['message_chats'].containing_oneof = _METRICS.oneofs_by_name['_message_chats'] +_METRICS.oneofs_by_name['_message_impressions'].fields.append( + _METRICS.fields_by_name['message_impressions']) +_METRICS.fields_by_name['message_impressions'].containing_oneof = _METRICS.oneofs_by_name['_message_impressions'] +_METRICS.oneofs_by_name['_message_chat_rate'].fields.append( + _METRICS.fields_by_name['message_chat_rate']) +_METRICS.fields_by_name['message_chat_rate'].containing_oneof = _METRICS.oneofs_by_name['_message_chat_rate'] +_METRICS.oneofs_by_name['_mobile_friendly_clicks_percentage'].fields.append( + _METRICS.fields_by_name['mobile_friendly_clicks_percentage']) +_METRICS.fields_by_name['mobile_friendly_clicks_percentage'].containing_oneof = _METRICS.oneofs_by_name['_mobile_friendly_clicks_percentage'] +_METRICS.oneofs_by_name['_organic_clicks'].fields.append( + _METRICS.fields_by_name['organic_clicks']) +_METRICS.fields_by_name['organic_clicks'].containing_oneof = _METRICS.oneofs_by_name['_organic_clicks'] +_METRICS.oneofs_by_name['_organic_clicks_per_query'].fields.append( + _METRICS.fields_by_name['organic_clicks_per_query']) +_METRICS.fields_by_name['organic_clicks_per_query'].containing_oneof = _METRICS.oneofs_by_name['_organic_clicks_per_query'] +_METRICS.oneofs_by_name['_organic_impressions'].fields.append( + _METRICS.fields_by_name['organic_impressions']) +_METRICS.fields_by_name['organic_impressions'].containing_oneof = _METRICS.oneofs_by_name['_organic_impressions'] +_METRICS.oneofs_by_name['_organic_impressions_per_query'].fields.append( + _METRICS.fields_by_name['organic_impressions_per_query']) +_METRICS.fields_by_name['organic_impressions_per_query'].containing_oneof = _METRICS.oneofs_by_name['_organic_impressions_per_query'] +_METRICS.oneofs_by_name['_organic_queries'].fields.append( + _METRICS.fields_by_name['organic_queries']) +_METRICS.fields_by_name['organic_queries'].containing_oneof = _METRICS.oneofs_by_name['_organic_queries'] +_METRICS.oneofs_by_name['_percent_new_visitors'].fields.append( + _METRICS.fields_by_name['percent_new_visitors']) +_METRICS.fields_by_name['percent_new_visitors'].containing_oneof = _METRICS.oneofs_by_name['_percent_new_visitors'] +_METRICS.oneofs_by_name['_phone_calls'].fields.append( + _METRICS.fields_by_name['phone_calls']) +_METRICS.fields_by_name['phone_calls'].containing_oneof = _METRICS.oneofs_by_name['_phone_calls'] +_METRICS.oneofs_by_name['_phone_impressions'].fields.append( + _METRICS.fields_by_name['phone_impressions']) +_METRICS.fields_by_name['phone_impressions'].containing_oneof = _METRICS.oneofs_by_name['_phone_impressions'] +_METRICS.oneofs_by_name['_phone_through_rate'].fields.append( + _METRICS.fields_by_name['phone_through_rate']) +_METRICS.fields_by_name['phone_through_rate'].containing_oneof = _METRICS.oneofs_by_name['_phone_through_rate'] +_METRICS.oneofs_by_name['_relative_ctr'].fields.append( + _METRICS.fields_by_name['relative_ctr']) +_METRICS.fields_by_name['relative_ctr'].containing_oneof = _METRICS.oneofs_by_name['_relative_ctr'] +_METRICS.oneofs_by_name['_search_absolute_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_absolute_top_impression_share']) +_METRICS.fields_by_name['search_absolute_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_absolute_top_impression_share'] +_METRICS.oneofs_by_name['_search_budget_lost_absolute_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_budget_lost_absolute_top_impression_share']) +_METRICS.fields_by_name['search_budget_lost_absolute_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_budget_lost_absolute_top_impression_share'] +_METRICS.oneofs_by_name['_search_budget_lost_impression_share'].fields.append( + _METRICS.fields_by_name['search_budget_lost_impression_share']) +_METRICS.fields_by_name['search_budget_lost_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_budget_lost_impression_share'] +_METRICS.oneofs_by_name['_search_budget_lost_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_budget_lost_top_impression_share']) +_METRICS.fields_by_name['search_budget_lost_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_budget_lost_top_impression_share'] +_METRICS.oneofs_by_name['_search_click_share'].fields.append( + _METRICS.fields_by_name['search_click_share']) +_METRICS.fields_by_name['search_click_share'].containing_oneof = _METRICS.oneofs_by_name['_search_click_share'] +_METRICS.oneofs_by_name['_search_exact_match_impression_share'].fields.append( + _METRICS.fields_by_name['search_exact_match_impression_share']) +_METRICS.fields_by_name['search_exact_match_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_exact_match_impression_share'] +_METRICS.oneofs_by_name['_search_impression_share'].fields.append( + _METRICS.fields_by_name['search_impression_share']) +_METRICS.fields_by_name['search_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_impression_share'] +_METRICS.oneofs_by_name['_search_rank_lost_absolute_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_rank_lost_absolute_top_impression_share']) +_METRICS.fields_by_name['search_rank_lost_absolute_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_rank_lost_absolute_top_impression_share'] +_METRICS.oneofs_by_name['_search_rank_lost_impression_share'].fields.append( + _METRICS.fields_by_name['search_rank_lost_impression_share']) +_METRICS.fields_by_name['search_rank_lost_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_rank_lost_impression_share'] +_METRICS.oneofs_by_name['_search_rank_lost_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_rank_lost_top_impression_share']) +_METRICS.fields_by_name['search_rank_lost_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_rank_lost_top_impression_share'] +_METRICS.oneofs_by_name['_search_top_impression_share'].fields.append( + _METRICS.fields_by_name['search_top_impression_share']) +_METRICS.fields_by_name['search_top_impression_share'].containing_oneof = _METRICS.oneofs_by_name['_search_top_impression_share'] +_METRICS.oneofs_by_name['_speed_score'].fields.append( + _METRICS.fields_by_name['speed_score']) +_METRICS.fields_by_name['speed_score'].containing_oneof = _METRICS.oneofs_by_name['_speed_score'] +_METRICS.oneofs_by_name['_top_impression_percentage'].fields.append( + _METRICS.fields_by_name['top_impression_percentage']) +_METRICS.fields_by_name['top_impression_percentage'].containing_oneof = _METRICS.oneofs_by_name['_top_impression_percentage'] +_METRICS.oneofs_by_name['_valid_accelerated_mobile_pages_clicks_percentage'].fields.append( + _METRICS.fields_by_name['valid_accelerated_mobile_pages_clicks_percentage']) +_METRICS.fields_by_name['valid_accelerated_mobile_pages_clicks_percentage'].containing_oneof = _METRICS.oneofs_by_name['_valid_accelerated_mobile_pages_clicks_percentage'] +_METRICS.oneofs_by_name['_value_per_all_conversions'].fields.append( + _METRICS.fields_by_name['value_per_all_conversions']) +_METRICS.fields_by_name['value_per_all_conversions'].containing_oneof = _METRICS.oneofs_by_name['_value_per_all_conversions'] +_METRICS.oneofs_by_name['_value_per_conversion'].fields.append( + _METRICS.fields_by_name['value_per_conversion']) +_METRICS.fields_by_name['value_per_conversion'].containing_oneof = _METRICS.oneofs_by_name['_value_per_conversion'] +_METRICS.oneofs_by_name['_value_per_current_model_attributed_conversion'].fields.append( + _METRICS.fields_by_name['value_per_current_model_attributed_conversion']) +_METRICS.fields_by_name['value_per_current_model_attributed_conversion'].containing_oneof = _METRICS.oneofs_by_name['_value_per_current_model_attributed_conversion'] +_METRICS.oneofs_by_name['_video_quartile_p100_rate'].fields.append( + _METRICS.fields_by_name['video_quartile_p100_rate']) +_METRICS.fields_by_name['video_quartile_p100_rate'].containing_oneof = _METRICS.oneofs_by_name['_video_quartile_p100_rate'] +_METRICS.oneofs_by_name['_video_quartile_p25_rate'].fields.append( + _METRICS.fields_by_name['video_quartile_p25_rate']) +_METRICS.fields_by_name['video_quartile_p25_rate'].containing_oneof = _METRICS.oneofs_by_name['_video_quartile_p25_rate'] +_METRICS.oneofs_by_name['_video_quartile_p50_rate'].fields.append( + _METRICS.fields_by_name['video_quartile_p50_rate']) +_METRICS.fields_by_name['video_quartile_p50_rate'].containing_oneof = _METRICS.oneofs_by_name['_video_quartile_p50_rate'] +_METRICS.oneofs_by_name['_video_quartile_p75_rate'].fields.append( + _METRICS.fields_by_name['video_quartile_p75_rate']) +_METRICS.fields_by_name['video_quartile_p75_rate'].containing_oneof = _METRICS.oneofs_by_name['_video_quartile_p75_rate'] +_METRICS.oneofs_by_name['_video_view_rate'].fields.append( + _METRICS.fields_by_name['video_view_rate']) +_METRICS.fields_by_name['video_view_rate'].containing_oneof = _METRICS.oneofs_by_name['_video_view_rate'] +_METRICS.oneofs_by_name['_video_views'].fields.append( + _METRICS.fields_by_name['video_views']) +_METRICS.fields_by_name['video_views'].containing_oneof = _METRICS.oneofs_by_name['_video_views'] +_METRICS.oneofs_by_name['_view_through_conversions'].fields.append( + _METRICS.fields_by_name['view_through_conversions']) +_METRICS.fields_by_name['view_through_conversions'].containing_oneof = _METRICS.oneofs_by_name['_view_through_conversions'] +DESCRIPTOR.message_types_by_name['Metrics'] = _METRICS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Metrics = _reflection.GeneratedProtocolMessageType('Metrics', (_message.Message,), { + 'DESCRIPTOR' : _METRICS, + '__module__' : 'google.ads.googleads_v5.proto.common.metrics_pb2' + , + '__doc__': """Metrics data. + + Attributes: + absolute_top_impression_percentage: + The percent of your ad impressions that are shown as the very + first ad above the organic search results. + active_view_cpm: + Average cost of viewable impressions + (``active_view_impressions``). + active_view_ctr: + Active view measurable clicks divided by active view viewable + impressions. This metric is reported only for display network. + active_view_impressions: + A measurement of how often your ad has become viewable on a + Display Network site. + active_view_measurability: + The ratio of impressions that could be measured by Active View + over the number of served impressions. + active_view_measurable_cost_micros: + The cost of the impressions you received that were measurable + by Active View. + active_view_measurable_impressions: + The number of times your ads are appearing on placements in + positions where they can be seen. + active_view_viewability: + The percentage of time when your ad appeared on an Active View + enabled site (measurable impressions) and was viewable + (viewable impressions). + all_conversions_from_interactions_rate: + All conversions from interactions (as oppose to view through + conversions) divided by the number of ad interactions. + all_conversions_value: + The value of all conversions. + all_conversions: + The total number of conversions. This includes all conversions + regardless of the value of include\_in\_conversions\_metric. + all_conversions_value_per_cost: + The value of all conversions divided by the total cost of ad + interactions (such as clicks for text ads or views for video + ads). + all_conversions_from_click_to_call: + The number of times people clicked the "Call" button to call a + store during or after clicking an ad. This number doesn't + include whether or not calls were connected, or the duration + of any calls. This metric applies to feed items only. + all_conversions_from_directions: + The number of times people clicked a "Get directions" button + to navigate to a store after clicking an ad. This metric + applies to feed items only. + all_conversions_from_interactions_value_per_interaction: + The value of all conversions from interactions divided by the + total number of interactions. + all_conversions_from_menu: + The number of times people clicked a link to view a store's + menu after clicking an ad. This metric applies to feed items + only. + all_conversions_from_order: + The number of times people placed an order at a store after + clicking an ad. This metric applies to feed items only. + all_conversions_from_other_engagement: + The number of other conversions (for example, posting a review + or saving a location for a store) that occurred after people + clicked an ad. This metric applies to feed items only. + all_conversions_from_store_visit: + Estimated number of times people visited a store after + clicking an ad. This metric applies to feed items only. + all_conversions_from_store_website: + The number of times that people were taken to a store's URL + after clicking an ad. This metric applies to feed items only. + average_cost: + The average amount you pay per interaction. This amount is the + total cost of your ads divided by the total number of + interactions. + average_cpc: + The total cost of all clicks divided by the total number of + clicks received. + average_cpe: + The average amount that you've been charged for an ad + engagement. This amount is the total cost of all ad + engagements divided by the total number of ad engagements. + average_cpm: + Average cost-per-thousand impressions (CPM). + average_cpv: + The average amount you pay each time someone views your ad. + The average CPV is defined by the total cost of all ad views + divided by the number of views. + average_page_views: + Average number of pages viewed per session. + average_time_on_site: + Total duration of all sessions (in seconds) / number of + sessions. Imported from Google Analytics. + benchmark_average_max_cpc: + An indication of how other advertisers are bidding on similar + products. + benchmark_ctr: + An indication on how other advertisers' Shopping ads for + similar products are performing based on how often people who + see their ad click on it. + bounce_rate: + Percentage of clicks where the user only visited a single page + on your site. Imported from Google Analytics. + clicks: + The number of clicks. + combined_clicks: + The number of times your ad or your site's listing in the + unpaid results was clicked. See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + combined_clicks_per_query: + The number of times your ad or your site's listing in the + unpaid results was clicked (combined\_clicks) divided by + combined\_queries. See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + combined_queries: + The number of searches that returned pages from your site in + the unpaid results or showed one of your text ads. See the + help page at https://support.google.com/google- + ads/answer/3097241 for details. + content_budget_lost_impression_share: + The estimated percent of times that your ad was eligible to + show on the Display Network but didn't because your budget was + too low. Note: Content budget lost impression share is + reported in the range of 0 to 0.9. Any value above 0.9 is + reported as 0.9001. + content_impression_share: + The impressions you've received on the Display Network divided + by the estimated number of impressions you were eligible to + receive. Note: Content impression share is reported in the + range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + conversion_last_received_request_date_time: + The last date/time a conversion tag for this conversion action + successfully fired and was seen by Google Ads. This firing + event may not have been the result of an attributable + conversion (e.g. because the tag was fired from a browser that + did not previously click an ad from an appropriate + advertiser). The date/time is in the customer's time zone. + conversion_last_conversion_date: + The date of the most recent conversion for this conversion + action. The date is in the customer's time zone. + content_rank_lost_impression_share: + The estimated percentage of impressions on the Display Network + that your ads didn't receive due to poor Ad Rank. Note: + Content rank lost impression share is reported in the range of + 0 to 0.9. Any value above 0.9 is reported as 0.9001. + conversions_from_interactions_rate: + Conversions from interactions divided by the number of ad + interactions (such as clicks for text ads or views for video + ads). This only includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + conversions_value: + The value of conversions. This only includes conversion + actions which include\_in\_conversions\_metric attribute is + set to true. If you use conversion-based bidding, your bid + strategies will optimize for these conversions. + conversions_value_per_cost: + The value of conversions divided by the cost of ad + interactions. This only includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + conversions_from_interactions_value_per_interaction: + The value of conversions from interactions divided by the + number of ad interactions. This only includes conversion + actions which include\_in\_conversions\_metric attribute is + set to true. If you use conversion-based bidding, your bid + strategies will optimize for these conversions. + conversions: + The number of conversions. This only includes conversion + actions which include\_in\_conversions\_metric attribute is + set to true. If you use conversion-based bidding, your bid + strategies will optimize for these conversions. + cost_micros: + The sum of your cost-per-click (CPC) and cost-per-thousand + impressions (CPM) costs during this period. + cost_per_all_conversions: + The cost of ad interactions divided by all conversions. + cost_per_conversion: + The cost of ad interactions divided by conversions. This only + includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + cost_per_current_model_attributed_conversion: + The cost of ad interactions divided by current model + attributed conversions. This only includes conversion actions + which include\_in\_conversions\_metric attribute is set to + true. If you use conversion-based bidding, your bid strategies + will optimize for these conversions. + cross_device_conversions: + Conversions from when a customer clicks on a Google Ads ad on + one device, then converts on a different device or browser. + Cross-device conversions are already included in + all\_conversions. + ctr: + The number of clicks your ad receives (Clicks) divided by the + number of times your ad is shown (Impressions). + current_model_attributed_conversions: + Shows how your historic conversions data would look under the + attribution model you've currently selected. This only + includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + current_model_attributed_conversions_from_interactions_rate: + Current model attributed conversions from interactions divided + by the number of ad interactions (such as clicks for text ads + or views for video ads). This only includes conversion actions + which include\_in\_conversions\_metric attribute is set to + true. If you use conversion-based bidding, your bid strategies + will optimize for these conversions. + current_model_attributed_conversions_from_interactions_value_per_interaction: + The value of current model attributed conversions from + interactions divided by the number of ad interactions. This + only includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + current_model_attributed_conversions_value: + The value of current model attributed conversions. This only + includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + current_model_attributed_conversions_value_per_cost: + The value of current model attributed conversions divided by + the cost of ad interactions. This only includes conversion + actions which include\_in\_conversions\_metric attribute is + set to true. If you use conversion-based bidding, your bid + strategies will optimize for these conversions. + engagement_rate: + How often people engage with your ad after it's shown to them. + This is the number of ad expansions divided by the number of + times your ad is shown. + engagements: + The number of engagements. An engagement occurs when a viewer + expands your Lightbox ad. Also, in the future, other ad types + may support engagement metrics. + hotel_average_lead_value_micros: + Average lead value based on clicks. + hotel_price_difference_percentage: + The average price difference between the price offered by + reporting hotel advertiser and the cheapest price offered by + the competing advertiser. + hotel_eligible_impressions: + The number of impressions that hotel partners could have had + given their feed performance. + historical_creative_quality_score: + The creative historical quality score. + historical_landing_page_quality_score: + The quality of historical landing page experience. + historical_quality_score: + The historical quality score. + historical_search_predicted_ctr: + The historical search predicted click through rate (CTR). + gmail_forwards: + The number of times the ad was forwarded to someone else as a + message. + gmail_saves: + The number of times someone has saved your Gmail ad to their + inbox as a message. + gmail_secondary_clicks: + The number of clicks to the landing page on the expanded state + of Gmail ads. + impressions_from_store_reach: + The number of times a store's location-based ad was shown. + This metric applies to feed items only. + impressions: + Count of how often your ad has appeared on a search results + page or website on the Google Network. + interaction_rate: + How often people interact with your ad after it is shown to + them. This is the number of interactions divided by the number + of times your ad is shown. + interactions: + The number of interactions. An interaction is the main user + action associated with an ad format-clicks for text and + shopping ads, views for video ads, and so on. + interaction_event_types: + The types of payable and free interactions. + invalid_click_rate: + The percentage of clicks filtered out of your total number of + clicks (filtered + non-filtered clicks) during the reporting + period. + invalid_clicks: + Number of clicks Google considers illegitimate and doesn't + charge you for. + message_chats: + Number of message chats initiated for Click To Message + impressions that were message tracking eligible. + message_impressions: + Number of Click To Message impressions that were message + tracking eligible. + message_chat_rate: + Number of message chats initiated (message\_chats) divided by + the number of message impressions (message\_impressions). Rate + at which a user initiates a message chat from an ad impression + with a messaging option and message tracking enabled. Note + that this rate can be more than 1.0 for a given message + impression. + mobile_friendly_clicks_percentage: + The percentage of mobile clicks that go to a mobile-friendly + page. + organic_clicks: + The number of times someone clicked your site's listing in the + unpaid results for a particular query. See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + organic_clicks_per_query: + The number of times someone clicked your site's listing in the + unpaid results (organic\_clicks) divided by the total number + of searches that returned pages from your site + (organic\_queries). See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + organic_impressions: + The number of listings for your site in the unpaid search + results. See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + organic_impressions_per_query: + The number of times a page from your site was listed in the + unpaid search results (organic\_impressions) divided by the + number of searches returning your site's listing in the unpaid + results (organic\_queries). See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + organic_queries: + The total number of searches that returned your site's listing + in the unpaid results. See the help page at + https://support.google.com/google-ads/answer/3097241 for + details. + percent_new_visitors: + Percentage of first-time sessions (from people who had never + visited your site before). Imported from Google Analytics. + phone_calls: + Number of offline phone calls. + phone_impressions: + Number of offline phone impressions. + phone_through_rate: + Number of phone calls received (phone\_calls) divided by the + number of times your phone number is shown + (phone\_impressions). + relative_ctr: + Your clickthrough rate (Ctr) divided by the average + clickthrough rate of all advertisers on the websites that show + your ads. Measures how your ads perform on Display Network + sites compared to other ads on the same sites. + search_absolute_top_impression_share: + The percentage of the customer's Shopping or Search ad + impressions that are shown in the most prominent Shopping + position. See https://support.google.com/google- + ads/answer/7501826 for details. Any value below 0.1 is + reported as 0.0999. + search_budget_lost_absolute_top_impression_share: + The number estimating how often your ad wasn't the very first + ad above the organic search results due to a low budget. Note: + Search budget lost absolute top impression share is reported + in the range of 0 to 0.9. Any value above 0.9 is reported as + 0.9001. + search_budget_lost_impression_share: + The estimated percent of times that your ad was eligible to + show on the Search Network but didn't because your budget was + too low. Note: Search budget lost impression share is reported + in the range of 0 to 0.9. Any value above 0.9 is reported as + 0.9001. + search_budget_lost_top_impression_share: + The number estimating how often your ad didn't show anywhere + above the organic search results due to a low budget. Note: + Search budget lost top impression share is reported in the + range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. + search_click_share: + The number of clicks you've received on the Search Network + divided by the estimated number of clicks you were eligible to + receive. Note: Search click share is reported in the range of + 0.1 to 1. Any value below 0.1 is reported as 0.0999. + search_exact_match_impression_share: + The impressions you've received divided by the estimated + number of impressions you were eligible to receive on the + Search Network for search terms that matched your keywords + exactly (or were close variants of your keyword), regardless + of your keyword match types. Note: Search exact match + impression share is reported in the range of 0.1 to 1. Any + value below 0.1 is reported as 0.0999. + search_impression_share: + The impressions you've received on the Search Network divided + by the estimated number of impressions you were eligible to + receive. Note: Search impression share is reported in the + range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + search_rank_lost_absolute_top_impression_share: + The number estimating how often your ad wasn't the very first + ad above the organic search results due to poor Ad Rank. Note: + Search rank lost absolute top impression share is reported in + the range of 0 to 0.9. Any value above 0.9 is reported as + 0.9001. + search_rank_lost_impression_share: + The estimated percentage of impressions on the Search Network + that your ads didn't receive due to poor Ad Rank. Note: Search + rank lost impression share is reported in the range of 0 to + 0.9. Any value above 0.9 is reported as 0.9001. + search_rank_lost_top_impression_share: + The number estimating how often your ad didn't show anywhere + above the organic search results due to poor Ad Rank. Note: + Search rank lost top impression share is reported in the range + of 0 to 0.9. Any value above 0.9 is reported as 0.9001. + search_top_impression_share: + The impressions you've received in the top location (anywhere + above the organic search results) compared to the estimated + number of impressions you were eligible to receive in the top + location. Note: Search top impression share is reported in the + range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + speed_score: + A measure of how quickly your page loads after clicks on your + mobile ads. The score is a range from 1 to 10, 10 being the + fastest. + top_impression_percentage: + The percent of your ad impressions that are shown anywhere + above the organic search results. + valid_accelerated_mobile_pages_clicks_percentage: + The percentage of ad clicks to Accelerated Mobile Pages (AMP) + landing pages that reach a valid AMP page. + value_per_all_conversions: + The value of all conversions divided by the number of all + conversions. + value_per_conversion: + The value of conversions divided by the number of conversions. + This only includes conversion actions which + include\_in\_conversions\_metric attribute is set to true. If + you use conversion-based bidding, your bid strategies will + optimize for these conversions. + value_per_current_model_attributed_conversion: + The value of current model attributed conversions divided by + the number of the conversions. This only includes conversion + actions which include\_in\_conversions\_metric attribute is + set to true. If you use conversion-based bidding, your bid + strategies will optimize for these conversions. + video_quartile_p100_rate: + Percentage of impressions where the viewer watched all of your + video. + video_quartile_p25_rate: + Percentage of impressions where the viewer watched 25% of your + video. + video_quartile_p50_rate: + Percentage of impressions where the viewer watched 50% of your + video. + video_quartile_p75_rate: + Percentage of impressions where the viewer watched 75% of your + video. + video_view_rate: + The number of views your TrueView video ad receives divided by + its number of impressions, including thumbnail impressions for + TrueView in-display ads. + video_views: + The number of times your video ads were viewed. + view_through_conversions: + The total number of view-through conversions. These happen + when a customer sees an image or rich media ad, then later + completes a conversion on your site without interacting with + (e.g., clicking on) another ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Metrics) + }) +_sym_db.RegisterMessage(Metrics) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/metrics_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/metrics_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/metrics_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/offline_user_data_pb2.py b/google/ads/google_ads/v5/proto/common/offline_user_data_pb2.py new file mode 100644 index 000000000..3f98bb464 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/offline_user_data_pb2.py @@ -0,0 +1,719 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/offline_user_data.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/offline_user_data.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\024OfflineUserDataProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n.google.ads.googleads.v5.enums.AdNetworkTypeEnum.AdNetworkType\x12l\n\"budget_campaign_association_status\x18\x86\x01 \x01(\x0b\x32?.google.ads.googleads.v5.common.BudgetCampaignAssociationStatus\x12J\n\nclick_type\x18\x1a \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.ClickTypeEnum.ClickType\x12\x1e\n\x11\x63onversion_action\x18q \x01(\tH\x00\x88\x01\x01\x12x\n\x1a\x63onversion_action_category\x18\x35 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ConversionActionCategoryEnum.ConversionActionCategory\x12#\n\x16\x63onversion_action_name\x18r \x01(\tH\x01\x88\x01\x01\x12\"\n\x15\x63onversion_adjustment\x18s \x01(\x08H\x02\x88\x01\x01\x12\x8b\x01\n!conversion_attribution_event_type\x18\x02 \x01(\x0e\x32`.google.ads.googleads.v5.enums.ConversionAttributionEventTypeEnum.ConversionAttributionEventType\x12i\n\x15\x63onversion_lag_bucket\x18\x32 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ConversionLagBucketEnum.ConversionLagBucket\x12\x8f\x01\n#conversion_or_adjustment_lag_bucket\x18\x33 \x01(\x0e\x32\x62.google.ads.googleads.v5.enums.ConversionOrAdjustmentLagBucketEnum.ConversionOrAdjustmentLagBucket\x12\x11\n\x04\x64\x61te\x18O \x01(\tH\x03\x88\x01\x01\x12K\n\x0b\x64\x61y_of_week\x18\x05 \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.DayOfWeekEnum.DayOfWeek\x12@\n\x06\x64\x65vice\x18\x01 \x01(\x0e\x32\x30.google.ads.googleads.v5.enums.DeviceEnum.Device\x12x\n\x1a\x65xternal_conversion_source\x18\x37 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ExternalConversionSourceEnum.ExternalConversionSource\x12\x1f\n\x12geo_target_airport\x18t \x01(\tH\x04\x88\x01\x01\x12\x1e\n\x11geo_target_canton\x18u \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0fgeo_target_city\x18v \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x12geo_target_country\x18w \x01(\tH\x07\x88\x01\x01\x12\x1e\n\x11geo_target_county\x18x \x01(\tH\x08\x88\x01\x01\x12 \n\x13geo_target_district\x18y \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10geo_target_metro\x18z \x01(\tH\n\x88\x01\x01\x12.\n!geo_target_most_specific_location\x18{ \x01(\tH\x0b\x88\x01\x01\x12#\n\x16geo_target_postal_code\x18| \x01(\tH\x0c\x88\x01\x01\x12 \n\x13geo_target_province\x18} \x01(\tH\r\x88\x01\x01\x12\x1e\n\x11geo_target_region\x18~ \x01(\tH\x0e\x88\x01\x01\x12\x1d\n\x10geo_target_state\x18\x7f \x01(\tH\x0f\x88\x01\x01\x12\'\n\x19hotel_booking_window_days\x18\x87\x01 \x01(\x03H\x10\x88\x01\x01\x12\x1c\n\x0fhotel_center_id\x18P \x01(\x03H\x11\x88\x01\x01\x12 \n\x13hotel_check_in_date\x18Q \x01(\tH\x12\x88\x01\x01\x12Z\n\x1ahotel_check_in_day_of_week\x18\t \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.DayOfWeekEnum.DayOfWeek\x12\x17\n\nhotel_city\x18R \x01(\tH\x13\x88\x01\x01\x12\x18\n\x0bhotel_class\x18S \x01(\x05H\x14\x88\x01\x01\x12\x1a\n\rhotel_country\x18T \x01(\tH\x15\x88\x01\x01\x12s\n\x19hotel_date_selection_type\x18\r \x01(\x0e\x32P.google.ads.googleads.v5.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType\x12!\n\x14hotel_length_of_stay\x18U \x01(\x05H\x16\x88\x01\x01\x12\x1f\n\x12hotel_rate_rule_id\x18V \x01(\tH\x17\x88\x01\x01\x12W\n\x0fhotel_rate_type\x18J \x01(\x0e\x32>.google.ads.googleads.v5.enums.HotelRateTypeEnum.HotelRateType\x12`\n\x12hotel_price_bucket\x18N \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.HotelPriceBucketEnum.HotelPriceBucket\x12\x18\n\x0bhotel_state\x18W \x01(\tH\x18\x88\x01\x01\x12\x11\n\x04hour\x18X \x01(\x05H\x19\x88\x01\x01\x12*\n\x1dinteraction_on_this_extension\x18Y \x01(\x08H\x1a\x88\x01\x01\x12\x38\n\x07keyword\x18= \x01(\x0b\x32\'.google.ads.googleads.v5.common.Keyword\x12\x12\n\x05month\x18Z \x01(\tH\x1b\x88\x01\x01\x12Q\n\rmonth_of_year\x18\x12 \x01(\x0e\x32:.google.ads.googleads.v5.enums.MonthOfYearEnum.MonthOfYear\x12\x1d\n\x10partner_hotel_id\x18[ \x01(\tH\x1c\x88\x01\x01\x12\\\n\x10placeholder_type\x18\x14 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.PlaceholderTypeEnum.PlaceholderType\x12#\n\x15product_aggregator_id\x18\x84\x01 \x01(\x03H\x1d\x88\x01\x01\x12,\n\x1fproduct_bidding_category_level1\x18\\ \x01(\tH\x1e\x88\x01\x01\x12,\n\x1fproduct_bidding_category_level2\x18] \x01(\tH\x1f\x88\x01\x01\x12,\n\x1fproduct_bidding_category_level3\x18^ \x01(\tH \x88\x01\x01\x12,\n\x1fproduct_bidding_category_level4\x18_ \x01(\tH!\x88\x01\x01\x12,\n\x1fproduct_bidding_category_level5\x18` \x01(\tH\"\x88\x01\x01\x12\x1a\n\rproduct_brand\x18\x61 \x01(\tH#\x88\x01\x01\x12Y\n\x0fproduct_channel\x18\x1e \x01(\x0e\x32@.google.ads.googleads.v5.enums.ProductChannelEnum.ProductChannel\x12{\n\x1bproduct_channel_exclusivity\x18\x1f \x01(\x0e\x32V.google.ads.googleads.v5.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity\x12_\n\x11product_condition\x18 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ProductConditionEnum.ProductCondition\x12\x1c\n\x0fproduct_country\x18\x62 \x01(\tH$\x88\x01\x01\x12&\n\x19product_custom_attribute0\x18\x63 \x01(\tH%\x88\x01\x01\x12&\n\x19product_custom_attribute1\x18\x64 \x01(\tH&\x88\x01\x01\x12&\n\x19product_custom_attribute2\x18\x65 \x01(\tH\'\x88\x01\x01\x12&\n\x19product_custom_attribute3\x18\x66 \x01(\tH(\x88\x01\x01\x12&\n\x19product_custom_attribute4\x18g \x01(\tH)\x88\x01\x01\x12\x1c\n\x0fproduct_item_id\x18h \x01(\tH*\x88\x01\x01\x12\x1d\n\x10product_language\x18i \x01(\tH+\x88\x01\x01\x12!\n\x13product_merchant_id\x18\x85\x01 \x01(\x03H,\x88\x01\x01\x12\x1d\n\x10product_store_id\x18j \x01(\tH-\x88\x01\x01\x12\x1a\n\rproduct_title\x18k \x01(\tH.\x88\x01\x01\x12\x1c\n\x0fproduct_type_l1\x18l \x01(\tH/\x88\x01\x01\x12\x1c\n\x0fproduct_type_l2\x18m \x01(\tH0\x88\x01\x01\x12\x1c\n\x0fproduct_type_l3\x18n \x01(\tH1\x88\x01\x01\x12\x1c\n\x0fproduct_type_l4\x18o \x01(\tH2\x88\x01\x01\x12\x1c\n\x0fproduct_type_l5\x18p \x01(\tH3\x88\x01\x01\x12\x15\n\x07quarter\x18\x80\x01 \x01(\tH4\x88\x01\x01\x12\x83\x01\n\x1fsearch_engine_results_page_type\x18\x46 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.SearchEngineResultsPageTypeEnum.SearchEngineResultsPageType\x12j\n\x16search_term_match_type\x18\x16 \x01(\x0e\x32J.google.ads.googleads.v5.enums.SearchTermMatchTypeEnum.SearchTermMatchType\x12:\n\x04slot\x18\x17 \x01(\x0e\x32,.google.ads.googleads.v5.enums.SlotEnum.Slot\x12\x15\n\x07webpage\x18\x81\x01 \x01(\tH5\x88\x01\x01\x12\x12\n\x04week\x18\x82\x01 \x01(\tH6\x88\x01\x01\x12\x12\n\x04year\x18\x83\x01 \x01(\x05H7\x88\x01\x01\x42\x14\n\x12_conversion_actionB\x19\n\x17_conversion_action_nameB\x18\n\x16_conversion_adjustmentB\x07\n\x05_dateB\x15\n\x13_geo_target_airportB\x14\n\x12_geo_target_cantonB\x12\n\x10_geo_target_cityB\x15\n\x13_geo_target_countryB\x14\n\x12_geo_target_countyB\x16\n\x14_geo_target_districtB\x13\n\x11_geo_target_metroB$\n\"_geo_target_most_specific_locationB\x19\n\x17_geo_target_postal_codeB\x16\n\x14_geo_target_provinceB\x14\n\x12_geo_target_regionB\x13\n\x11_geo_target_stateB\x1c\n\x1a_hotel_booking_window_daysB\x12\n\x10_hotel_center_idB\x16\n\x14_hotel_check_in_dateB\r\n\x0b_hotel_cityB\x0e\n\x0c_hotel_classB\x10\n\x0e_hotel_countryB\x17\n\x15_hotel_length_of_stayB\x15\n\x13_hotel_rate_rule_idB\x0e\n\x0c_hotel_stateB\x07\n\x05_hourB \n\x1e_interaction_on_this_extensionB\x08\n\x06_monthB\x13\n\x11_partner_hotel_idB\x18\n\x16_product_aggregator_idB\"\n _product_bidding_category_level1B\"\n _product_bidding_category_level2B\"\n _product_bidding_category_level3B\"\n _product_bidding_category_level4B\"\n _product_bidding_category_level5B\x10\n\x0e_product_brandB\x12\n\x10_product_countryB\x1c\n\x1a_product_custom_attribute0B\x1c\n\x1a_product_custom_attribute1B\x1c\n\x1a_product_custom_attribute2B\x1c\n\x1a_product_custom_attribute3B\x1c\n\x1a_product_custom_attribute4B\x12\n\x10_product_item_idB\x13\n\x11_product_languageB\x16\n\x14_product_merchant_idB\x13\n\x11_product_store_idB\x10\n\x0e_product_titleB\x12\n\x10_product_type_l1B\x12\n\x10_product_type_l2B\x12\n\x10_product_type_l3B\x12\n\x10_product_type_l4B\x12\n\x10_product_type_l5B\n\n\x08_quarterB\n\n\x08_webpageB\x07\n\x05_weekB\x07\n\x05_year\"|\n\x07Keyword\x12\x1f\n\x12\x61\x64_group_criterion\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x04info\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x15\n\x13_ad_group_criterion\"\xe1\x01\n\x1f\x42udgetCampaignAssociationStatus\x12=\n\x08\x63\x61mpaign\x18\x01 \x01(\tB&\xfa\x41#\n!googleads.googleapis.com/CampaignH\x00\x88\x01\x01\x12r\n\x06status\x18\x02 \x01(\x0e\x32\x62.google.ads.googleads.v5.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatusB\x0b\n\t_campaignB\xe8\x01\n\"com.google.ads.googleads.v5.commonB\rSegmentsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__network__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_budget__campaign__association__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_click__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__category__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__attribution__event__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__lag__bucket__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__or__adjustment__lag__bucket__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_external__conversion__source__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__date__selection__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__price__bucket__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__rate__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__exclusivity__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__condition__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__engine__results__page__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__term__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_slot__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SEGMENTS = _descriptor.Descriptor( + name='Segments', + full_name='google.ads.googleads.v5.common.Segments', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_network_type', full_name='google.ads.googleads.v5.common.Segments.ad_network_type', index=0, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_campaign_association_status', full_name='google.ads.googleads.v5.common.Segments.budget_campaign_association_status', index=1, + number=134, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='click_type', full_name='google.ads.googleads.v5.common.Segments.click_type', index=2, + number=26, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.common.Segments.conversion_action', index=3, + number=113, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action_category', full_name='google.ads.googleads.v5.common.Segments.conversion_action_category', index=4, + number=53, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action_name', full_name='google.ads.googleads.v5.common.Segments.conversion_action_name', index=5, + number=114, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_adjustment', full_name='google.ads.googleads.v5.common.Segments.conversion_adjustment', index=6, + number=115, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_attribution_event_type', full_name='google.ads.googleads.v5.common.Segments.conversion_attribution_event_type', index=7, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_lag_bucket', full_name='google.ads.googleads.v5.common.Segments.conversion_lag_bucket', index=8, + number=50, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_or_adjustment_lag_bucket', full_name='google.ads.googleads.v5.common.Segments.conversion_or_adjustment_lag_bucket', index=9, + number=51, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date', full_name='google.ads.googleads.v5.common.Segments.date', index=10, + number=79, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='day_of_week', full_name='google.ads.googleads.v5.common.Segments.day_of_week', index=11, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.common.Segments.device', index=12, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='external_conversion_source', full_name='google.ads.googleads.v5.common.Segments.external_conversion_source', index=13, + number=55, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_airport', full_name='google.ads.googleads.v5.common.Segments.geo_target_airport', index=14, + number=116, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_canton', full_name='google.ads.googleads.v5.common.Segments.geo_target_canton', index=15, + number=117, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_city', full_name='google.ads.googleads.v5.common.Segments.geo_target_city', index=16, + number=118, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_country', full_name='google.ads.googleads.v5.common.Segments.geo_target_country', index=17, + number=119, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_county', full_name='google.ads.googleads.v5.common.Segments.geo_target_county', index=18, + number=120, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_district', full_name='google.ads.googleads.v5.common.Segments.geo_target_district', index=19, + number=121, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_metro', full_name='google.ads.googleads.v5.common.Segments.geo_target_metro', index=20, + number=122, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_most_specific_location', full_name='google.ads.googleads.v5.common.Segments.geo_target_most_specific_location', index=21, + number=123, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_postal_code', full_name='google.ads.googleads.v5.common.Segments.geo_target_postal_code', index=22, + number=124, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_province', full_name='google.ads.googleads.v5.common.Segments.geo_target_province', index=23, + number=125, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_region', full_name='google.ads.googleads.v5.common.Segments.geo_target_region', index=24, + number=126, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_state', full_name='google.ads.googleads.v5.common.Segments.geo_target_state', index=25, + number=127, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_booking_window_days', full_name='google.ads.googleads.v5.common.Segments.hotel_booking_window_days', index=26, + number=135, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_center_id', full_name='google.ads.googleads.v5.common.Segments.hotel_center_id', index=27, + number=80, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_check_in_date', full_name='google.ads.googleads.v5.common.Segments.hotel_check_in_date', index=28, + number=81, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_check_in_day_of_week', full_name='google.ads.googleads.v5.common.Segments.hotel_check_in_day_of_week', index=29, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_city', full_name='google.ads.googleads.v5.common.Segments.hotel_city', index=30, + number=82, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_class', full_name='google.ads.googleads.v5.common.Segments.hotel_class', index=31, + number=83, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_country', full_name='google.ads.googleads.v5.common.Segments.hotel_country', index=32, + number=84, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_date_selection_type', full_name='google.ads.googleads.v5.common.Segments.hotel_date_selection_type', index=33, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_length_of_stay', full_name='google.ads.googleads.v5.common.Segments.hotel_length_of_stay', index=34, + number=85, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_rate_rule_id', full_name='google.ads.googleads.v5.common.Segments.hotel_rate_rule_id', index=35, + number=86, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_rate_type', full_name='google.ads.googleads.v5.common.Segments.hotel_rate_type', index=36, + number=74, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_price_bucket', full_name='google.ads.googleads.v5.common.Segments.hotel_price_bucket', index=37, + number=78, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_state', full_name='google.ads.googleads.v5.common.Segments.hotel_state', index=38, + number=87, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hour', full_name='google.ads.googleads.v5.common.Segments.hour', index=39, + number=88, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='interaction_on_this_extension', full_name='google.ads.googleads.v5.common.Segments.interaction_on_this_extension', index=40, + number=89, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.common.Segments.keyword', index=41, + number=61, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='month', full_name='google.ads.googleads.v5.common.Segments.month', index=42, + number=90, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='month_of_year', full_name='google.ads.googleads.v5.common.Segments.month_of_year', index=43, + number=18, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partner_hotel_id', full_name='google.ads.googleads.v5.common.Segments.partner_hotel_id', index=44, + number=91, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placeholder_type', full_name='google.ads.googleads.v5.common.Segments.placeholder_type', index=45, + number=20, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_aggregator_id', full_name='google.ads.googleads.v5.common.Segments.product_aggregator_id', index=46, + number=132, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_level1', full_name='google.ads.googleads.v5.common.Segments.product_bidding_category_level1', index=47, + number=92, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_level2', full_name='google.ads.googleads.v5.common.Segments.product_bidding_category_level2', index=48, + number=93, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_level3', full_name='google.ads.googleads.v5.common.Segments.product_bidding_category_level3', index=49, + number=94, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_level4', full_name='google.ads.googleads.v5.common.Segments.product_bidding_category_level4', index=50, + number=95, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_level5', full_name='google.ads.googleads.v5.common.Segments.product_bidding_category_level5', index=51, + number=96, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_brand', full_name='google.ads.googleads.v5.common.Segments.product_brand', index=52, + number=97, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_channel', full_name='google.ads.googleads.v5.common.Segments.product_channel', index=53, + number=30, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_channel_exclusivity', full_name='google.ads.googleads.v5.common.Segments.product_channel_exclusivity', index=54, + number=31, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_condition', full_name='google.ads.googleads.v5.common.Segments.product_condition', index=55, + number=32, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_country', full_name='google.ads.googleads.v5.common.Segments.product_country', index=56, + number=98, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute0', full_name='google.ads.googleads.v5.common.Segments.product_custom_attribute0', index=57, + number=99, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute1', full_name='google.ads.googleads.v5.common.Segments.product_custom_attribute1', index=58, + number=100, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute2', full_name='google.ads.googleads.v5.common.Segments.product_custom_attribute2', index=59, + number=101, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute3', full_name='google.ads.googleads.v5.common.Segments.product_custom_attribute3', index=60, + number=102, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_custom_attribute4', full_name='google.ads.googleads.v5.common.Segments.product_custom_attribute4', index=61, + number=103, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_item_id', full_name='google.ads.googleads.v5.common.Segments.product_item_id', index=62, + number=104, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_language', full_name='google.ads.googleads.v5.common.Segments.product_language', index=63, + number=105, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_merchant_id', full_name='google.ads.googleads.v5.common.Segments.product_merchant_id', index=64, + number=133, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_store_id', full_name='google.ads.googleads.v5.common.Segments.product_store_id', index=65, + number=106, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_title', full_name='google.ads.googleads.v5.common.Segments.product_title', index=66, + number=107, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type_l1', full_name='google.ads.googleads.v5.common.Segments.product_type_l1', index=67, + number=108, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type_l2', full_name='google.ads.googleads.v5.common.Segments.product_type_l2', index=68, + number=109, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type_l3', full_name='google.ads.googleads.v5.common.Segments.product_type_l3', index=69, + number=110, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type_l4', full_name='google.ads.googleads.v5.common.Segments.product_type_l4', index=70, + number=111, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_type_l5', full_name='google.ads.googleads.v5.common.Segments.product_type_l5', index=71, + number=112, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quarter', full_name='google.ads.googleads.v5.common.Segments.quarter', index=72, + number=128, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_engine_results_page_type', full_name='google.ads.googleads.v5.common.Segments.search_engine_results_page_type', index=73, + number=70, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_term_match_type', full_name='google.ads.googleads.v5.common.Segments.search_term_match_type', index=74, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='slot', full_name='google.ads.googleads.v5.common.Segments.slot', index=75, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='webpage', full_name='google.ads.googleads.v5.common.Segments.webpage', index=76, + number=129, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='week', full_name='google.ads.googleads.v5.common.Segments.week', index=77, + number=130, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='year', full_name='google.ads.googleads.v5.common.Segments.year', index=78, + number=131, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.common.Segments._conversion_action', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action_name', full_name='google.ads.googleads.v5.common.Segments._conversion_action_name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_adjustment', full_name='google.ads.googleads.v5.common.Segments._conversion_adjustment', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_date', full_name='google.ads.googleads.v5.common.Segments._date', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_airport', full_name='google.ads.googleads.v5.common.Segments._geo_target_airport', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_canton', full_name='google.ads.googleads.v5.common.Segments._geo_target_canton', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_city', full_name='google.ads.googleads.v5.common.Segments._geo_target_city', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_country', full_name='google.ads.googleads.v5.common.Segments._geo_target_country', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_county', full_name='google.ads.googleads.v5.common.Segments._geo_target_county', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_district', full_name='google.ads.googleads.v5.common.Segments._geo_target_district', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_metro', full_name='google.ads.googleads.v5.common.Segments._geo_target_metro', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_most_specific_location', full_name='google.ads.googleads.v5.common.Segments._geo_target_most_specific_location', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_postal_code', full_name='google.ads.googleads.v5.common.Segments._geo_target_postal_code', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_province', full_name='google.ads.googleads.v5.common.Segments._geo_target_province', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_region', full_name='google.ads.googleads.v5.common.Segments._geo_target_region', + index=14, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_geo_target_state', full_name='google.ads.googleads.v5.common.Segments._geo_target_state', + index=15, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_booking_window_days', full_name='google.ads.googleads.v5.common.Segments._hotel_booking_window_days', + index=16, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_center_id', full_name='google.ads.googleads.v5.common.Segments._hotel_center_id', + index=17, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_check_in_date', full_name='google.ads.googleads.v5.common.Segments._hotel_check_in_date', + index=18, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_city', full_name='google.ads.googleads.v5.common.Segments._hotel_city', + index=19, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_class', full_name='google.ads.googleads.v5.common.Segments._hotel_class', + index=20, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_country', full_name='google.ads.googleads.v5.common.Segments._hotel_country', + index=21, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_length_of_stay', full_name='google.ads.googleads.v5.common.Segments._hotel_length_of_stay', + index=22, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_rate_rule_id', full_name='google.ads.googleads.v5.common.Segments._hotel_rate_rule_id', + index=23, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hotel_state', full_name='google.ads.googleads.v5.common.Segments._hotel_state', + index=24, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_hour', full_name='google.ads.googleads.v5.common.Segments._hour', + index=25, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_interaction_on_this_extension', full_name='google.ads.googleads.v5.common.Segments._interaction_on_this_extension', + index=26, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_month', full_name='google.ads.googleads.v5.common.Segments._month', + index=27, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_partner_hotel_id', full_name='google.ads.googleads.v5.common.Segments._partner_hotel_id', + index=28, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_aggregator_id', full_name='google.ads.googleads.v5.common.Segments._product_aggregator_id', + index=29, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_bidding_category_level1', full_name='google.ads.googleads.v5.common.Segments._product_bidding_category_level1', + index=30, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_bidding_category_level2', full_name='google.ads.googleads.v5.common.Segments._product_bidding_category_level2', + index=31, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_bidding_category_level3', full_name='google.ads.googleads.v5.common.Segments._product_bidding_category_level3', + index=32, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_bidding_category_level4', full_name='google.ads.googleads.v5.common.Segments._product_bidding_category_level4', + index=33, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_bidding_category_level5', full_name='google.ads.googleads.v5.common.Segments._product_bidding_category_level5', + index=34, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_brand', full_name='google.ads.googleads.v5.common.Segments._product_brand', + index=35, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_country', full_name='google.ads.googleads.v5.common.Segments._product_country', + index=36, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_custom_attribute0', full_name='google.ads.googleads.v5.common.Segments._product_custom_attribute0', + index=37, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_custom_attribute1', full_name='google.ads.googleads.v5.common.Segments._product_custom_attribute1', + index=38, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_custom_attribute2', full_name='google.ads.googleads.v5.common.Segments._product_custom_attribute2', + index=39, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_custom_attribute3', full_name='google.ads.googleads.v5.common.Segments._product_custom_attribute3', + index=40, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_custom_attribute4', full_name='google.ads.googleads.v5.common.Segments._product_custom_attribute4', + index=41, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_item_id', full_name='google.ads.googleads.v5.common.Segments._product_item_id', + index=42, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_language', full_name='google.ads.googleads.v5.common.Segments._product_language', + index=43, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_merchant_id', full_name='google.ads.googleads.v5.common.Segments._product_merchant_id', + index=44, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_store_id', full_name='google.ads.googleads.v5.common.Segments._product_store_id', + index=45, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_title', full_name='google.ads.googleads.v5.common.Segments._product_title', + index=46, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_type_l1', full_name='google.ads.googleads.v5.common.Segments._product_type_l1', + index=47, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_type_l2', full_name='google.ads.googleads.v5.common.Segments._product_type_l2', + index=48, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_type_l3', full_name='google.ads.googleads.v5.common.Segments._product_type_l3', + index=49, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_type_l4', full_name='google.ads.googleads.v5.common.Segments._product_type_l4', + index=50, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_product_type_l5', full_name='google.ads.googleads.v5.common.Segments._product_type_l5', + index=51, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_quarter', full_name='google.ads.googleads.v5.common.Segments._quarter', + index=52, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_webpage', full_name='google.ads.googleads.v5.common.Segments._webpage', + index=53, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_week', full_name='google.ads.googleads.v5.common.Segments._week', + index=54, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_year', full_name='google.ads.googleads.v5.common.Segments._year', + index=55, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1542, + serialized_end=6966, +) + + +_KEYWORD = _descriptor.Descriptor( + name='Keyword', + full_name='google.ads.googleads.v5.common.Keyword', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.common.Keyword.ad_group_criterion', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='info', full_name='google.ads.googleads.v5.common.Keyword.info', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ad_group_criterion', full_name='google.ads.googleads.v5.common.Keyword._ad_group_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6968, + serialized_end=7092, +) + + +_BUDGETCAMPAIGNASSOCIATIONSTATUS = _descriptor.Descriptor( + name='BudgetCampaignAssociationStatus', + full_name='google.ads.googleads.v5.common.BudgetCampaignAssociationStatus', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.common.BudgetCampaignAssociationStatus.campaign', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.common.BudgetCampaignAssociationStatus.status', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.common.BudgetCampaignAssociationStatus._campaign', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7095, + serialized_end=7320, +) + +_SEGMENTS.fields_by_name['ad_network_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__network__type__pb2._ADNETWORKTYPEENUM_ADNETWORKTYPE +_SEGMENTS.fields_by_name['budget_campaign_association_status'].message_type = _BUDGETCAMPAIGNASSOCIATIONSTATUS +_SEGMENTS.fields_by_name['click_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_click__type__pb2._CLICKTYPEENUM_CLICKTYPE +_SEGMENTS.fields_by_name['conversion_action_category'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__category__pb2._CONVERSIONACTIONCATEGORYENUM_CONVERSIONACTIONCATEGORY +_SEGMENTS.fields_by_name['conversion_attribution_event_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__attribution__event__type__pb2._CONVERSIONATTRIBUTIONEVENTTYPEENUM_CONVERSIONATTRIBUTIONEVENTTYPE +_SEGMENTS.fields_by_name['conversion_lag_bucket'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__lag__bucket__pb2._CONVERSIONLAGBUCKETENUM_CONVERSIONLAGBUCKET +_SEGMENTS.fields_by_name['conversion_or_adjustment_lag_bucket'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__or__adjustment__lag__bucket__pb2._CONVERSIONORADJUSTMENTLAGBUCKETENUM_CONVERSIONORADJUSTMENTLAGBUCKET +_SEGMENTS.fields_by_name['day_of_week'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2._DAYOFWEEKENUM_DAYOFWEEK +_SEGMENTS.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2._DEVICEENUM_DEVICE +_SEGMENTS.fields_by_name['external_conversion_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_external__conversion__source__pb2._EXTERNALCONVERSIONSOURCEENUM_EXTERNALCONVERSIONSOURCE +_SEGMENTS.fields_by_name['hotel_check_in_day_of_week'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_day__of__week__pb2._DAYOFWEEKENUM_DAYOFWEEK +_SEGMENTS.fields_by_name['hotel_date_selection_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__date__selection__type__pb2._HOTELDATESELECTIONTYPEENUM_HOTELDATESELECTIONTYPE +_SEGMENTS.fields_by_name['hotel_rate_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__rate__type__pb2._HOTELRATETYPEENUM_HOTELRATETYPE +_SEGMENTS.fields_by_name['hotel_price_bucket'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__price__bucket__pb2._HOTELPRICEBUCKETENUM_HOTELPRICEBUCKET +_SEGMENTS.fields_by_name['keyword'].message_type = _KEYWORD +_SEGMENTS.fields_by_name['month_of_year'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2._MONTHOFYEARENUM_MONTHOFYEAR +_SEGMENTS.fields_by_name['placeholder_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2._PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE +_SEGMENTS.fields_by_name['product_channel'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__pb2._PRODUCTCHANNELENUM_PRODUCTCHANNEL +_SEGMENTS.fields_by_name['product_channel_exclusivity'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__channel__exclusivity__pb2._PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY +_SEGMENTS.fields_by_name['product_condition'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__condition__pb2._PRODUCTCONDITIONENUM_PRODUCTCONDITION +_SEGMENTS.fields_by_name['search_engine_results_page_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__engine__results__page__type__pb2._SEARCHENGINERESULTSPAGETYPEENUM_SEARCHENGINERESULTSPAGETYPE +_SEGMENTS.fields_by_name['search_term_match_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__term__match__type__pb2._SEARCHTERMMATCHTYPEENUM_SEARCHTERMMATCHTYPE +_SEGMENTS.fields_by_name['slot'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_slot__pb2._SLOTENUM_SLOT +_SEGMENTS.oneofs_by_name['_conversion_action'].fields.append( + _SEGMENTS.fields_by_name['conversion_action']) +_SEGMENTS.fields_by_name['conversion_action'].containing_oneof = _SEGMENTS.oneofs_by_name['_conversion_action'] +_SEGMENTS.oneofs_by_name['_conversion_action_name'].fields.append( + _SEGMENTS.fields_by_name['conversion_action_name']) +_SEGMENTS.fields_by_name['conversion_action_name'].containing_oneof = _SEGMENTS.oneofs_by_name['_conversion_action_name'] +_SEGMENTS.oneofs_by_name['_conversion_adjustment'].fields.append( + _SEGMENTS.fields_by_name['conversion_adjustment']) +_SEGMENTS.fields_by_name['conversion_adjustment'].containing_oneof = _SEGMENTS.oneofs_by_name['_conversion_adjustment'] +_SEGMENTS.oneofs_by_name['_date'].fields.append( + _SEGMENTS.fields_by_name['date']) +_SEGMENTS.fields_by_name['date'].containing_oneof = _SEGMENTS.oneofs_by_name['_date'] +_SEGMENTS.oneofs_by_name['_geo_target_airport'].fields.append( + _SEGMENTS.fields_by_name['geo_target_airport']) +_SEGMENTS.fields_by_name['geo_target_airport'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_airport'] +_SEGMENTS.oneofs_by_name['_geo_target_canton'].fields.append( + _SEGMENTS.fields_by_name['geo_target_canton']) +_SEGMENTS.fields_by_name['geo_target_canton'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_canton'] +_SEGMENTS.oneofs_by_name['_geo_target_city'].fields.append( + _SEGMENTS.fields_by_name['geo_target_city']) +_SEGMENTS.fields_by_name['geo_target_city'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_city'] +_SEGMENTS.oneofs_by_name['_geo_target_country'].fields.append( + _SEGMENTS.fields_by_name['geo_target_country']) +_SEGMENTS.fields_by_name['geo_target_country'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_country'] +_SEGMENTS.oneofs_by_name['_geo_target_county'].fields.append( + _SEGMENTS.fields_by_name['geo_target_county']) +_SEGMENTS.fields_by_name['geo_target_county'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_county'] +_SEGMENTS.oneofs_by_name['_geo_target_district'].fields.append( + _SEGMENTS.fields_by_name['geo_target_district']) +_SEGMENTS.fields_by_name['geo_target_district'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_district'] +_SEGMENTS.oneofs_by_name['_geo_target_metro'].fields.append( + _SEGMENTS.fields_by_name['geo_target_metro']) +_SEGMENTS.fields_by_name['geo_target_metro'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_metro'] +_SEGMENTS.oneofs_by_name['_geo_target_most_specific_location'].fields.append( + _SEGMENTS.fields_by_name['geo_target_most_specific_location']) +_SEGMENTS.fields_by_name['geo_target_most_specific_location'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_most_specific_location'] +_SEGMENTS.oneofs_by_name['_geo_target_postal_code'].fields.append( + _SEGMENTS.fields_by_name['geo_target_postal_code']) +_SEGMENTS.fields_by_name['geo_target_postal_code'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_postal_code'] +_SEGMENTS.oneofs_by_name['_geo_target_province'].fields.append( + _SEGMENTS.fields_by_name['geo_target_province']) +_SEGMENTS.fields_by_name['geo_target_province'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_province'] +_SEGMENTS.oneofs_by_name['_geo_target_region'].fields.append( + _SEGMENTS.fields_by_name['geo_target_region']) +_SEGMENTS.fields_by_name['geo_target_region'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_region'] +_SEGMENTS.oneofs_by_name['_geo_target_state'].fields.append( + _SEGMENTS.fields_by_name['geo_target_state']) +_SEGMENTS.fields_by_name['geo_target_state'].containing_oneof = _SEGMENTS.oneofs_by_name['_geo_target_state'] +_SEGMENTS.oneofs_by_name['_hotel_booking_window_days'].fields.append( + _SEGMENTS.fields_by_name['hotel_booking_window_days']) +_SEGMENTS.fields_by_name['hotel_booking_window_days'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_booking_window_days'] +_SEGMENTS.oneofs_by_name['_hotel_center_id'].fields.append( + _SEGMENTS.fields_by_name['hotel_center_id']) +_SEGMENTS.fields_by_name['hotel_center_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_center_id'] +_SEGMENTS.oneofs_by_name['_hotel_check_in_date'].fields.append( + _SEGMENTS.fields_by_name['hotel_check_in_date']) +_SEGMENTS.fields_by_name['hotel_check_in_date'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_check_in_date'] +_SEGMENTS.oneofs_by_name['_hotel_city'].fields.append( + _SEGMENTS.fields_by_name['hotel_city']) +_SEGMENTS.fields_by_name['hotel_city'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_city'] +_SEGMENTS.oneofs_by_name['_hotel_class'].fields.append( + _SEGMENTS.fields_by_name['hotel_class']) +_SEGMENTS.fields_by_name['hotel_class'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_class'] +_SEGMENTS.oneofs_by_name['_hotel_country'].fields.append( + _SEGMENTS.fields_by_name['hotel_country']) +_SEGMENTS.fields_by_name['hotel_country'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_country'] +_SEGMENTS.oneofs_by_name['_hotel_length_of_stay'].fields.append( + _SEGMENTS.fields_by_name['hotel_length_of_stay']) +_SEGMENTS.fields_by_name['hotel_length_of_stay'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_length_of_stay'] +_SEGMENTS.oneofs_by_name['_hotel_rate_rule_id'].fields.append( + _SEGMENTS.fields_by_name['hotel_rate_rule_id']) +_SEGMENTS.fields_by_name['hotel_rate_rule_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_rate_rule_id'] +_SEGMENTS.oneofs_by_name['_hotel_state'].fields.append( + _SEGMENTS.fields_by_name['hotel_state']) +_SEGMENTS.fields_by_name['hotel_state'].containing_oneof = _SEGMENTS.oneofs_by_name['_hotel_state'] +_SEGMENTS.oneofs_by_name['_hour'].fields.append( + _SEGMENTS.fields_by_name['hour']) +_SEGMENTS.fields_by_name['hour'].containing_oneof = _SEGMENTS.oneofs_by_name['_hour'] +_SEGMENTS.oneofs_by_name['_interaction_on_this_extension'].fields.append( + _SEGMENTS.fields_by_name['interaction_on_this_extension']) +_SEGMENTS.fields_by_name['interaction_on_this_extension'].containing_oneof = _SEGMENTS.oneofs_by_name['_interaction_on_this_extension'] +_SEGMENTS.oneofs_by_name['_month'].fields.append( + _SEGMENTS.fields_by_name['month']) +_SEGMENTS.fields_by_name['month'].containing_oneof = _SEGMENTS.oneofs_by_name['_month'] +_SEGMENTS.oneofs_by_name['_partner_hotel_id'].fields.append( + _SEGMENTS.fields_by_name['partner_hotel_id']) +_SEGMENTS.fields_by_name['partner_hotel_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_partner_hotel_id'] +_SEGMENTS.oneofs_by_name['_product_aggregator_id'].fields.append( + _SEGMENTS.fields_by_name['product_aggregator_id']) +_SEGMENTS.fields_by_name['product_aggregator_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_aggregator_id'] +_SEGMENTS.oneofs_by_name['_product_bidding_category_level1'].fields.append( + _SEGMENTS.fields_by_name['product_bidding_category_level1']) +_SEGMENTS.fields_by_name['product_bidding_category_level1'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_bidding_category_level1'] +_SEGMENTS.oneofs_by_name['_product_bidding_category_level2'].fields.append( + _SEGMENTS.fields_by_name['product_bidding_category_level2']) +_SEGMENTS.fields_by_name['product_bidding_category_level2'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_bidding_category_level2'] +_SEGMENTS.oneofs_by_name['_product_bidding_category_level3'].fields.append( + _SEGMENTS.fields_by_name['product_bidding_category_level3']) +_SEGMENTS.fields_by_name['product_bidding_category_level3'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_bidding_category_level3'] +_SEGMENTS.oneofs_by_name['_product_bidding_category_level4'].fields.append( + _SEGMENTS.fields_by_name['product_bidding_category_level4']) +_SEGMENTS.fields_by_name['product_bidding_category_level4'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_bidding_category_level4'] +_SEGMENTS.oneofs_by_name['_product_bidding_category_level5'].fields.append( + _SEGMENTS.fields_by_name['product_bidding_category_level5']) +_SEGMENTS.fields_by_name['product_bidding_category_level5'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_bidding_category_level5'] +_SEGMENTS.oneofs_by_name['_product_brand'].fields.append( + _SEGMENTS.fields_by_name['product_brand']) +_SEGMENTS.fields_by_name['product_brand'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_brand'] +_SEGMENTS.oneofs_by_name['_product_country'].fields.append( + _SEGMENTS.fields_by_name['product_country']) +_SEGMENTS.fields_by_name['product_country'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_country'] +_SEGMENTS.oneofs_by_name['_product_custom_attribute0'].fields.append( + _SEGMENTS.fields_by_name['product_custom_attribute0']) +_SEGMENTS.fields_by_name['product_custom_attribute0'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_custom_attribute0'] +_SEGMENTS.oneofs_by_name['_product_custom_attribute1'].fields.append( + _SEGMENTS.fields_by_name['product_custom_attribute1']) +_SEGMENTS.fields_by_name['product_custom_attribute1'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_custom_attribute1'] +_SEGMENTS.oneofs_by_name['_product_custom_attribute2'].fields.append( + _SEGMENTS.fields_by_name['product_custom_attribute2']) +_SEGMENTS.fields_by_name['product_custom_attribute2'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_custom_attribute2'] +_SEGMENTS.oneofs_by_name['_product_custom_attribute3'].fields.append( + _SEGMENTS.fields_by_name['product_custom_attribute3']) +_SEGMENTS.fields_by_name['product_custom_attribute3'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_custom_attribute3'] +_SEGMENTS.oneofs_by_name['_product_custom_attribute4'].fields.append( + _SEGMENTS.fields_by_name['product_custom_attribute4']) +_SEGMENTS.fields_by_name['product_custom_attribute4'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_custom_attribute4'] +_SEGMENTS.oneofs_by_name['_product_item_id'].fields.append( + _SEGMENTS.fields_by_name['product_item_id']) +_SEGMENTS.fields_by_name['product_item_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_item_id'] +_SEGMENTS.oneofs_by_name['_product_language'].fields.append( + _SEGMENTS.fields_by_name['product_language']) +_SEGMENTS.fields_by_name['product_language'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_language'] +_SEGMENTS.oneofs_by_name['_product_merchant_id'].fields.append( + _SEGMENTS.fields_by_name['product_merchant_id']) +_SEGMENTS.fields_by_name['product_merchant_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_merchant_id'] +_SEGMENTS.oneofs_by_name['_product_store_id'].fields.append( + _SEGMENTS.fields_by_name['product_store_id']) +_SEGMENTS.fields_by_name['product_store_id'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_store_id'] +_SEGMENTS.oneofs_by_name['_product_title'].fields.append( + _SEGMENTS.fields_by_name['product_title']) +_SEGMENTS.fields_by_name['product_title'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_title'] +_SEGMENTS.oneofs_by_name['_product_type_l1'].fields.append( + _SEGMENTS.fields_by_name['product_type_l1']) +_SEGMENTS.fields_by_name['product_type_l1'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_type_l1'] +_SEGMENTS.oneofs_by_name['_product_type_l2'].fields.append( + _SEGMENTS.fields_by_name['product_type_l2']) +_SEGMENTS.fields_by_name['product_type_l2'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_type_l2'] +_SEGMENTS.oneofs_by_name['_product_type_l3'].fields.append( + _SEGMENTS.fields_by_name['product_type_l3']) +_SEGMENTS.fields_by_name['product_type_l3'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_type_l3'] +_SEGMENTS.oneofs_by_name['_product_type_l4'].fields.append( + _SEGMENTS.fields_by_name['product_type_l4']) +_SEGMENTS.fields_by_name['product_type_l4'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_type_l4'] +_SEGMENTS.oneofs_by_name['_product_type_l5'].fields.append( + _SEGMENTS.fields_by_name['product_type_l5']) +_SEGMENTS.fields_by_name['product_type_l5'].containing_oneof = _SEGMENTS.oneofs_by_name['_product_type_l5'] +_SEGMENTS.oneofs_by_name['_quarter'].fields.append( + _SEGMENTS.fields_by_name['quarter']) +_SEGMENTS.fields_by_name['quarter'].containing_oneof = _SEGMENTS.oneofs_by_name['_quarter'] +_SEGMENTS.oneofs_by_name['_webpage'].fields.append( + _SEGMENTS.fields_by_name['webpage']) +_SEGMENTS.fields_by_name['webpage'].containing_oneof = _SEGMENTS.oneofs_by_name['_webpage'] +_SEGMENTS.oneofs_by_name['_week'].fields.append( + _SEGMENTS.fields_by_name['week']) +_SEGMENTS.fields_by_name['week'].containing_oneof = _SEGMENTS.oneofs_by_name['_week'] +_SEGMENTS.oneofs_by_name['_year'].fields.append( + _SEGMENTS.fields_by_name['year']) +_SEGMENTS.fields_by_name['year'].containing_oneof = _SEGMENTS.oneofs_by_name['_year'] +_KEYWORD.fields_by_name['info'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_KEYWORD.oneofs_by_name['_ad_group_criterion'].fields.append( + _KEYWORD.fields_by_name['ad_group_criterion']) +_KEYWORD.fields_by_name['ad_group_criterion'].containing_oneof = _KEYWORD.oneofs_by_name['_ad_group_criterion'] +_BUDGETCAMPAIGNASSOCIATIONSTATUS.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_budget__campaign__association__status__pb2._BUDGETCAMPAIGNASSOCIATIONSTATUSENUM_BUDGETCAMPAIGNASSOCIATIONSTATUS +_BUDGETCAMPAIGNASSOCIATIONSTATUS.oneofs_by_name['_campaign'].fields.append( + _BUDGETCAMPAIGNASSOCIATIONSTATUS.fields_by_name['campaign']) +_BUDGETCAMPAIGNASSOCIATIONSTATUS.fields_by_name['campaign'].containing_oneof = _BUDGETCAMPAIGNASSOCIATIONSTATUS.oneofs_by_name['_campaign'] +DESCRIPTOR.message_types_by_name['Segments'] = _SEGMENTS +DESCRIPTOR.message_types_by_name['Keyword'] = _KEYWORD +DESCRIPTOR.message_types_by_name['BudgetCampaignAssociationStatus'] = _BUDGETCAMPAIGNASSOCIATIONSTATUS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Segments = _reflection.GeneratedProtocolMessageType('Segments', (_message.Message,), { + 'DESCRIPTOR' : _SEGMENTS, + '__module__' : 'google.ads.googleads_v5.proto.common.segments_pb2' + , + '__doc__': """Segment only fields. + + Attributes: + ad_network_type: + Ad network type. + budget_campaign_association_status: + Budget campaign association status. + click_type: + Click type. + conversion_action: + Resource name of the conversion action. + conversion_action_category: + Conversion action category. + conversion_action_name: + Conversion action name. + conversion_adjustment: + This segments your conversion columns by the original + conversion and conversion value vs. the delta if conversions + were adjusted. False row has the data as originally stated; + While true row has the delta between data now and the data as + originally stated. Summing the two together results post- + adjustment data. + conversion_attribution_event_type: + Conversion attribution event type. + conversion_lag_bucket: + An enum value representing the number of days between the + impression and the conversion. + conversion_or_adjustment_lag_bucket: + An enum value representing the number of days between the + impression and the conversion or between the impression and + adjustments to the conversion. + date: + Date to which metrics apply. yyyy-MM-dd format, e.g., + 2018-04-17. + day_of_week: + Day of the week, e.g., MONDAY. + device: + Device to which metrics apply. + external_conversion_source: + External conversion source. + geo_target_airport: + Resource name of the geo target constant that represents an + airport. + geo_target_canton: + Resource name of the geo target constant that represents a + canton. + geo_target_city: + Resource name of the geo target constant that represents a + city. + geo_target_country: + Resource name of the geo target constant that represents a + country. + geo_target_county: + Resource name of the geo target constant that represents a + county. + geo_target_district: + Resource name of the geo target constant that represents a + district. + geo_target_metro: + Resource name of the geo target constant that represents a + metro. + geo_target_most_specific_location: + Resource name of the geo target constant that represents the + most specific location. + geo_target_postal_code: + Resource name of the geo target constant that represents a + postal code. + geo_target_province: + Resource name of the geo target constant that represents a + province. + geo_target_region: + Resource name of the geo target constant that represents a + region. + geo_target_state: + Resource name of the geo target constant that represents a + state. + hotel_booking_window_days: + Hotel booking window in days. + hotel_center_id: + Hotel center ID. + hotel_check_in_date: + Hotel check-in date. Formatted as yyyy-MM-dd. + hotel_check_in_day_of_week: + Hotel check-in day of week. + hotel_city: + Hotel city. + hotel_class: + Hotel class. + hotel_country: + Hotel country. + hotel_date_selection_type: + Hotel date selection type. + hotel_length_of_stay: + Hotel length of stay. + hotel_rate_rule_id: + Hotel rate rule ID. + hotel_rate_type: + Hotel rate type. + hotel_price_bucket: + Hotel price bucket. + hotel_state: + Hotel state. + hour: + Hour of day as a number between 0 and 23, inclusive. + interaction_on_this_extension: + Only used with feed item metrics. Indicates whether the + interaction metrics occurred on the feed item itself or a + different extension or ad unit. + keyword: + Keyword criterion. + month: + Month as represented by the date of the first day of a month. + Formatted as yyyy-MM-dd. + month_of_year: + Month of the year, e.g., January. + partner_hotel_id: + Partner hotel ID. + placeholder_type: + Placeholder type. This is only used with feed item metrics. + product_aggregator_id: + Aggregator ID of the product. + product_bidding_category_level1: + Bidding category (level 1) of the product. + product_bidding_category_level2: + Bidding category (level 2) of the product. + product_bidding_category_level3: + Bidding category (level 3) of the product. + product_bidding_category_level4: + Bidding category (level 4) of the product. + product_bidding_category_level5: + Bidding category (level 5) of the product. + product_brand: + Brand of the product. + product_channel: + Channel of the product. + product_channel_exclusivity: + Channel exclusivity of the product. + product_condition: + Condition of the product. + product_country: + Resource name of the geo target constant for the country of + sale of the product. + product_custom_attribute0: + Custom attribute 0 of the product. + product_custom_attribute1: + Custom attribute 1 of the product. + product_custom_attribute2: + Custom attribute 2 of the product. + product_custom_attribute3: + Custom attribute 3 of the product. + product_custom_attribute4: + Custom attribute 4 of the product. + product_item_id: + Item ID of the product. + product_language: + Resource name of the language constant for the language of the + product. + product_merchant_id: + Merchant ID of the product. + product_store_id: + Store ID of the product. + product_title: + Title of the product. + product_type_l1: + Type (level 1) of the product. + product_type_l2: + Type (level 2) of the product. + product_type_l3: + Type (level 3) of the product. + product_type_l4: + Type (level 4) of the product. + product_type_l5: + Type (level 5) of the product. + quarter: + Quarter as represented by the date of the first day of a + quarter. Uses the calendar year for quarters, e.g., the second + quarter of 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd. + search_engine_results_page_type: + Type of the search engine results page. + search_term_match_type: + Match type of the keyword that triggered the ad, including + variants. + slot: + Position of the ad. + webpage: + Resource name of the ad group criterion that represents + webpage criterion. + week: + Week as defined as Monday through Sunday, and represented by + the date of Monday. Formatted as yyyy-MM-dd. + year: + Year, formatted as yyyy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Segments) + }) +_sym_db.RegisterMessage(Segments) + +Keyword = _reflection.GeneratedProtocolMessageType('Keyword', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORD, + '__module__' : 'google.ads.googleads_v5.proto.common.segments_pb2' + , + '__doc__': """A Keyword criterion segment. + + Attributes: + ad_group_criterion: + The AdGroupCriterion resource name. + info: + Keyword info. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Keyword) + }) +_sym_db.RegisterMessage(Keyword) + +BudgetCampaignAssociationStatus = _reflection.GeneratedProtocolMessageType('BudgetCampaignAssociationStatus', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETCAMPAIGNASSOCIATIONSTATUS, + '__module__' : 'google.ads.googleads_v5.proto.common.segments_pb2' + , + '__doc__': """A BudgetCampaignAssociationStatus segment. + + Attributes: + campaign: + The campaign resource name. + status: + Budget campaign association status. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.BudgetCampaignAssociationStatus) + }) +_sym_db.RegisterMessage(BudgetCampaignAssociationStatus) + + +DESCRIPTOR._options = None +_BUDGETCAMPAIGNASSOCIATIONSTATUS.fields_by_name['campaign']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/segments_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/segments_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/segments_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/simulation_pb2.py b/google/ads/google_ads/v5/proto/common/simulation_pb2.py new file mode 100644 index 000000000..660f567b4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/simulation_pb2.py @@ -0,0 +1,1355 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/simulation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/simulation.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\017SimulationProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/common/simulation.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1cgoogle/api/annotations.proto\"l\n\x1e\x42idModifierSimulationPointList\x12J\n\x06points\x18\x01 \x03(\x0b\x32:.google.ads.googleads.v5.common.BidModifierSimulationPoint\"b\n\x19\x43pcBidSimulationPointList\x12\x45\n\x06points\x18\x01 \x03(\x0b\x32\x35.google.ads.googleads.v5.common.CpcBidSimulationPoint\"b\n\x19\x43pvBidSimulationPointList\x12\x45\n\x06points\x18\x01 \x03(\x0b\x32\x35.google.ads.googleads.v5.common.CpvBidSimulationPoint\"h\n\x1cTargetCpaSimulationPointList\x12H\n\x06points\x18\x01 \x03(\x0b\x32\x38.google.ads.googleads.v5.common.TargetCpaSimulationPoint\"j\n\x1dTargetRoasSimulationPointList\x12I\n\x06points\x18\x01 \x03(\x0b\x32\x39.google.ads.googleads.v5.common.TargetRoasSimulationPoint\"p\n PercentCpcBidSimulationPointList\x12L\n\x06points\x18\x01 \x03(\x0b\x32<.google.ads.googleads.v5.common.PercentCpcBidSimulationPoint\"\xd2\x06\n\x1a\x42idModifierSimulationPoint\x12\x19\n\x0c\x62id_modifier\x18\x0f \x01(\x01H\x00\x88\x01\x01\x12!\n\x14\x62iddable_conversions\x18\x10 \x01(\x01H\x01\x88\x01\x01\x12\'\n\x1a\x62iddable_conversions_value\x18\x11 \x01(\x01H\x02\x88\x01\x01\x12\x13\n\x06\x63licks\x18\x12 \x01(\x03H\x03\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x13 \x01(\x03H\x04\x88\x01\x01\x12\x18\n\x0bimpressions\x18\x14 \x01(\x03H\x05\x88\x01\x01\x12!\n\x14top_slot_impressions\x18\x15 \x01(\x03H\x06\x88\x01\x01\x12(\n\x1bparent_biddable_conversions\x18\x16 \x01(\x01H\x07\x88\x01\x01\x12.\n!parent_biddable_conversions_value\x18\x17 \x01(\x01H\x08\x88\x01\x01\x12\x1a\n\rparent_clicks\x18\x18 \x01(\x03H\t\x88\x01\x01\x12\x1f\n\x12parent_cost_micros\x18\x19 \x01(\x03H\n\x88\x01\x01\x12\x1f\n\x12parent_impressions\x18\x1a \x01(\x03H\x0b\x88\x01\x01\x12(\n\x1bparent_top_slot_impressions\x18\x1b \x01(\x03H\x0c\x88\x01\x01\x12*\n\x1dparent_required_budget_micros\x18\x1c \x01(\x03H\r\x88\x01\x01\x42\x0f\n\r_bid_modifierB\x17\n\x15_biddable_conversionsB\x1d\n\x1b_biddable_conversions_valueB\t\n\x07_clicksB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x17\n\x15_top_slot_impressionsB\x1e\n\x1c_parent_biddable_conversionsB$\n\"_parent_biddable_conversions_valueB\x10\n\x0e_parent_clicksB\x15\n\x13_parent_cost_microsB\x15\n\x13_parent_impressionsB\x1e\n\x1c_parent_top_slot_impressionsB \n\x1e_parent_required_budget_micros\"\xfb\x02\n\x15\x43pcBidSimulationPoint\x12\x1b\n\x0e\x63pc_bid_micros\x18\x08 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x62iddable_conversions\x18\t \x01(\x01H\x01\x88\x01\x01\x12\'\n\x1a\x62iddable_conversions_value\x18\n \x01(\x01H\x02\x88\x01\x01\x12\x13\n\x06\x63licks\x18\x0b \x01(\x03H\x03\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x0c \x01(\x03H\x04\x88\x01\x01\x12\x18\n\x0bimpressions\x18\r \x01(\x03H\x05\x88\x01\x01\x12!\n\x14top_slot_impressions\x18\x0e \x01(\x03H\x06\x88\x01\x01\x42\x11\n\x0f_cpc_bid_microsB\x17\n\x15_biddable_conversionsB\x1d\n\x1b_biddable_conversions_valueB\t\n\x07_clicksB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x17\n\x15_top_slot_impressions\"\xb9\x01\n\x15\x43pvBidSimulationPoint\x12\x1b\n\x0e\x63pv_bid_micros\x18\x05 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bimpressions\x18\x07 \x01(\x03H\x02\x88\x01\x01\x12\x12\n\x05views\x18\x08 \x01(\x03H\x03\x88\x01\x01\x42\x11\n\x0f_cpv_bid_microsB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x08\n\x06_views\"\x84\x03\n\x18TargetCpaSimulationPoint\x12\x1e\n\x11target_cpa_micros\x18\x08 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x62iddable_conversions\x18\t \x01(\x01H\x01\x88\x01\x01\x12\'\n\x1a\x62iddable_conversions_value\x18\n \x01(\x01H\x02\x88\x01\x01\x12\x13\n\x06\x63licks\x18\x0b \x01(\x03H\x03\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x0c \x01(\x03H\x04\x88\x01\x01\x12\x18\n\x0bimpressions\x18\r \x01(\x03H\x05\x88\x01\x01\x12!\n\x14top_slot_impressions\x18\x0e \x01(\x03H\x06\x88\x01\x01\x42\x14\n\x12_target_cpa_microsB\x17\n\x15_biddable_conversionsB\x1d\n\x1b_biddable_conversions_valueB\t\n\x07_clicksB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x17\n\x15_top_slot_impressions\"\xf9\x02\n\x19TargetRoasSimulationPoint\x12\x18\n\x0btarget_roas\x18\x08 \x01(\x01H\x00\x88\x01\x01\x12!\n\x14\x62iddable_conversions\x18\t \x01(\x01H\x01\x88\x01\x01\x12\'\n\x1a\x62iddable_conversions_value\x18\n \x01(\x01H\x02\x88\x01\x01\x12\x13\n\x06\x63licks\x18\x0b \x01(\x03H\x03\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x0c \x01(\x03H\x04\x88\x01\x01\x12\x18\n\x0bimpressions\x18\r \x01(\x03H\x05\x88\x01\x01\x12!\n\x14top_slot_impressions\x18\x0e \x01(\x03H\x06\x88\x01\x01\x42\x0e\n\x0c_target_roasB\x17\n\x15_biddable_conversionsB\x1d\n\x1b_biddable_conversions_valueB\t\n\x07_clicksB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x17\n\x15_top_slot_impressions\"\x92\x03\n\x1cPercentCpcBidSimulationPoint\x12#\n\x16percent_cpc_bid_micros\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12!\n\x14\x62iddable_conversions\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\'\n\x1a\x62iddable_conversions_value\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x13\n\x06\x63licks\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x18\n\x0b\x63ost_micros\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x18\n\x0bimpressions\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12!\n\x14top_slot_impressions\x18\x07 \x01(\x03H\x06\x88\x01\x01\x42\x19\n\x17_percent_cpc_bid_microsB\x17\n\x15_biddable_conversionsB\x1d\n\x1b_biddable_conversions_valueB\t\n\x07_clicksB\x0e\n\x0c_cost_microsB\x0e\n\x0c_impressionsB\x17\n\x15_top_slot_impressionsB\xea\x01\n\"com.google.ads.googleads.v5.commonB\x0fSimulationProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_BIDMODIFIERSIMULATIONPOINTLIST = _descriptor.Descriptor( + name='BidModifierSimulationPointList', + full_name='google.ads.googleads.v5.common.BidModifierSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.BidModifierSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=227, +) + + +_CPCBIDSIMULATIONPOINTLIST = _descriptor.Descriptor( + name='CpcBidSimulationPointList', + full_name='google.ads.googleads.v5.common.CpcBidSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.CpcBidSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=229, + serialized_end=327, +) + + +_CPVBIDSIMULATIONPOINTLIST = _descriptor.Descriptor( + name='CpvBidSimulationPointList', + full_name='google.ads.googleads.v5.common.CpvBidSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.CpvBidSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=329, + serialized_end=427, +) + + +_TARGETCPASIMULATIONPOINTLIST = _descriptor.Descriptor( + name='TargetCpaSimulationPointList', + full_name='google.ads.googleads.v5.common.TargetCpaSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=429, + serialized_end=533, +) + + +_TARGETROASSIMULATIONPOINTLIST = _descriptor.Descriptor( + name='TargetRoasSimulationPointList', + full_name='google.ads.googleads.v5.common.TargetRoasSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=535, + serialized_end=641, +) + + +_PERCENTCPCBIDSIMULATIONPOINTLIST = _descriptor.Descriptor( + name='PercentCpcBidSimulationPointList', + full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPointList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='points', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPointList.points', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=643, + serialized_end=755, +) + + +_BIDMODIFIERSIMULATIONPOINT = _descriptor.Descriptor( + name='BidModifierSimulationPoint', + full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.bid_modifier', index=0, + number=15, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.biddable_conversions', index=1, + number=16, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions_value', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.biddable_conversions_value', index=2, + number=17, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.clicks', index=3, + number=18, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.cost_micros', index=4, + number=19, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.impressions', index=5, + number=20, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_slot_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.top_slot_impressions', index=6, + number=21, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_biddable_conversions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_biddable_conversions', index=7, + number=22, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_biddable_conversions_value', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_biddable_conversions_value', index=8, + number=23, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_clicks', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_clicks', index=9, + number=24, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_cost_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_cost_micros', index=10, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_impressions', index=11, + number=26, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_top_slot_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_top_slot_impressions', index=12, + number=27, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_required_budget_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint.parent_required_budget_micros', index=13, + number=28, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_bid_modifier', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._bid_modifier', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._biddable_conversions', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions_value', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._biddable_conversions_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._clicks', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._cost_micros', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._impressions', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_slot_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._top_slot_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_biddable_conversions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_biddable_conversions', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_biddable_conversions_value', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_biddable_conversions_value', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_clicks', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_clicks', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_cost_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_cost_micros', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_impressions', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_top_slot_impressions', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_top_slot_impressions', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_required_budget_micros', full_name='google.ads.googleads.v5.common.BidModifierSimulationPoint._parent_required_budget_micros', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=758, + serialized_end=1608, +) + + +_CPCBIDSIMULATIONPOINT = _descriptor.Descriptor( + name='CpcBidSimulationPoint', + full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.cpc_bid_micros', index=0, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.biddable_conversions', index=1, + number=9, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions_value', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.biddable_conversions_value', index=2, + number=10, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.clicks', index=3, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.cost_micros', index=4, + number=12, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.impressions', index=5, + number=13, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_slot_impressions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint.top_slot_impressions', index=6, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_cpc_bid_micros', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._cpc_bid_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._biddable_conversions', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions_value', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._biddable_conversions_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._clicks', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._cost_micros', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._impressions', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_slot_impressions', full_name='google.ads.googleads.v5.common.CpcBidSimulationPoint._top_slot_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1611, + serialized_end=1990, +) + + +_CPVBIDSIMULATIONPOINT = _descriptor.Descriptor( + name='CpvBidSimulationPoint', + full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='cpv_bid_micros', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint.cpv_bid_micros', index=0, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint.cost_micros', index=1, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint.impressions', index=2, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='views', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint.views', index=3, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_cpv_bid_micros', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint._cpv_bid_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint._cost_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint._impressions', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_views', full_name='google.ads.googleads.v5.common.CpvBidSimulationPoint._views', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1993, + serialized_end=2178, +) + + +_TARGETCPASIMULATIONPOINT = _descriptor.Descriptor( + name='TargetCpaSimulationPoint', + full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.target_cpa_micros', index=0, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.biddable_conversions', index=1, + number=9, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions_value', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.biddable_conversions_value', index=2, + number=10, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.clicks', index=3, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.cost_micros', index=4, + number=12, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.impressions', index=5, + number=13, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_slot_impressions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint.top_slot_impressions', index=6, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_cpa_micros', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._target_cpa_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._biddable_conversions', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions_value', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._biddable_conversions_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._clicks', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._cost_micros', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._impressions', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_slot_impressions', full_name='google.ads.googleads.v5.common.TargetCpaSimulationPoint._top_slot_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2181, + serialized_end=2569, +) + + +_TARGETROASSIMULATIONPOINT = _descriptor.Descriptor( + name='TargetRoasSimulationPoint', + full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.target_roas', index=0, + number=8, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.biddable_conversions', index=1, + number=9, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions_value', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.biddable_conversions_value', index=2, + number=10, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.clicks', index=3, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.cost_micros', index=4, + number=12, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.impressions', index=5, + number=13, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_slot_impressions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint.top_slot_impressions', index=6, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_roas', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._target_roas', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._biddable_conversions', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions_value', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._biddable_conversions_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._clicks', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._cost_micros', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._impressions', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_slot_impressions', full_name='google.ads.googleads.v5.common.TargetRoasSimulationPoint._top_slot_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2572, + serialized_end=2949, +) + + +_PERCENTCPCBIDSIMULATIONPOINT = _descriptor.Descriptor( + name='PercentCpcBidSimulationPoint', + full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='percent_cpc_bid_micros', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.percent_cpc_bid_micros', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.biddable_conversions', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='biddable_conversions_value', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.biddable_conversions_value', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.clicks', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.cost_micros', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.impressions', index=5, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_slot_impressions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint.top_slot_impressions', index=6, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_percent_cpc_bid_micros', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._percent_cpc_bid_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._biddable_conversions', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_biddable_conversions_value', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._biddable_conversions_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_clicks', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._clicks', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cost_micros', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._cost_micros', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_impressions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._impressions', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_slot_impressions', full_name='google.ads.googleads.v5.common.PercentCpcBidSimulationPoint._top_slot_impressions', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2952, + serialized_end=3354, +) + +_BIDMODIFIERSIMULATIONPOINTLIST.fields_by_name['points'].message_type = _BIDMODIFIERSIMULATIONPOINT +_CPCBIDSIMULATIONPOINTLIST.fields_by_name['points'].message_type = _CPCBIDSIMULATIONPOINT +_CPVBIDSIMULATIONPOINTLIST.fields_by_name['points'].message_type = _CPVBIDSIMULATIONPOINT +_TARGETCPASIMULATIONPOINTLIST.fields_by_name['points'].message_type = _TARGETCPASIMULATIONPOINT +_TARGETROASSIMULATIONPOINTLIST.fields_by_name['points'].message_type = _TARGETROASSIMULATIONPOINT +_PERCENTCPCBIDSIMULATIONPOINTLIST.fields_by_name['points'].message_type = _PERCENTCPCBIDSIMULATIONPOINT +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_bid_modifier'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['bid_modifier']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['bid_modifier'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_bid_modifier'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['biddable_conversions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['biddable_conversions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['biddable_conversions_value']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['biddable_conversions_value'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_clicks'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['clicks']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['clicks'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_clicks'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['cost_micros']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['impressions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_impressions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['top_slot_impressions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['top_slot_impressions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_biddable_conversions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_biddable_conversions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_biddable_conversions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_biddable_conversions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_biddable_conversions_value'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_biddable_conversions_value']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_biddable_conversions_value'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_biddable_conversions_value'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_clicks'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_clicks']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_clicks'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_clicks'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_cost_micros'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_cost_micros']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_cost_micros'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_cost_micros'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_impressions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_impressions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_impressions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_impressions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_top_slot_impressions'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_top_slot_impressions']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_top_slot_impressions'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_top_slot_impressions'] +_BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_required_budget_micros'].fields.append( + _BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_required_budget_micros']) +_BIDMODIFIERSIMULATIONPOINT.fields_by_name['parent_required_budget_micros'].containing_oneof = _BIDMODIFIERSIMULATIONPOINT.oneofs_by_name['_parent_required_budget_micros'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_cpc_bid_micros'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['cpc_bid_micros']) +_CPCBIDSIMULATIONPOINT.fields_by_name['cpc_bid_micros'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_cpc_bid_micros'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions']) +_CPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions_value']) +_CPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions_value'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_clicks'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['clicks']) +_CPCBIDSIMULATIONPOINT.fields_by_name['clicks'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_clicks'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['cost_micros']) +_CPCBIDSIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['impressions']) +_CPCBIDSIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_impressions'] +_CPCBIDSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'].fields.append( + _CPCBIDSIMULATIONPOINT.fields_by_name['top_slot_impressions']) +_CPCBIDSIMULATIONPOINT.fields_by_name['top_slot_impressions'].containing_oneof = _CPCBIDSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'] +_CPVBIDSIMULATIONPOINT.oneofs_by_name['_cpv_bid_micros'].fields.append( + _CPVBIDSIMULATIONPOINT.fields_by_name['cpv_bid_micros']) +_CPVBIDSIMULATIONPOINT.fields_by_name['cpv_bid_micros'].containing_oneof = _CPVBIDSIMULATIONPOINT.oneofs_by_name['_cpv_bid_micros'] +_CPVBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _CPVBIDSIMULATIONPOINT.fields_by_name['cost_micros']) +_CPVBIDSIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _CPVBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_CPVBIDSIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _CPVBIDSIMULATIONPOINT.fields_by_name['impressions']) +_CPVBIDSIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _CPVBIDSIMULATIONPOINT.oneofs_by_name['_impressions'] +_CPVBIDSIMULATIONPOINT.oneofs_by_name['_views'].fields.append( + _CPVBIDSIMULATIONPOINT.fields_by_name['views']) +_CPVBIDSIMULATIONPOINT.fields_by_name['views'].containing_oneof = _CPVBIDSIMULATIONPOINT.oneofs_by_name['_views'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_target_cpa_micros'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['target_cpa_micros']) +_TARGETCPASIMULATIONPOINT.fields_by_name['target_cpa_micros'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_target_cpa_micros'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_biddable_conversions'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['biddable_conversions']) +_TARGETCPASIMULATIONPOINT.fields_by_name['biddable_conversions'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_biddable_conversions'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['biddable_conversions_value']) +_TARGETCPASIMULATIONPOINT.fields_by_name['biddable_conversions_value'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_clicks'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['clicks']) +_TARGETCPASIMULATIONPOINT.fields_by_name['clicks'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_clicks'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['cost_micros']) +_TARGETCPASIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['impressions']) +_TARGETCPASIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_impressions'] +_TARGETCPASIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'].fields.append( + _TARGETCPASIMULATIONPOINT.fields_by_name['top_slot_impressions']) +_TARGETCPASIMULATIONPOINT.fields_by_name['top_slot_impressions'].containing_oneof = _TARGETCPASIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_target_roas'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['target_roas']) +_TARGETROASSIMULATIONPOINT.fields_by_name['target_roas'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_target_roas'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['biddable_conversions']) +_TARGETROASSIMULATIONPOINT.fields_by_name['biddable_conversions'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['biddable_conversions_value']) +_TARGETROASSIMULATIONPOINT.fields_by_name['biddable_conversions_value'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_clicks'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['clicks']) +_TARGETROASSIMULATIONPOINT.fields_by_name['clicks'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_clicks'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['cost_micros']) +_TARGETROASSIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['impressions']) +_TARGETROASSIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_impressions'] +_TARGETROASSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'].fields.append( + _TARGETROASSIMULATIONPOINT.fields_by_name['top_slot_impressions']) +_TARGETROASSIMULATIONPOINT.fields_by_name['top_slot_impressions'].containing_oneof = _TARGETROASSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_percent_cpc_bid_micros'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['percent_cpc_bid_micros']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['percent_cpc_bid_micros'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_percent_cpc_bid_micros'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions_value']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['biddable_conversions_value'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_biddable_conversions_value'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_clicks'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['clicks']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['clicks'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_clicks'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['cost_micros']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['cost_micros'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_cost_micros'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_impressions'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['impressions']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['impressions'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_impressions'] +_PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'].fields.append( + _PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['top_slot_impressions']) +_PERCENTCPCBIDSIMULATIONPOINT.fields_by_name['top_slot_impressions'].containing_oneof = _PERCENTCPCBIDSIMULATIONPOINT.oneofs_by_name['_top_slot_impressions'] +DESCRIPTOR.message_types_by_name['BidModifierSimulationPointList'] = _BIDMODIFIERSIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['CpcBidSimulationPointList'] = _CPCBIDSIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['CpvBidSimulationPointList'] = _CPVBIDSIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['TargetCpaSimulationPointList'] = _TARGETCPASIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['TargetRoasSimulationPointList'] = _TARGETROASSIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['PercentCpcBidSimulationPointList'] = _PERCENTCPCBIDSIMULATIONPOINTLIST +DESCRIPTOR.message_types_by_name['BidModifierSimulationPoint'] = _BIDMODIFIERSIMULATIONPOINT +DESCRIPTOR.message_types_by_name['CpcBidSimulationPoint'] = _CPCBIDSIMULATIONPOINT +DESCRIPTOR.message_types_by_name['CpvBidSimulationPoint'] = _CPVBIDSIMULATIONPOINT +DESCRIPTOR.message_types_by_name['TargetCpaSimulationPoint'] = _TARGETCPASIMULATIONPOINT +DESCRIPTOR.message_types_by_name['TargetRoasSimulationPoint'] = _TARGETROASSIMULATIONPOINT +DESCRIPTOR.message_types_by_name['PercentCpcBidSimulationPoint'] = _PERCENTCPCBIDSIMULATIONPOINT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BidModifierSimulationPointList = _reflection.GeneratedProtocolMessageType('BidModifierSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _BIDMODIFIERSIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type + BID\_MODIFIER. + + Attributes: + points: + Projected metrics for a series of bid modifier amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.BidModifierSimulationPointList) + }) +_sym_db.RegisterMessage(BidModifierSimulationPointList) + +CpcBidSimulationPointList = _reflection.GeneratedProtocolMessageType('CpcBidSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _CPCBIDSIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type CPC\_BID. + + Attributes: + points: + Projected metrics for a series of CPC bid amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CpcBidSimulationPointList) + }) +_sym_db.RegisterMessage(CpcBidSimulationPointList) + +CpvBidSimulationPointList = _reflection.GeneratedProtocolMessageType('CpvBidSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _CPVBIDSIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type CPV\_BID. + + Attributes: + points: + Projected metrics for a series of CPV bid amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CpvBidSimulationPointList) + }) +_sym_db.RegisterMessage(CpvBidSimulationPointList) + +TargetCpaSimulationPointList = _reflection.GeneratedProtocolMessageType('TargetCpaSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _TARGETCPASIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type TARGET\_CPA. + + Attributes: + points: + Projected metrics for a series of target CPA amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetCpaSimulationPointList) + }) +_sym_db.RegisterMessage(TargetCpaSimulationPointList) + +TargetRoasSimulationPointList = _reflection.GeneratedProtocolMessageType('TargetRoasSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _TARGETROASSIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type + TARGET\_ROAS. + + Attributes: + points: + Projected metrics for a series of target ROAS amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetRoasSimulationPointList) + }) +_sym_db.RegisterMessage(TargetRoasSimulationPointList) + +PercentCpcBidSimulationPointList = _reflection.GeneratedProtocolMessageType('PercentCpcBidSimulationPointList', (_message.Message,), { + 'DESCRIPTOR' : _PERCENTCPCBIDSIMULATIONPOINTLIST, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """A container for simulation points for simulations of type + PERCENT\_CPC\_BID. + + Attributes: + points: + Projected metrics for a series of percent CPC bid amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PercentCpcBidSimulationPointList) + }) +_sym_db.RegisterMessage(PercentCpcBidSimulationPointList) + +BidModifierSimulationPoint = _reflection.GeneratedProtocolMessageType('BidModifierSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _BIDMODIFIERSIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific bid modifier amount. + + Attributes: + bid_modifier: + The simulated bid modifier upon which projected metrics are + based. + biddable_conversions: + Projected number of biddable conversions. Only search + advertising channel type supports this field. + biddable_conversions_value: + Projected total value of biddable conversions. Only search + advertising channel type supports this field. + clicks: + Projected number of clicks. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + top_slot_impressions: + Projected number of top slot impressions. Only search + advertising channel type supports this field. + parent_biddable_conversions: + Projected number of biddable conversions for the parent + resource. Only search advertising channel type supports this + field. + parent_biddable_conversions_value: + Projected total value of biddable conversions for the parent + resource. Only search advertising channel type supports this + field. + parent_clicks: + Projected number of clicks for the parent resource. + parent_cost_micros: + Projected cost in micros for the parent resource. + parent_impressions: + Projected number of impressions for the parent resource. + parent_top_slot_impressions: + Projected number of top slot impressions for the parent + resource. Only search advertising channel type supports this + field. + parent_required_budget_micros: + Projected minimum daily budget that must be available to the + parent resource to realize this simulation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.BidModifierSimulationPoint) + }) +_sym_db.RegisterMessage(BidModifierSimulationPoint) + +CpcBidSimulationPoint = _reflection.GeneratedProtocolMessageType('CpcBidSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _CPCBIDSIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific CPC bid amount. + + Attributes: + cpc_bid_micros: + The simulated CPC bid upon which projected metrics are based. + biddable_conversions: + Projected number of biddable conversions. + biddable_conversions_value: + Projected total value of biddable conversions. + clicks: + Projected number of clicks. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + top_slot_impressions: + Projected number of top slot impressions. Only search + advertising channel type supports this field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CpcBidSimulationPoint) + }) +_sym_db.RegisterMessage(CpcBidSimulationPoint) + +CpvBidSimulationPoint = _reflection.GeneratedProtocolMessageType('CpvBidSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _CPVBIDSIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific CPV bid amount. + + Attributes: + cpv_bid_micros: + The simulated CPV bid upon which projected metrics are based. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + views: + Projected number of views. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CpvBidSimulationPoint) + }) +_sym_db.RegisterMessage(CpvBidSimulationPoint) + +TargetCpaSimulationPoint = _reflection.GeneratedProtocolMessageType('TargetCpaSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _TARGETCPASIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific target CPA amount. + + Attributes: + target_cpa_micros: + The simulated target CPA upon which projected metrics are + based. + biddable_conversions: + Projected number of biddable conversions. + biddable_conversions_value: + Projected total value of biddable conversions. + clicks: + Projected number of clicks. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + top_slot_impressions: + Projected number of top slot impressions. Only search + advertising channel type supports this field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetCpaSimulationPoint) + }) +_sym_db.RegisterMessage(TargetCpaSimulationPoint) + +TargetRoasSimulationPoint = _reflection.GeneratedProtocolMessageType('TargetRoasSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _TARGETROASSIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific target ROAS amount. + + Attributes: + target_roas: + The simulated target ROAS upon which projected metrics are + based. + biddable_conversions: + Projected number of biddable conversions. + biddable_conversions_value: + Projected total value of biddable conversions. + clicks: + Projected number of clicks. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + top_slot_impressions: + Projected number of top slot impressions. Only Search + advertising channel type supports this field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.TargetRoasSimulationPoint) + }) +_sym_db.RegisterMessage(TargetRoasSimulationPoint) + +PercentCpcBidSimulationPoint = _reflection.GeneratedProtocolMessageType('PercentCpcBidSimulationPoint', (_message.Message,), { + 'DESCRIPTOR' : _PERCENTCPCBIDSIMULATIONPOINT, + '__module__' : 'google.ads.googleads_v5.proto.common.simulation_pb2' + , + '__doc__': """Projected metrics for a specific percent CPC amount. Only Hotel + advertising channel type supports this field. + + Attributes: + percent_cpc_bid_micros: + The simulated percent CPC upon which projected metrics are + based. Percent CPC expressed as fraction of the advertised + price for some good or service. The value stored here is + 1,000,000 \* [fraction]. + biddable_conversions: + Projected number of biddable conversions. + biddable_conversions_value: + Projected total value of biddable conversions in local + currency. + clicks: + Projected number of clicks. + cost_micros: + Projected cost in micros. + impressions: + Projected number of impressions. + top_slot_impressions: + Projected number of top slot impressions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.PercentCpcBidSimulationPoint) + }) +_sym_db.RegisterMessage(PercentCpcBidSimulationPoint) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/simulation_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/simulation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/simulation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/tag_snippet_pb2.py b/google/ads/google_ads/v5/proto/common/tag_snippet_pb2.py new file mode 100644 index 000000000..2fab2db75 --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/tag_snippet_pb2.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/tag_snippet.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import tracking_code_page_format_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_tracking__code__page__format__pb2 +from google.ads.google_ads.v5.proto.enums import tracking_code_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_tracking__code__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/tag_snippet.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\017TagSnippetProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/common/tag_snippet.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x43google/ads/googleads_v5/proto/enums/tracking_code_page_format.proto\x1a\n\x04rule\x18\x01 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.UserListRuleInfo\x12\x30\n\nstart_date\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08\x65nd_date\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\\\n\x1a\x45xpressionRuleUserListInfo\x12>\n\x04rule\x18\x01 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.UserListRuleInfo\"\xcd\x03\n\x15RuleBasedUserListInfo\x12x\n\x14prepopulation_status\x18\x01 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.UserListPrepopulationStatusEnum.UserListPrepopulationStatus\x12[\n\x17\x63ombined_rule_user_list\x18\x02 \x01(\x0b\x32\x38.google.ads.googleads.v5.common.CombinedRuleUserListInfoH\x00\x12\x64\n\x1c\x64\x61te_specific_rule_user_list\x18\x03 \x01(\x0b\x32<.google.ads.googleads.v5.common.DateSpecificRuleUserListInfoH\x00\x12_\n\x19\x65xpression_rule_user_list\x18\x04 \x01(\x0b\x32:.google.ads.googleads.v5.common.ExpressionRuleUserListInfoH\x00\x42\x16\n\x14rule_based_user_list\"]\n\x13LogicalUserListInfo\x12\x46\n\x05rules\x18\x01 \x03(\x0b\x32\x37.google.ads.googleads.v5.common.UserListLogicalRuleInfo\"\xda\x01\n\x17UserListLogicalRuleInfo\x12l\n\x08operator\x18\x01 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator\x12Q\n\rrule_operands\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.common.LogicalUserListOperandInfo\"M\n\x1aLogicalUserListOperandInfo\x12/\n\tuser_list\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"X\n\x11\x42\x61sicUserListInfo\x12\x43\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x32.google.ads.googleads.v5.common.UserListActionInfo\"\x9f\x01\n\x12UserListActionInfo\x12\x39\n\x11\x63onversion_action\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x12:\n\x12remarketing_action\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x42\x12\n\x10user_list_actionB\xe9\x01\n\"com.google.ads.googleads.v5.commonB\x0eUserListsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_customer__match__upload__key__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__combined__rule__operator__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__crm__data__source__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__date__rule__item__operator__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__logical__rule__operator__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__number__rule__item__operator__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__prepopulation__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__rule__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__string__rule__item__operator__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SIMILARUSERLISTINFO = _descriptor.Descriptor( + name='SimilarUserListInfo', + full_name='google.ads.googleads.v5.common.SimilarUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='seed_user_list', full_name='google.ads.googleads.v5.common.SimilarUserListInfo.seed_user_list', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=822, + serialized_end=897, +) + + +_CRMBASEDUSERLISTINFO = _descriptor.Descriptor( + name='CrmBasedUserListInfo', + full_name='google.ads.googleads.v5.common.CrmBasedUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.common.CrmBasedUserListInfo.app_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='upload_key_type', full_name='google.ads.googleads.v5.common.CrmBasedUserListInfo.upload_key_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data_source_type', full_name='google.ads.googleads.v5.common.CrmBasedUserListInfo.data_source_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=900, + serialized_end=1197, +) + + +_USERLISTRULEINFO = _descriptor.Descriptor( + name='UserListRuleInfo', + full_name='google.ads.googleads.v5.common.UserListRuleInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rule_type', full_name='google.ads.googleads.v5.common.UserListRuleInfo.rule_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='rule_item_groups', full_name='google.ads.googleads.v5.common.UserListRuleInfo.rule_item_groups', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1200, + serialized_end=1392, +) + + +_USERLISTRULEITEMGROUPINFO = _descriptor.Descriptor( + name='UserListRuleItemGroupInfo', + full_name='google.ads.googleads.v5.common.UserListRuleItemGroupInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rule_items', full_name='google.ads.googleads.v5.common.UserListRuleItemGroupInfo.rule_items', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1394, + serialized_end=1495, +) + + +_USERLISTRULEITEMINFO = _descriptor.Descriptor( + name='UserListRuleItemInfo', + full_name='google.ads.googleads.v5.common.UserListRuleItemInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.common.UserListRuleItemInfo.name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='number_rule_item', full_name='google.ads.googleads.v5.common.UserListRuleItemInfo.number_rule_item', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_rule_item', full_name='google.ads.googleads.v5.common.UserListRuleItemInfo.string_rule_item', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date_rule_item', full_name='google.ads.googleads.v5.common.UserListRuleItemInfo.date_rule_item', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='rule_item', full_name='google.ads.googleads.v5.common.UserListRuleItemInfo.rule_item', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1498, + serialized_end=1837, +) + + +_USERLISTDATERULEITEMINFO = _descriptor.Descriptor( + name='UserListDateRuleItemInfo', + full_name='google.ads.googleads.v5.common.UserListDateRuleItemInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.UserListDateRuleItemInfo.operator', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.UserListDateRuleItemInfo.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='offset_in_days', full_name='google.ads.googleads.v5.common.UserListDateRuleItemInfo.offset_in_days', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1840, + serialized_end=2076, +) + + +_USERLISTNUMBERRULEITEMINFO = _descriptor.Descriptor( + name='UserListNumberRuleItemInfo', + full_name='google.ads.googleads.v5.common.UserListNumberRuleItemInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.UserListNumberRuleItemInfo.operator', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.UserListNumberRuleItemInfo.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2079, + serialized_end=2268, +) + + +_USERLISTSTRINGRULEITEMINFO = _descriptor.Descriptor( + name='UserListStringRuleItemInfo', + full_name='google.ads.googleads.v5.common.UserListStringRuleItemInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.UserListStringRuleItemInfo.operator', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.common.UserListStringRuleItemInfo.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2271, + serialized_end=2460, +) + + +_COMBINEDRULEUSERLISTINFO = _descriptor.Descriptor( + name='CombinedRuleUserListInfo', + full_name='google.ads.googleads.v5.common.CombinedRuleUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='left_operand', full_name='google.ads.googleads.v5.common.CombinedRuleUserListInfo.left_operand', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='right_operand', full_name='google.ads.googleads.v5.common.CombinedRuleUserListInfo.right_operand', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='rule_operator', full_name='google.ads.googleads.v5.common.CombinedRuleUserListInfo.rule_operator', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2463, + serialized_end=2751, +) + + +_DATESPECIFICRULEUSERLISTINFO = _descriptor.Descriptor( + name='DateSpecificRuleUserListInfo', + full_name='google.ads.googleads.v5.common.DateSpecificRuleUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rule', full_name='google.ads.googleads.v5.common.DateSpecificRuleUserListInfo.rule', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.common.DateSpecificRuleUserListInfo.start_date', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.common.DateSpecificRuleUserListInfo.end_date', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2754, + serialized_end=2946, +) + + +_EXPRESSIONRULEUSERLISTINFO = _descriptor.Descriptor( + name='ExpressionRuleUserListInfo', + full_name='google.ads.googleads.v5.common.ExpressionRuleUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rule', full_name='google.ads.googleads.v5.common.ExpressionRuleUserListInfo.rule', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2948, + serialized_end=3040, +) + + +_RULEBASEDUSERLISTINFO = _descriptor.Descriptor( + name='RuleBasedUserListInfo', + full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='prepopulation_status', full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo.prepopulation_status', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='combined_rule_user_list', full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo.combined_rule_user_list', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date_specific_rule_user_list', full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo.date_specific_rule_user_list', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='expression_rule_user_list', full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo.expression_rule_user_list', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='rule_based_user_list', full_name='google.ads.googleads.v5.common.RuleBasedUserListInfo.rule_based_user_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3043, + serialized_end=3504, +) + + +_LOGICALUSERLISTINFO = _descriptor.Descriptor( + name='LogicalUserListInfo', + full_name='google.ads.googleads.v5.common.LogicalUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rules', full_name='google.ads.googleads.v5.common.LogicalUserListInfo.rules', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3506, + serialized_end=3599, +) + + +_USERLISTLOGICALRULEINFO = _descriptor.Descriptor( + name='UserListLogicalRuleInfo', + full_name='google.ads.googleads.v5.common.UserListLogicalRuleInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.common.UserListLogicalRuleInfo.operator', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='rule_operands', full_name='google.ads.googleads.v5.common.UserListLogicalRuleInfo.rule_operands', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3602, + serialized_end=3820, +) + + +_LOGICALUSERLISTOPERANDINFO = _descriptor.Descriptor( + name='LogicalUserListOperandInfo', + full_name='google.ads.googleads.v5.common.LogicalUserListOperandInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.common.LogicalUserListOperandInfo.user_list', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3822, + serialized_end=3899, +) + + +_BASICUSERLISTINFO = _descriptor.Descriptor( + name='BasicUserListInfo', + full_name='google.ads.googleads.v5.common.BasicUserListInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='actions', full_name='google.ads.googleads.v5.common.BasicUserListInfo.actions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3901, + serialized_end=3989, +) + + +_USERLISTACTIONINFO = _descriptor.Descriptor( + name='UserListActionInfo', + full_name='google.ads.googleads.v5.common.UserListActionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.common.UserListActionInfo.conversion_action', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remarketing_action', full_name='google.ads.googleads.v5.common.UserListActionInfo.remarketing_action', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='user_list_action', full_name='google.ads.googleads.v5.common.UserListActionInfo.user_list_action', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3992, + serialized_end=4151, +) + +_SIMILARUSERLISTINFO.fields_by_name['seed_user_list'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CRMBASEDUSERLISTINFO.fields_by_name['app_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CRMBASEDUSERLISTINFO.fields_by_name['upload_key_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_customer__match__upload__key__type__pb2._CUSTOMERMATCHUPLOADKEYTYPEENUM_CUSTOMERMATCHUPLOADKEYTYPE +_CRMBASEDUSERLISTINFO.fields_by_name['data_source_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__crm__data__source__type__pb2._USERLISTCRMDATASOURCETYPEENUM_USERLISTCRMDATASOURCETYPE +_USERLISTRULEINFO.fields_by_name['rule_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__rule__type__pb2._USERLISTRULETYPEENUM_USERLISTRULETYPE +_USERLISTRULEINFO.fields_by_name['rule_item_groups'].message_type = _USERLISTRULEITEMGROUPINFO +_USERLISTRULEITEMGROUPINFO.fields_by_name['rule_items'].message_type = _USERLISTRULEITEMINFO +_USERLISTRULEITEMINFO.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLISTRULEITEMINFO.fields_by_name['number_rule_item'].message_type = _USERLISTNUMBERRULEITEMINFO +_USERLISTRULEITEMINFO.fields_by_name['string_rule_item'].message_type = _USERLISTSTRINGRULEITEMINFO +_USERLISTRULEITEMINFO.fields_by_name['date_rule_item'].message_type = _USERLISTDATERULEITEMINFO +_USERLISTRULEITEMINFO.oneofs_by_name['rule_item'].fields.append( + _USERLISTRULEITEMINFO.fields_by_name['number_rule_item']) +_USERLISTRULEITEMINFO.fields_by_name['number_rule_item'].containing_oneof = _USERLISTRULEITEMINFO.oneofs_by_name['rule_item'] +_USERLISTRULEITEMINFO.oneofs_by_name['rule_item'].fields.append( + _USERLISTRULEITEMINFO.fields_by_name['string_rule_item']) +_USERLISTRULEITEMINFO.fields_by_name['string_rule_item'].containing_oneof = _USERLISTRULEITEMINFO.oneofs_by_name['rule_item'] +_USERLISTRULEITEMINFO.oneofs_by_name['rule_item'].fields.append( + _USERLISTRULEITEMINFO.fields_by_name['date_rule_item']) +_USERLISTRULEITEMINFO.fields_by_name['date_rule_item'].containing_oneof = _USERLISTRULEITEMINFO.oneofs_by_name['rule_item'] +_USERLISTDATERULEITEMINFO.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__date__rule__item__operator__pb2._USERLISTDATERULEITEMOPERATORENUM_USERLISTDATERULEITEMOPERATOR +_USERLISTDATERULEITEMINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLISTDATERULEITEMINFO.fields_by_name['offset_in_days'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLISTNUMBERRULEITEMINFO.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__number__rule__item__operator__pb2._USERLISTNUMBERRULEITEMOPERATORENUM_USERLISTNUMBERRULEITEMOPERATOR +_USERLISTNUMBERRULEITEMINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_USERLISTSTRINGRULEITEMINFO.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__string__rule__item__operator__pb2._USERLISTSTRINGRULEITEMOPERATORENUM_USERLISTSTRINGRULEITEMOPERATOR +_USERLISTSTRINGRULEITEMINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_COMBINEDRULEUSERLISTINFO.fields_by_name['left_operand'].message_type = _USERLISTRULEINFO +_COMBINEDRULEUSERLISTINFO.fields_by_name['right_operand'].message_type = _USERLISTRULEINFO +_COMBINEDRULEUSERLISTINFO.fields_by_name['rule_operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__combined__rule__operator__pb2._USERLISTCOMBINEDRULEOPERATORENUM_USERLISTCOMBINEDRULEOPERATOR +_DATESPECIFICRULEUSERLISTINFO.fields_by_name['rule'].message_type = _USERLISTRULEINFO +_DATESPECIFICRULEUSERLISTINFO.fields_by_name['start_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DATESPECIFICRULEUSERLISTINFO.fields_by_name['end_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPRESSIONRULEUSERLISTINFO.fields_by_name['rule'].message_type = _USERLISTRULEINFO +_RULEBASEDUSERLISTINFO.fields_by_name['prepopulation_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__prepopulation__status__pb2._USERLISTPREPOPULATIONSTATUSENUM_USERLISTPREPOPULATIONSTATUS +_RULEBASEDUSERLISTINFO.fields_by_name['combined_rule_user_list'].message_type = _COMBINEDRULEUSERLISTINFO +_RULEBASEDUSERLISTINFO.fields_by_name['date_specific_rule_user_list'].message_type = _DATESPECIFICRULEUSERLISTINFO +_RULEBASEDUSERLISTINFO.fields_by_name['expression_rule_user_list'].message_type = _EXPRESSIONRULEUSERLISTINFO +_RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'].fields.append( + _RULEBASEDUSERLISTINFO.fields_by_name['combined_rule_user_list']) +_RULEBASEDUSERLISTINFO.fields_by_name['combined_rule_user_list'].containing_oneof = _RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'] +_RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'].fields.append( + _RULEBASEDUSERLISTINFO.fields_by_name['date_specific_rule_user_list']) +_RULEBASEDUSERLISTINFO.fields_by_name['date_specific_rule_user_list'].containing_oneof = _RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'] +_RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'].fields.append( + _RULEBASEDUSERLISTINFO.fields_by_name['expression_rule_user_list']) +_RULEBASEDUSERLISTINFO.fields_by_name['expression_rule_user_list'].containing_oneof = _RULEBASEDUSERLISTINFO.oneofs_by_name['rule_based_user_list'] +_LOGICALUSERLISTINFO.fields_by_name['rules'].message_type = _USERLISTLOGICALRULEINFO +_USERLISTLOGICALRULEINFO.fields_by_name['operator'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__logical__rule__operator__pb2._USERLISTLOGICALRULEOPERATORENUM_USERLISTLOGICALRULEOPERATOR +_USERLISTLOGICALRULEINFO.fields_by_name['rule_operands'].message_type = _LOGICALUSERLISTOPERANDINFO +_LOGICALUSERLISTOPERANDINFO.fields_by_name['user_list'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BASICUSERLISTINFO.fields_by_name['actions'].message_type = _USERLISTACTIONINFO +_USERLISTACTIONINFO.fields_by_name['conversion_action'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLISTACTIONINFO.fields_by_name['remarketing_action'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLISTACTIONINFO.oneofs_by_name['user_list_action'].fields.append( + _USERLISTACTIONINFO.fields_by_name['conversion_action']) +_USERLISTACTIONINFO.fields_by_name['conversion_action'].containing_oneof = _USERLISTACTIONINFO.oneofs_by_name['user_list_action'] +_USERLISTACTIONINFO.oneofs_by_name['user_list_action'].fields.append( + _USERLISTACTIONINFO.fields_by_name['remarketing_action']) +_USERLISTACTIONINFO.fields_by_name['remarketing_action'].containing_oneof = _USERLISTACTIONINFO.oneofs_by_name['user_list_action'] +DESCRIPTOR.message_types_by_name['SimilarUserListInfo'] = _SIMILARUSERLISTINFO +DESCRIPTOR.message_types_by_name['CrmBasedUserListInfo'] = _CRMBASEDUSERLISTINFO +DESCRIPTOR.message_types_by_name['UserListRuleInfo'] = _USERLISTRULEINFO +DESCRIPTOR.message_types_by_name['UserListRuleItemGroupInfo'] = _USERLISTRULEITEMGROUPINFO +DESCRIPTOR.message_types_by_name['UserListRuleItemInfo'] = _USERLISTRULEITEMINFO +DESCRIPTOR.message_types_by_name['UserListDateRuleItemInfo'] = _USERLISTDATERULEITEMINFO +DESCRIPTOR.message_types_by_name['UserListNumberRuleItemInfo'] = _USERLISTNUMBERRULEITEMINFO +DESCRIPTOR.message_types_by_name['UserListStringRuleItemInfo'] = _USERLISTSTRINGRULEITEMINFO +DESCRIPTOR.message_types_by_name['CombinedRuleUserListInfo'] = _COMBINEDRULEUSERLISTINFO +DESCRIPTOR.message_types_by_name['DateSpecificRuleUserListInfo'] = _DATESPECIFICRULEUSERLISTINFO +DESCRIPTOR.message_types_by_name['ExpressionRuleUserListInfo'] = _EXPRESSIONRULEUSERLISTINFO +DESCRIPTOR.message_types_by_name['RuleBasedUserListInfo'] = _RULEBASEDUSERLISTINFO +DESCRIPTOR.message_types_by_name['LogicalUserListInfo'] = _LOGICALUSERLISTINFO +DESCRIPTOR.message_types_by_name['UserListLogicalRuleInfo'] = _USERLISTLOGICALRULEINFO +DESCRIPTOR.message_types_by_name['LogicalUserListOperandInfo'] = _LOGICALUSERLISTOPERANDINFO +DESCRIPTOR.message_types_by_name['BasicUserListInfo'] = _BASICUSERLISTINFO +DESCRIPTOR.message_types_by_name['UserListActionInfo'] = _USERLISTACTIONINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SimilarUserListInfo = _reflection.GeneratedProtocolMessageType('SimilarUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _SIMILARUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """SimilarUserList is a list of users which are similar to users from + another UserList. These lists are read-only and automatically created + by Google. + + Attributes: + seed_user_list: + Seed UserList from which this list is derived. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.SimilarUserListInfo) + }) +_sym_db.RegisterMessage(SimilarUserListInfo) + +CrmBasedUserListInfo = _reflection.GeneratedProtocolMessageType('CrmBasedUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _CRMBASEDUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """UserList of CRM users provided by the advertiser. + + Attributes: + app_id: + A string that uniquely identifies a mobile application from + which the data was collected to the Google Ads API. For iOS, + the ID string is the 9 digit string that appears at the end of + an App Store URL (e.g., "476943146" for "Flood-It! 2" whose + App Store link is http://itunes.apple.com/us/app/flood- + it!-2/id476943146). For Android, the ID string is the + application's package name (e.g., "com.labpixies.colordrips" + for "Color Drips" given Google Play link https://play.google.c + om/store/apps/details?id=com.labpixies.colordrips). Required + when creating CrmBasedUserList for uploading mobile + advertising IDs. + upload_key_type: + Matching key type of the list. Mixed data types are not + allowed on the same list. This field is required for an ADD + operation. + data_source_type: + Data source of the list. Default value is FIRST\_PARTY. Only + customers on the allow-list can create third-party sourced CRM + lists. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CrmBasedUserListInfo) + }) +_sym_db.RegisterMessage(CrmBasedUserListInfo) + +UserListRuleInfo = _reflection.GeneratedProtocolMessageType('UserListRuleInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTRULEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A client defined rule based on custom parameters sent by web sites or + uploaded by the advertiser. + + Attributes: + rule_type: + Rule type is used to determine how to group rule items. The + default is OR of ANDs (disjunctive normal form). That is, rule + items will be ANDed together within rule item groups and the + groups themselves will be ORed together. Currently AND of ORs + (conjunctive normal form) is only supported for + ExpressionRuleUserList. + rule_item_groups: + List of rule item groups that defines this rule. Rule item + groups are grouped together based on rule\_type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListRuleInfo) + }) +_sym_db.RegisterMessage(UserListRuleInfo) + +UserListRuleItemGroupInfo = _reflection.GeneratedProtocolMessageType('UserListRuleItemGroupInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTRULEITEMGROUPINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A group of rule items. + + Attributes: + rule_items: + Rule items that will be grouped together based on rule\_type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListRuleItemGroupInfo) + }) +_sym_db.RegisterMessage(UserListRuleItemGroupInfo) + +UserListRuleItemInfo = _reflection.GeneratedProtocolMessageType('UserListRuleItemInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTRULEITEMINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """An atomic rule item. + + Attributes: + name: + Rule variable name. It should match the corresponding key name + fired by the pixel. A name must begin with US-ascii letters or + underscore or UTF8 code that is greater than 127 and consist + of US-ascii letters or digits or underscore or UTF8 code that + is greater than 127. For websites, there are two built-in + variable URL (name = 'url\_\_') and referrer URL (name = + 'ref\_url\_\_'). This field must be populated when creating a + new rule item. + rule_item: + An atomic rule item. + number_rule_item: + An atomic rule item composed of a number operation. + string_rule_item: + An atomic rule item composed of a string operation. + date_rule_item: + An atomic rule item composed of a date operation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListRuleItemInfo) + }) +_sym_db.RegisterMessage(UserListRuleItemInfo) + +UserListDateRuleItemInfo = _reflection.GeneratedProtocolMessageType('UserListDateRuleItemInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTDATERULEITEMINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A rule item composed of a date operation. + + Attributes: + operator: + Date comparison operator. This field is required and must be + populated when creating new date rule item. + value: + String representing date value to be compared with the rule + variable. Supported date format is YYYY-MM-DD. Times are + reported in the customer's time zone. + offset_in_days: + The relative date value of the right hand side denoted by + number of days offset from now. The value field will override + this field when both are present. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListDateRuleItemInfo) + }) +_sym_db.RegisterMessage(UserListDateRuleItemInfo) + +UserListNumberRuleItemInfo = _reflection.GeneratedProtocolMessageType('UserListNumberRuleItemInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTNUMBERRULEITEMINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A rule item composed of a number operation. + + Attributes: + operator: + Number comparison operator. This field is required and must be + populated when creating a new number rule item. + value: + Number value to be compared with the variable. This field is + required and must be populated when creating a new number rule + item. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListNumberRuleItemInfo) + }) +_sym_db.RegisterMessage(UserListNumberRuleItemInfo) + +UserListStringRuleItemInfo = _reflection.GeneratedProtocolMessageType('UserListStringRuleItemInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTSTRINGRULEITEMINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A rule item composed of a string operation. + + Attributes: + operator: + String comparison operator. This field is required and must be + populated when creating a new string rule item. + value: + The right hand side of the string rule item. For URLs or + referrer URLs, the value can not contain illegal URL chars + such as newlines, quotes, tabs, or parentheses. This field is + required and must be populated when creating a new string rule + item. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListStringRuleItemInfo) + }) +_sym_db.RegisterMessage(UserListStringRuleItemInfo) + +CombinedRuleUserListInfo = _reflection.GeneratedProtocolMessageType('CombinedRuleUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _COMBINEDRULEUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """User lists defined by combining two rules, left operand and right + operand. There are two operators: AND where left operand and right + operand have to be true; AND\_NOT where left operand is true but right + operand is false. + + Attributes: + left_operand: + Left operand of the combined rule. This field is required and + must be populated when creating new combined rule based user + list. + right_operand: + Right operand of the combined rule. This field is required and + must be populated when creating new combined rule based user + list. + rule_operator: + Operator to connect the two operands. Required for creating a + combined rule user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.CombinedRuleUserListInfo) + }) +_sym_db.RegisterMessage(CombinedRuleUserListInfo) + +DateSpecificRuleUserListInfo = _reflection.GeneratedProtocolMessageType('DateSpecificRuleUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _DATESPECIFICRULEUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Visitors of a page during specific dates. + + Attributes: + rule: + Boolean rule that defines visitor of a page. Required for + creating a date specific rule user list. + start_date: + Start date of users visit. If set to 2000-01-01, then the list + includes all users before end\_date. The date's format should + be YYYY-MM-DD. Required for creating a data specific rule + user list. + end_date: + End date of users visit. If set to 2037-12-30, then the list + includes all users after start\_date. The date's format should + be YYYY-MM-DD. Required for creating a data specific rule + user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.DateSpecificRuleUserListInfo) + }) +_sym_db.RegisterMessage(DateSpecificRuleUserListInfo) + +ExpressionRuleUserListInfo = _reflection.GeneratedProtocolMessageType('ExpressionRuleUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _EXPRESSIONRULEUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Visitors of a page. The page visit is defined by one boolean rule + expression. + + Attributes: + rule: + Boolean rule that defines this user list. The rule consists of + a list of rule item groups and each rule item group consists + of a list of rule items. All the rule item groups are ORed or + ANDed together for evaluation based on rule.rule\_type. + Required for creating an expression rule user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.ExpressionRuleUserListInfo) + }) +_sym_db.RegisterMessage(ExpressionRuleUserListInfo) + +RuleBasedUserListInfo = _reflection.GeneratedProtocolMessageType('RuleBasedUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _RULEBASEDUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Representation of a userlist that is generated by a rule. + + Attributes: + prepopulation_status: + The status of pre-population. The field is default to NONE if + not set which means the previous users will not be considered. + If set to REQUESTED, past site visitors or app users who match + the list definition will be included in the list (works on the + Display Network only). This will only add past users from + within the last 30 days, depending on the list's membership + duration and the date when the remarketing tag is added. The + status will be updated to FINISHED once request is processed, + or FAILED if the request fails. + rule_based_user_list: + Subtypes of rule based user lists. + combined_rule_user_list: + User lists defined by combining two rules. There are two + operators: AND, where the left and right operands have to be + true; AND\_NOT where left operand is true but right operand is + false. + date_specific_rule_user_list: + Visitors of a page during specific dates. The visiting periods + are defined as follows: Between start\_date (inclusive) and + end\_date (inclusive); Before end\_date (exclusive) with + start\_date = 2000-01-01; After start\_date (exclusive) with + end\_date = 2037-12-30. + expression_rule_user_list: + Visitors of a page. The page visit is defined by one boolean + rule expression. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.RuleBasedUserListInfo) + }) +_sym_db.RegisterMessage(RuleBasedUserListInfo) + +LogicalUserListInfo = _reflection.GeneratedProtocolMessageType('LogicalUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _LOGICALUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Represents a user list that is a custom combination of user lists. + + Attributes: + rules: + Logical list rules that define this user list. The rules are + defined as a logical operator (ALL/ANY/NONE) and a list of + user lists. All the rules are ANDed when they are evaluated. + Required for creating a logical user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LogicalUserListInfo) + }) +_sym_db.RegisterMessage(LogicalUserListInfo) + +UserListLogicalRuleInfo = _reflection.GeneratedProtocolMessageType('UserListLogicalRuleInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTLOGICALRULEINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """A user list logical rule. A rule has a logical operator (and/or/not) + and a list of user lists as operands. + + Attributes: + operator: + The logical operator of the rule. + rule_operands: + The list of operands of the rule. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListLogicalRuleInfo) + }) +_sym_db.RegisterMessage(UserListLogicalRuleInfo) + +LogicalUserListOperandInfo = _reflection.GeneratedProtocolMessageType('LogicalUserListOperandInfo', (_message.Message,), { + 'DESCRIPTOR' : _LOGICALUSERLISTOPERANDINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Operand of logical user list that consists of a user list. + + Attributes: + user_list: + Resource name of a user list as an operand. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.LogicalUserListOperandInfo) + }) +_sym_db.RegisterMessage(LogicalUserListOperandInfo) + +BasicUserListInfo = _reflection.GeneratedProtocolMessageType('BasicUserListInfo', (_message.Message,), { + 'DESCRIPTOR' : _BASICUSERLISTINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """User list targeting as a collection of conversions or remarketing + actions. + + Attributes: + actions: + Actions associated with this user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.BasicUserListInfo) + }) +_sym_db.RegisterMessage(BasicUserListInfo) + +UserListActionInfo = _reflection.GeneratedProtocolMessageType('UserListActionInfo', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTACTIONINFO, + '__module__' : 'google.ads.googleads_v5.proto.common.user_lists_pb2' + , + '__doc__': """Represents an action type used for building remarketing user lists. + + Attributes: + user_list_action: + Subtypes of user list action. + conversion_action: + A conversion action that's not generated from remarketing. + remarketing_action: + A remarketing action. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.UserListActionInfo) + }) +_sym_db.RegisterMessage(UserListActionInfo) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/user_lists_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/user_lists_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/user_lists_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/common/value_pb2.py b/google/ads/google_ads/v5/proto/common/value_pb2.py new file mode 100644 index 000000000..8a961a32a --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/value_pb2.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/common/value.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/common/value.proto', + package='google.ads.googleads.v5.common', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.commonB\nValueProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Common\312\002\036Google\\Ads\\GoogleAds\\V5\\Common\352\002\"Google::Ads::GoogleAds::V5::Common', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n0google/ads/googleads_v5/proto/common/value.proto\x12\x1egoogle.ads.googleads.v5.common\x1a\x1cgoogle/api/annotations.proto\"\x87\x01\n\x05Value\x12\x17\n\rboolean_value\x18\x01 \x01(\x08H\x00\x12\x15\n\x0bint64_value\x18\x02 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x05 \x01(\tH\x00\x42\x07\n\x05valueB\xe5\x01\n\"com.google.ads.googleads.v5.commonB\nValueProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Common\xea\x02\"Google::Ads::GoogleAds::V5::Commonb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_VALUE = _descriptor.Descriptor( + name='Value', + full_name='google.ads.googleads.v5.common.Value', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='boolean_value', full_name='google.ads.googleads.v5.common.Value.boolean_value', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='int64_value', full_name='google.ads.googleads.v5.common.Value.int64_value', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='float_value', full_name='google.ads.googleads.v5.common.Value.float_value', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='double_value', full_name='google.ads.googleads.v5.common.Value.double_value', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_value', full_name='google.ads.googleads.v5.common.Value.string_value', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='value', full_name='google.ads.googleads.v5.common.Value.value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=115, + serialized_end=250, +) + +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['boolean_value']) +_VALUE.fields_by_name['boolean_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['int64_value']) +_VALUE.fields_by_name['int64_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['float_value']) +_VALUE.fields_by_name['float_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['double_value']) +_VALUE.fields_by_name['double_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['string_value']) +_VALUE.fields_by_name['string_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +DESCRIPTOR.message_types_by_name['Value'] = _VALUE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), { + 'DESCRIPTOR' : _VALUE, + '__module__' : 'google.ads.googleads_v5.proto.common.value_pb2' + , + '__doc__': """A generic data container. + + Attributes: + value: + A value. + boolean_value: + A boolean. + int64_value: + An int64. + float_value: + A float. + double_value: + A double. + string_value: + A string. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.common.Value) + }) +_sym_db.RegisterMessage(Value) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/common/value_pb2_grpc.py b/google/ads/google_ads/v5/proto/common/value_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/common/value_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/__init__.py b/google/ads/google_ads/v5/proto/enums/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/proto/enums/access_reason_pb2.py b/google/ads/google_ads/v5/proto/enums/access_reason_pb2.py new file mode 100644 index 000000000..7d1b160fa --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/access_reason_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/access_reason.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/access_reason.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\021AccessReasonProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/enums/access_reason.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x85\x01\n\x10\x41\x63\x63\x65ssReasonEnum\"q\n\x0c\x41\x63\x63\x65ssReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05OWNED\x10\x02\x12\n\n\x06SHARED\x10\x03\x12\x0c\n\x08LICENSED\x10\x04\x12\x0e\n\nSUBSCRIBED\x10\x05\x12\x0e\n\nAFFILIATED\x10\x06\x42\xe6\x01\n!com.google.ads.googleads.v5.enumsB\x11\x41\x63\x63\x65ssReasonProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCESSREASONENUM_ACCESSREASON = _descriptor.EnumDescriptor( + name='AccessReason', + full_name='google.ads.googleads.v5.enums.AccessReasonEnum.AccessReason', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OWNED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHARED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LICENSED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SUBSCRIBED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AFFILIATED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=141, + serialized_end=254, +) +_sym_db.RegisterEnumDescriptor(_ACCESSREASONENUM_ACCESSREASON) + + +_ACCESSREASONENUM = _descriptor.Descriptor( + name='AccessReasonEnum', + full_name='google.ads.googleads.v5.enums.AccessReasonEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCESSREASONENUM_ACCESSREASON, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=254, +) + +_ACCESSREASONENUM_ACCESSREASON.containing_type = _ACCESSREASONENUM +DESCRIPTOR.message_types_by_name['AccessReasonEnum'] = _ACCESSREASONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccessReasonEnum = _reflection.GeneratedProtocolMessageType('AccessReasonEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCESSREASONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.access_reason_pb2' + , + '__doc__': """Indicates the way the resource such as user list is related to a user.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccessReasonEnum) + }) +_sym_db.RegisterMessage(AccessReasonEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/access_reason_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/access_reason_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/access_reason_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/access_role_pb2.py b/google/ads/google_ads/v5/proto/enums/access_role_pb2.py new file mode 100644 index 000000000..027005d58 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/access_role_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/access_role.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/access_role.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\017AccessRoleProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/access_role.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"t\n\x0e\x41\x63\x63\x65ssRoleEnum\"b\n\nAccessRole\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05\x41\x44MIN\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\r\n\tREAD_ONLY\x10\x04\x12\x0e\n\nEMAIL_ONLY\x10\x05\x42\xe4\x01\n!com.google.ads.googleads.v5.enumsB\x0f\x41\x63\x63\x65ssRoleProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCESSROLEENUM_ACCESSROLE = _descriptor.EnumDescriptor( + name='AccessRole', + full_name='google.ads.googleads.v5.enums.AccessRoleEnum.AccessRole', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADMIN', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STANDARD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='READ_ONLY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMAIL_ONLY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=234, +) +_sym_db.RegisterEnumDescriptor(_ACCESSROLEENUM_ACCESSROLE) + + +_ACCESSROLEENUM = _descriptor.Descriptor( + name='AccessRoleEnum', + full_name='google.ads.googleads.v5.enums.AccessRoleEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCESSROLEENUM_ACCESSROLE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=234, +) + +_ACCESSROLEENUM_ACCESSROLE.containing_type = _ACCESSROLEENUM +DESCRIPTOR.message_types_by_name['AccessRoleEnum'] = _ACCESSROLEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccessRoleEnum = _reflection.GeneratedProtocolMessageType('AccessRoleEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCESSROLEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.access_role_pb2' + , + '__doc__': """Container for enum describing possible access role for user.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccessRoleEnum) + }) +_sym_db.RegisterMessage(AccessRoleEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/access_role_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/access_role_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/access_role_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2.py b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2.py new file mode 100644 index 000000000..0c373c0d8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/account_budget_proposal_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/account_budget_proposal_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB AccountBudgetProposalStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/account_budget_proposal_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xaa\x01\n\x1f\x41\x63\x63ountBudgetProposalStatusEnum\"\x86\x01\n\x1b\x41\x63\x63ountBudgetProposalStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x11\n\rAPPROVED_HELD\x10\x03\x12\x0c\n\x08\x41PPROVED\x10\x04\x12\r\n\tCANCELLED\x10\x05\x12\x0c\n\x08REJECTED\x10\x06\x42\xf5\x01\n!com.google.ads.googleads.v5.enumsB AccountBudgetProposalStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCOUNTBUDGETPROPOSALSTATUSENUM_ACCOUNTBUDGETPROPOSALSTATUS = _descriptor.EnumDescriptor( + name='AccountBudgetProposalStatus', + full_name='google.ads.googleads.v5.enums.AccountBudgetProposalStatusEnum.AccountBudgetProposalStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED_HELD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANCELLED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REJECTED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=174, + serialized_end=308, +) +_sym_db.RegisterEnumDescriptor(_ACCOUNTBUDGETPROPOSALSTATUSENUM_ACCOUNTBUDGETPROPOSALSTATUS) + + +_ACCOUNTBUDGETPROPOSALSTATUSENUM = _descriptor.Descriptor( + name='AccountBudgetProposalStatusEnum', + full_name='google.ads.googleads.v5.enums.AccountBudgetProposalStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCOUNTBUDGETPROPOSALSTATUSENUM_ACCOUNTBUDGETPROPOSALSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=308, +) + +_ACCOUNTBUDGETPROPOSALSTATUSENUM_ACCOUNTBUDGETPROPOSALSTATUS.containing_type = _ACCOUNTBUDGETPROPOSALSTATUSENUM +DESCRIPTOR.message_types_by_name['AccountBudgetProposalStatusEnum'] = _ACCOUNTBUDGETPROPOSALSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccountBudgetProposalStatusEnum = _reflection.GeneratedProtocolMessageType('AccountBudgetProposalStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCOUNTBUDGETPROPOSALSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.account_budget_proposal_status_pb2' + , + '__doc__': """Message describing AccountBudgetProposal statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccountBudgetProposalStatusEnum) + }) +_sym_db.RegisterMessage(AccountBudgetProposalStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2.py b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2.py new file mode 100644 index 000000000..9739b03d6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/account_budget_proposal_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/account_budget_proposal_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\036AccountBudgetProposalTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/enums/account_budget_proposal_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x87\x01\n\x1d\x41\x63\x63ountBudgetProposalTypeEnum\"f\n\x19\x41\x63\x63ountBudgetProposalType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06\x43REATE\x10\x02\x12\n\n\x06UPDATE\x10\x03\x12\x07\n\x03\x45ND\x10\x04\x12\n\n\x06REMOVE\x10\x05\x42\xf3\x01\n!com.google.ads.googleads.v5.enumsB\x1e\x41\x63\x63ountBudgetProposalTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCOUNTBUDGETPROPOSALTYPEENUM_ACCOUNTBUDGETPROPOSALTYPE = _descriptor.EnumDescriptor( + name='AccountBudgetProposalType', + full_name='google.ads.googleads.v5.enums.AccountBudgetProposalTypeEnum.AccountBudgetProposalType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CREATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='END', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=169, + serialized_end=271, +) +_sym_db.RegisterEnumDescriptor(_ACCOUNTBUDGETPROPOSALTYPEENUM_ACCOUNTBUDGETPROPOSALTYPE) + + +_ACCOUNTBUDGETPROPOSALTYPEENUM = _descriptor.Descriptor( + name='AccountBudgetProposalTypeEnum', + full_name='google.ads.googleads.v5.enums.AccountBudgetProposalTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCOUNTBUDGETPROPOSALTYPEENUM_ACCOUNTBUDGETPROPOSALTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=136, + serialized_end=271, +) + +_ACCOUNTBUDGETPROPOSALTYPEENUM_ACCOUNTBUDGETPROPOSALTYPE.containing_type = _ACCOUNTBUDGETPROPOSALTYPEENUM +DESCRIPTOR.message_types_by_name['AccountBudgetProposalTypeEnum'] = _ACCOUNTBUDGETPROPOSALTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccountBudgetProposalTypeEnum = _reflection.GeneratedProtocolMessageType('AccountBudgetProposalTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCOUNTBUDGETPROPOSALTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.account_budget_proposal_type_pb2' + , + '__doc__': """Message describing AccountBudgetProposal types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccountBudgetProposalTypeEnum) + }) +_sym_db.RegisterMessage(AccountBudgetProposalTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_proposal_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2.py b/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2.py new file mode 100644 index 000000000..092a76f78 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/account_budget_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/account_budget_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\030AccountBudgetStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/enums/account_budget_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"x\n\x17\x41\x63\x63ountBudgetStatusEnum\"]\n\x13\x41\x63\x63ountBudgetStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0c\n\x08\x41PPROVED\x10\x03\x12\r\n\tCANCELLED\x10\x04\x42\xed\x01\n!com.google.ads.googleads.v5.enumsB\x18\x41\x63\x63ountBudgetStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCOUNTBUDGETSTATUSENUM_ACCOUNTBUDGETSTATUS = _descriptor.EnumDescriptor( + name='AccountBudgetStatus', + full_name='google.ads.googleads.v5.enums.AccountBudgetStatusEnum.AccountBudgetStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANCELLED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=248, +) +_sym_db.RegisterEnumDescriptor(_ACCOUNTBUDGETSTATUSENUM_ACCOUNTBUDGETSTATUS) + + +_ACCOUNTBUDGETSTATUSENUM = _descriptor.Descriptor( + name='AccountBudgetStatusEnum', + full_name='google.ads.googleads.v5.enums.AccountBudgetStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCOUNTBUDGETSTATUSENUM_ACCOUNTBUDGETSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=248, +) + +_ACCOUNTBUDGETSTATUSENUM_ACCOUNTBUDGETSTATUS.containing_type = _ACCOUNTBUDGETSTATUSENUM +DESCRIPTOR.message_types_by_name['AccountBudgetStatusEnum'] = _ACCOUNTBUDGETSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccountBudgetStatusEnum = _reflection.GeneratedProtocolMessageType('AccountBudgetStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCOUNTBUDGETSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.account_budget_status_pb2' + , + '__doc__': """Message describing AccountBudget statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccountBudgetStatusEnum) + }) +_sym_db.RegisterMessage(AccountBudgetStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_budget_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/account_link_status_pb2.py b/google/ads/google_ads/v5/proto/enums/account_link_status_pb2.py new file mode 100644 index 000000000..60d38869d --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_link_status_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/account_link_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/account_link_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026AccountLinkStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/account_link_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x89\x01\n\x15\x41\x63\x63ountLinkStatusEnum\"p\n\x11\x41\x63\x63ountLinkStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x12\r\n\tREQUESTED\x10\x04\x12\x14\n\x10PENDING_APPROVAL\x10\x05\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16\x41\x63\x63ountLinkStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ACCOUNTLINKSTATUSENUM_ACCOUNTLINKSTATUS = _descriptor.EnumDescriptor( + name='AccountLinkStatus', + full_name='google.ads.googleads.v5.enums.AccountLinkStatusEnum.AccountLinkStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUESTED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING_APPROVAL', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=152, + serialized_end=264, +) +_sym_db.RegisterEnumDescriptor(_ACCOUNTLINKSTATUSENUM_ACCOUNTLINKSTATUS) + + +_ACCOUNTLINKSTATUSENUM = _descriptor.Descriptor( + name='AccountLinkStatusEnum', + full_name='google.ads.googleads.v5.enums.AccountLinkStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ACCOUNTLINKSTATUSENUM_ACCOUNTLINKSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=264, +) + +_ACCOUNTLINKSTATUSENUM_ACCOUNTLINKSTATUS.containing_type = _ACCOUNTLINKSTATUSENUM +DESCRIPTOR.message_types_by_name['AccountLinkStatusEnum'] = _ACCOUNTLINKSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AccountLinkStatusEnum = _reflection.GeneratedProtocolMessageType('AccountLinkStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _ACCOUNTLINKSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.account_link_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of an account link.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AccountLinkStatusEnum) + }) +_sym_db.RegisterMessage(AccountLinkStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/account_link_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/account_link_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/account_link_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2.py new file mode 100644 index 000000000..e3dc83bc2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/ad_customizer_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/ad_customizer_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB!AdCustomizerPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/enums/ad_customizer_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8e\x01\n AdCustomizerPlaceholderFieldEnum\"j\n\x1c\x41\x64\x43ustomizerPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07INTEGER\x10\x02\x12\t\n\x05PRICE\x10\x03\x12\x08\n\x04\x44\x41TE\x10\x04\x12\n\n\x06STRING\x10\x05\x42\xf6\x01\n!com.google.ads.googleads.v5.enumsB!AdCustomizerPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADCUSTOMIZERPLACEHOLDERFIELDENUM_ADCUSTOMIZERPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='AdCustomizerPlaceholderField', + full_name='google.ads.googleads.v5.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INTEGER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=175, + serialized_end=281, +) +_sym_db.RegisterEnumDescriptor(_ADCUSTOMIZERPLACEHOLDERFIELDENUM_ADCUSTOMIZERPLACEHOLDERFIELD) + + +_ADCUSTOMIZERPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='AdCustomizerPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.AdCustomizerPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADCUSTOMIZERPLACEHOLDERFIELDENUM_ADCUSTOMIZERPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=139, + serialized_end=281, +) + +_ADCUSTOMIZERPLACEHOLDERFIELDENUM_ADCUSTOMIZERPLACEHOLDERFIELD.containing_type = _ADCUSTOMIZERPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['AdCustomizerPlaceholderFieldEnum'] = _ADCUSTOMIZERPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdCustomizerPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('AdCustomizerPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADCUSTOMIZERPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.ad_customizer_placeholder_field_pb2' + , + '__doc__': """Values for Ad Customizer placeholder fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AdCustomizerPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(AdCustomizerPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/ad_customizer_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2.py b/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2.py new file mode 100644 index 000000000..856dffab3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/ad_group_ad_rotation_mode.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/ad_group_ad_rotation_mode.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032AdGroupAdRotationModeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/ad_group_ad_rotation_mode.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"t\n\x19\x41\x64GroupAdRotationModeEnum\"W\n\x15\x41\x64GroupAdRotationMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08OPTIMIZE\x10\x02\x12\x12\n\x0eROTATE_FOREVER\x10\x03\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1a\x41\x64GroupAdRotationModeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADGROUPADROTATIONMODEENUM_ADGROUPADROTATIONMODE = _descriptor.EnumDescriptor( + name='AdGroupAdRotationMode', + full_name='google.ads.googleads.v5.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPTIMIZE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ROTATE_FOREVER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=248, +) +_sym_db.RegisterEnumDescriptor(_ADGROUPADROTATIONMODEENUM_ADGROUPADROTATIONMODE) + + +_ADGROUPADROTATIONMODEENUM = _descriptor.Descriptor( + name='AdGroupAdRotationModeEnum', + full_name='google.ads.googleads.v5.enums.AdGroupAdRotationModeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADGROUPADROTATIONMODEENUM_ADGROUPADROTATIONMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=248, +) + +_ADGROUPADROTATIONMODEENUM_ADGROUPADROTATIONMODE.containing_type = _ADGROUPADROTATIONMODEENUM +DESCRIPTOR.message_types_by_name['AdGroupAdRotationModeEnum'] = _ADGROUPADROTATIONMODEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupAdRotationModeEnum = _reflection.GeneratedProtocolMessageType('AdGroupAdRotationModeEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADROTATIONMODEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.ad_group_ad_rotation_mode_pb2' + , + '__doc__': """Container for enum describing possible ad rotation modes of ads within + an ad group.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.AdGroupAdRotationModeEnum) + }) +_sym_db.RegisterMessage(AdGroupAdRotationModeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/ad_group_ad_rotation_mode_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/ad_group_ad_status_pb2.py b/google/ads/google_ads/v5/proto/enums/ad_group_ad_status_pb2.py new file mode 100644 index 000000000..1692d8168 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/ad_group_ad_status_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/ad_group_ad_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/ad_group_ad_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\024AdGroupAdStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/billing_setup_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x89\x01\n\x16\x42illingSetupStatusEnum\"o\n\x12\x42illingSetupStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x11\n\rAPPROVED_HELD\x10\x03\x12\x0c\n\x08\x41PPROVED\x10\x04\x12\r\n\tCANCELLED\x10\x05\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17\x42illingSetupStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BILLINGSETUPSTATUSENUM_BILLINGSETUPSTATUS = _descriptor.EnumDescriptor( + name='BillingSetupStatus', + full_name='google.ads.googleads.v5.enums.BillingSetupStatusEnum.BillingSetupStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED_HELD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANCELLED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=265, +) +_sym_db.RegisterEnumDescriptor(_BILLINGSETUPSTATUSENUM_BILLINGSETUPSTATUS) + + +_BILLINGSETUPSTATUSENUM = _descriptor.Descriptor( + name='BillingSetupStatusEnum', + full_name='google.ads.googleads.v5.enums.BillingSetupStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BILLINGSETUPSTATUSENUM_BILLINGSETUPSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=265, +) + +_BILLINGSETUPSTATUSENUM_BILLINGSETUPSTATUS.containing_type = _BILLINGSETUPSTATUSENUM +DESCRIPTOR.message_types_by_name['BillingSetupStatusEnum'] = _BILLINGSETUPSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BillingSetupStatusEnum = _reflection.GeneratedProtocolMessageType('BillingSetupStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _BILLINGSETUPSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.billing_setup_status_pb2' + , + '__doc__': """Message describing BillingSetup statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BillingSetupStatusEnum) + }) +_sym_db.RegisterMessage(BillingSetupStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/billing_setup_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/billing_setup_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/billing_setup_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2.py b/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2.py new file mode 100644 index 000000000..10ce4b32c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/brand_safety_suitability.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/brand_safety_suitability.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033BrandSafetySuitabilityProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/brand_safety_suitability.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x9b\x01\n\x1a\x42randSafetySuitabilityEnum\"}\n\x16\x42randSafetySuitability\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12\x45XPANDED_INVENTORY\x10\x02\x12\x16\n\x12STANDARD_INVENTORY\x10\x03\x12\x15\n\x11LIMITED_INVENTORY\x10\x04\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1b\x42randSafetySuitabilityProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BRANDSAFETYSUITABILITYENUM_BRANDSAFETYSUITABILITY = _descriptor.EnumDescriptor( + name='BrandSafetySuitability', + full_name='google.ads.googleads.v5.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPANDED_INVENTORY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STANDARD_INVENTORY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIMITED_INVENTORY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=162, + serialized_end=287, +) +_sym_db.RegisterEnumDescriptor(_BRANDSAFETYSUITABILITYENUM_BRANDSAFETYSUITABILITY) + + +_BRANDSAFETYSUITABILITYENUM = _descriptor.Descriptor( + name='BrandSafetySuitabilityEnum', + full_name='google.ads.googleads.v5.enums.BrandSafetySuitabilityEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BRANDSAFETYSUITABILITYENUM_BRANDSAFETYSUITABILITY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=287, +) + +_BRANDSAFETYSUITABILITYENUM_BRANDSAFETYSUITABILITY.containing_type = _BRANDSAFETYSUITABILITYENUM +DESCRIPTOR.message_types_by_name['BrandSafetySuitabilityEnum'] = _BRANDSAFETYSUITABILITYENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BrandSafetySuitabilityEnum = _reflection.GeneratedProtocolMessageType('BrandSafetySuitabilityEnum', (_message.Message,), { + 'DESCRIPTOR' : _BRANDSAFETYSUITABILITYENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.brand_safety_suitability_pb2' + , + '__doc__': """Container for enum with 3-Tier brand safety suitability control.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BrandSafetySuitabilityEnum) + }) +_sym_db.RegisterMessage(BrandSafetySuitabilityEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/brand_safety_suitability_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2.py b/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2.py new file mode 100644 index 000000000..1a6afb0c2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/budget_campaign_association_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/budget_campaign_association_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB$BudgetCampaignAssociationStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nLgoogle/ads/googleads_v5/proto/enums/budget_campaign_association_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x80\x01\n#BudgetCampaignAssociationStatusEnum\"Y\n\x1f\x42udgetCampaignAssociationStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xf9\x01\n!com.google.ads.googleads.v5.enumsB$BudgetCampaignAssociationStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BUDGETCAMPAIGNASSOCIATIONSTATUSENUM_BUDGETCAMPAIGNASSOCIATIONSTATUS = _descriptor.EnumDescriptor( + name='BudgetCampaignAssociationStatus', + full_name='google.ads.googleads.v5.enums.BudgetCampaignAssociationStatusEnum.BudgetCampaignAssociationStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=181, + serialized_end=270, +) +_sym_db.RegisterEnumDescriptor(_BUDGETCAMPAIGNASSOCIATIONSTATUSENUM_BUDGETCAMPAIGNASSOCIATIONSTATUS) + + +_BUDGETCAMPAIGNASSOCIATIONSTATUSENUM = _descriptor.Descriptor( + name='BudgetCampaignAssociationStatusEnum', + full_name='google.ads.googleads.v5.enums.BudgetCampaignAssociationStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUDGETCAMPAIGNASSOCIATIONSTATUSENUM_BUDGETCAMPAIGNASSOCIATIONSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=142, + serialized_end=270, +) + +_BUDGETCAMPAIGNASSOCIATIONSTATUSENUM_BUDGETCAMPAIGNASSOCIATIONSTATUS.containing_type = _BUDGETCAMPAIGNASSOCIATIONSTATUSENUM +DESCRIPTOR.message_types_by_name['BudgetCampaignAssociationStatusEnum'] = _BUDGETCAMPAIGNASSOCIATIONSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BudgetCampaignAssociationStatusEnum = _reflection.GeneratedProtocolMessageType('BudgetCampaignAssociationStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETCAMPAIGNASSOCIATIONSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.budget_campaign_association_status_pb2' + , + '__doc__': """Message describing the status of the association between the Budget + and the Campaign.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BudgetCampaignAssociationStatusEnum) + }) +_sym_db.RegisterMessage(BudgetCampaignAssociationStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_campaign_association_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2.py b/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2.py new file mode 100644 index 000000000..e9c1936d1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/budget_delivery_method.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/budget_delivery_method.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031BudgetDeliveryMethodProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/enums/budget_delivery_method.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"o\n\x18\x42udgetDeliveryMethodEnum\"S\n\x14\x42udgetDeliveryMethod\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x0f\n\x0b\x41\x43\x43\x45LERATED\x10\x03\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19\x42udgetDeliveryMethodProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BUDGETDELIVERYMETHODENUM_BUDGETDELIVERYMETHOD = _descriptor.EnumDescriptor( + name='BudgetDeliveryMethod', + full_name='google.ads.googleads.v5.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STANDARD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCELERATED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=240, +) +_sym_db.RegisterEnumDescriptor(_BUDGETDELIVERYMETHODENUM_BUDGETDELIVERYMETHOD) + + +_BUDGETDELIVERYMETHODENUM = _descriptor.Descriptor( + name='BudgetDeliveryMethodEnum', + full_name='google.ads.googleads.v5.enums.BudgetDeliveryMethodEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUDGETDELIVERYMETHODENUM_BUDGETDELIVERYMETHOD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=240, +) + +_BUDGETDELIVERYMETHODENUM_BUDGETDELIVERYMETHOD.containing_type = _BUDGETDELIVERYMETHODENUM +DESCRIPTOR.message_types_by_name['BudgetDeliveryMethodEnum'] = _BUDGETDELIVERYMETHODENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BudgetDeliveryMethodEnum = _reflection.GeneratedProtocolMessageType('BudgetDeliveryMethodEnum', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETDELIVERYMETHODENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.budget_delivery_method_pb2' + , + '__doc__': """Message describing Budget delivery methods. A delivery method + determines the rate at which the Budget is spent.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BudgetDeliveryMethodEnum) + }) +_sym_db.RegisterMessage(BudgetDeliveryMethodEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_delivery_method_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/budget_period_pb2.py b/google/ads/google_ads/v5/proto/enums/budget_period_pb2.py new file mode 100644 index 000000000..d2b0d08d0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_period_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/budget_period.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/budget_period.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\021BudgetPeriodProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/enums/budget_period.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"^\n\x10\x42udgetPeriodEnum\"J\n\x0c\x42udgetPeriod\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05\x44\x41ILY\x10\x02\x12\x11\n\rCUSTOM_PERIOD\x10\x05\x42\xe6\x01\n!com.google.ads.googleads.v5.enumsB\x11\x42udgetPeriodProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BUDGETPERIODENUM_BUDGETPERIOD = _descriptor.EnumDescriptor( + name='BudgetPeriod', + full_name='google.ads.googleads.v5.enums.BudgetPeriodEnum.BudgetPeriod', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DAILY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_PERIOD', index=3, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=214, +) +_sym_db.RegisterEnumDescriptor(_BUDGETPERIODENUM_BUDGETPERIOD) + + +_BUDGETPERIODENUM = _descriptor.Descriptor( + name='BudgetPeriodEnum', + full_name='google.ads.googleads.v5.enums.BudgetPeriodEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUDGETPERIODENUM_BUDGETPERIOD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=214, +) + +_BUDGETPERIODENUM_BUDGETPERIOD.containing_type = _BUDGETPERIODENUM +DESCRIPTOR.message_types_by_name['BudgetPeriodEnum'] = _BUDGETPERIODENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BudgetPeriodEnum = _reflection.GeneratedProtocolMessageType('BudgetPeriodEnum', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETPERIODENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.budget_period_pb2' + , + '__doc__': """Message describing Budget period.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BudgetPeriodEnum) + }) +_sym_db.RegisterMessage(BudgetPeriodEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/budget_period_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/budget_period_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_period_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/budget_status_pb2.py b/google/ads/google_ads/v5/proto/enums/budget_status_pb2.py new file mode 100644 index 000000000..4fa5b3a3b --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/budget_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/budget_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\021BudgetStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/enums/budget_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"Z\n\x10\x42udgetStatusEnum\"F\n\x0c\x42udgetStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xe6\x01\n!com.google.ads.googleads.v5.enumsB\x11\x42udgetStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BUDGETSTATUSENUM_BUDGETSTATUS = _descriptor.EnumDescriptor( + name='BudgetStatus', + full_name='google.ads.googleads.v5.enums.BudgetStatusEnum.BudgetStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=210, +) +_sym_db.RegisterEnumDescriptor(_BUDGETSTATUSENUM_BUDGETSTATUS) + + +_BUDGETSTATUSENUM = _descriptor.Descriptor( + name='BudgetStatusEnum', + full_name='google.ads.googleads.v5.enums.BudgetStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUDGETSTATUSENUM_BUDGETSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=210, +) + +_BUDGETSTATUSENUM_BUDGETSTATUS.containing_type = _BUDGETSTATUSENUM +DESCRIPTOR.message_types_by_name['BudgetStatusEnum'] = _BUDGETSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BudgetStatusEnum = _reflection.GeneratedProtocolMessageType('BudgetStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.budget_status_pb2' + , + '__doc__': """Message describing a Budget status""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BudgetStatusEnum) + }) +_sym_db.RegisterMessage(BudgetStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/budget_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/budget_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/budget_type_pb2.py b/google/ads/google_ads/v5/proto/enums/budget_type_pb2.py new file mode 100644 index 000000000..d37723a67 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/budget_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/budget_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\017BudgetTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/budget_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"s\n\x0e\x42udgetTypeEnum\"a\n\nBudgetType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x18\n\x14HOTEL_ADS_COMMISSION\x10\x03\x12\r\n\tFIXED_CPA\x10\x04\x42\xe4\x01\n!com.google.ads.googleads.v5.enumsB\x0f\x42udgetTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BUDGETTYPEENUM_BUDGETTYPE = _descriptor.EnumDescriptor( + name='BudgetType', + full_name='google.ads.googleads.v5.enums.BudgetTypeEnum.BudgetType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STANDARD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_ADS_COMMISSION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIXED_CPA', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=233, +) +_sym_db.RegisterEnumDescriptor(_BUDGETTYPEENUM_BUDGETTYPE) + + +_BUDGETTYPEENUM = _descriptor.Descriptor( + name='BudgetTypeEnum', + full_name='google.ads.googleads.v5.enums.BudgetTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUDGETTYPEENUM_BUDGETTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=233, +) + +_BUDGETTYPEENUM_BUDGETTYPE.containing_type = _BUDGETTYPEENUM +DESCRIPTOR.message_types_by_name['BudgetTypeEnum'] = _BUDGETTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BudgetTypeEnum = _reflection.GeneratedProtocolMessageType('BudgetTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _BUDGETTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.budget_type_pb2' + , + '__doc__': """Describes Budget types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.BudgetTypeEnum) + }) +_sym_db.RegisterMessage(BudgetTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/budget_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/budget_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/budget_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2.py b/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2.py new file mode 100644 index 000000000..a10ed2c82 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/call_conversion_reporting_state.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/call_conversion_reporting_state.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB!CallConversionReportingStateProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/enums/call_conversion_reporting_state.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xcc\x01\n CallConversionReportingStateEnum\"\xa7\x01\n\x1c\x43\x61llConversionReportingState\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12,\n(USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION\x10\x03\x12-\n)USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION\x10\x04\x42\xf6\x01\n!com.google.ads.googleads.v5.enumsB!CallConversionReportingStateProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE = _descriptor.EnumDescriptor( + name='CallConversionReportingState', + full_name='google.ads.googleads.v5.enums.CallConversionReportingStateEnum.CallConversionReportingState', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=176, + serialized_end=343, +) +_sym_db.RegisterEnumDescriptor(_CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE) + + +_CALLCONVERSIONREPORTINGSTATEENUM = _descriptor.Descriptor( + name='CallConversionReportingStateEnum', + full_name='google.ads.googleads.v5.enums.CallConversionReportingStateEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=139, + serialized_end=343, +) + +_CALLCONVERSIONREPORTINGSTATEENUM_CALLCONVERSIONREPORTINGSTATE.containing_type = _CALLCONVERSIONREPORTINGSTATEENUM +DESCRIPTOR.message_types_by_name['CallConversionReportingStateEnum'] = _CALLCONVERSIONREPORTINGSTATEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CallConversionReportingStateEnum = _reflection.GeneratedProtocolMessageType('CallConversionReportingStateEnum', (_message.Message,), { + 'DESCRIPTOR' : _CALLCONVERSIONREPORTINGSTATEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.call_conversion_reporting_state_pb2' + , + '__doc__': """Container for enum describing possible data types for call conversion + reporting state.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CallConversionReportingStateEnum) + }) +_sym_db.RegisterMessage(CallConversionReportingStateEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/call_conversion_reporting_state_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2.py new file mode 100644 index 000000000..ba1bba2b6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/call_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/call_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031CallPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/enums/call_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xba\x01\n\x18\x43\x61llPlaceholderFieldEnum\"\x9d\x01\n\x14\x43\x61llPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cPHONE_NUMBER\x10\x02\x12\x10\n\x0c\x43OUNTRY_CODE\x10\x03\x12\x0b\n\x07TRACKED\x10\x04\x12\x16\n\x12\x43ONVERSION_TYPE_ID\x10\x05\x12\x1e\n\x1a\x43ONVERSION_REPORTING_STATE\x10\x06\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19\x43\x61llPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CALLPLACEHOLDERFIELDENUM_CALLPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='CallPlaceholderField', + full_name='google.ads.googleads.v5.enums.CallPlaceholderFieldEnum.CallPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTRY_CODE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TYPE_ID', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_REPORTING_STATE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=316, +) +_sym_db.RegisterEnumDescriptor(_CALLPLACEHOLDERFIELDENUM_CALLPLACEHOLDERFIELD) + + +_CALLPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='CallPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.CallPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CALLPLACEHOLDERFIELDENUM_CALLPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=316, +) + +_CALLPLACEHOLDERFIELDENUM_CALLPLACEHOLDERFIELD.containing_type = _CALLPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['CallPlaceholderFieldEnum'] = _CALLPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CallPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('CallPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _CALLPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.call_placeholder_field_pb2' + , + '__doc__': """Values for Call placeholder fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CallPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(CallPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/call_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2.py new file mode 100644 index 000000000..33300e480 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/callout_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/callout_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034CalloutPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/callout_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"h\n\x1b\x43\x61lloutPlaceholderFieldEnum\"I\n\x17\x43\x61lloutPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0c\x43\x41LLOUT_TEXT\x10\x02\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1c\x43\x61lloutPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CALLOUTPLACEHOLDERFIELDENUM_CALLOUTPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='CalloutPlaceholderField', + full_name='google.ads.googleads.v5.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLOUT_TEXT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=236, +) +_sym_db.RegisterEnumDescriptor(_CALLOUTPLACEHOLDERFIELDENUM_CALLOUTPLACEHOLDERFIELD) + + +_CALLOUTPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='CalloutPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.CalloutPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CALLOUTPLACEHOLDERFIELDENUM_CALLOUTPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=236, +) + +_CALLOUTPLACEHOLDERFIELDENUM_CALLOUTPLACEHOLDERFIELD.containing_type = _CALLOUTPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['CalloutPlaceholderFieldEnum'] = _CALLOUTPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CalloutPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('CalloutPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _CALLOUTPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.callout_placeholder_field_pb2' + , + '__doc__': """Values for Callout placeholder fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CalloutPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(CalloutPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/callout_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2.py new file mode 100644 index 000000000..a7b07b453 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_criterion_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_criterion_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034CampaignCriterionStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/campaign_criterion_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"|\n\x1b\x43\x61mpaignCriterionStatusEnum\"]\n\x17\x43\x61mpaignCriterionStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\n\n\x06PAUSED\x10\x03\x12\x0b\n\x07REMOVED\x10\x04\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1c\x43\x61mpaignCriterionStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNCRITERIONSTATUSENUM_CAMPAIGNCRITERIONSTATUS = _descriptor.EnumDescriptor( + name='CampaignCriterionStatus', + full_name='google.ads.googleads.v5.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAUSED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=256, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNCRITERIONSTATUSENUM_CAMPAIGNCRITERIONSTATUS) + + +_CAMPAIGNCRITERIONSTATUSENUM = _descriptor.Descriptor( + name='CampaignCriterionStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignCriterionStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNCRITERIONSTATUSENUM_CAMPAIGNCRITERIONSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=256, +) + +_CAMPAIGNCRITERIONSTATUSENUM_CAMPAIGNCRITERIONSTATUS.containing_type = _CAMPAIGNCRITERIONSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignCriterionStatusEnum'] = _CAMPAIGNCRITERIONSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterionStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignCriterionStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNCRITERIONSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_criterion_status_pb2' + , + '__doc__': """Message describing CampaignCriterion statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignCriterionStatusEnum) + }) +_sym_db.RegisterMessage(CampaignCriterionStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_criterion_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2.py new file mode 100644 index 000000000..d8e4cc0d5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_draft_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_draft_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\030CampaignDraftStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/enums/campaign_draft_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x9a\x01\n\x17\x43\x61mpaignDraftStatusEnum\"\x7f\n\x13\x43\x61mpaignDraftStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08PROPOSED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x12\r\n\tPROMOTING\x10\x05\x12\x0c\n\x08PROMOTED\x10\x04\x12\x12\n\x0ePROMOTE_FAILED\x10\x06\x42\xed\x01\n!com.google.ads.googleads.v5.enumsB\x18\x43\x61mpaignDraftStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNDRAFTSTATUSENUM_CAMPAIGNDRAFTSTATUS = _descriptor.EnumDescriptor( + name='CampaignDraftStatus', + full_name='google.ads.googleads.v5.enums.CampaignDraftStatusEnum.CampaignDraftStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROPOSED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTING', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTED', index=5, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTE_FAILED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=156, + serialized_end=283, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNDRAFTSTATUSENUM_CAMPAIGNDRAFTSTATUS) + + +_CAMPAIGNDRAFTSTATUSENUM = _descriptor.Descriptor( + name='CampaignDraftStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignDraftStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNDRAFTSTATUSENUM_CAMPAIGNDRAFTSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=283, +) + +_CAMPAIGNDRAFTSTATUSENUM_CAMPAIGNDRAFTSTATUS.containing_type = _CAMPAIGNDRAFTSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignDraftStatusEnum'] = _CAMPAIGNDRAFTSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignDraftStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignDraftStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNDRAFTSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_draft_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a campaign draft.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignDraftStatusEnum) + }) +_sym_db.RegisterMessage(CampaignDraftStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_draft_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2.py new file mode 100644 index 000000000..b6498967a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_experiment_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_experiment_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035CampaignExperimentStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/campaign_experiment_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xf6\x01\n\x1c\x43\x61mpaignExperimentStatusEnum\"\xd5\x01\n\x18\x43\x61mpaignExperimentStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cINITIALIZING\x10\x02\x12\x19\n\x15INITIALIZATION_FAILED\x10\x08\x12\x0b\n\x07\x45NABLED\x10\x03\x12\r\n\tGRADUATED\x10\x04\x12\x0b\n\x07REMOVED\x10\x05\x12\r\n\tPROMOTING\x10\x06\x12\x14\n\x10PROMOTION_FAILED\x10\t\x12\x0c\n\x08PROMOTED\x10\x07\x12\x12\n\x0e\x45NDED_MANUALLY\x10\nB\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x43\x61mpaignExperimentStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNEXPERIMENTSTATUSENUM_CAMPAIGNEXPERIMENTSTATUS = _descriptor.EnumDescriptor( + name='CampaignExperimentStatus', + full_name='google.ads.googleads.v5.enums.CampaignExperimentStatusEnum.CampaignExperimentStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INITIALIZING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INITIALIZATION_FAILED', index=3, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=4, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GRADUATED', index=5, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=6, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTING', index=7, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_FAILED', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTED', index=9, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENDED_MANUALLY', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=167, + serialized_end=380, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNEXPERIMENTSTATUSENUM_CAMPAIGNEXPERIMENTSTATUS) + + +_CAMPAIGNEXPERIMENTSTATUSENUM = _descriptor.Descriptor( + name='CampaignExperimentStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignExperimentStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNEXPERIMENTSTATUSENUM_CAMPAIGNEXPERIMENTSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=380, +) + +_CAMPAIGNEXPERIMENTSTATUSENUM_CAMPAIGNEXPERIMENTSTATUS.containing_type = _CAMPAIGNEXPERIMENTSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignExperimentStatusEnum'] = _CAMPAIGNEXPERIMENTSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExperimentStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignExperimentStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENTSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_experiment_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a campaign + experiment.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignExperimentStatusEnum) + }) +_sym_db.RegisterMessage(CampaignExperimentStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2.py new file mode 100644 index 000000000..a06cf21b6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_experiment_traffic_split_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_experiment_traffic_split_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\'CampaignExperimentTrafficSplitTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nPgoogle/ads/googleads_v5/proto/enums/campaign_experiment_traffic_split_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8a\x01\n&CampaignExperimentTrafficSplitTypeEnum\"`\n\"CampaignExperimentTrafficSplitType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cRANDOM_QUERY\x10\x02\x12\n\n\x06\x43OOKIE\x10\x03\x42\xfc\x01\n!com.google.ads.googleads.v5.enumsB\'CampaignExperimentTrafficSplitTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPE = _descriptor.EnumDescriptor( + name='CampaignExperimentTrafficSplitType', + full_name='google.ads.googleads.v5.enums.CampaignExperimentTrafficSplitTypeEnum.CampaignExperimentTrafficSplitType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RANDOM_QUERY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COOKIE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=188, + serialized_end=284, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPE) + + +_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM = _descriptor.Descriptor( + name='CampaignExperimentTrafficSplitTypeEnum', + full_name='google.ads.googleads.v5.enums.CampaignExperimentTrafficSplitTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=146, + serialized_end=284, +) + +_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPE.containing_type = _CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM +DESCRIPTOR.message_types_by_name['CampaignExperimentTrafficSplitTypeEnum'] = _CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExperimentTrafficSplitTypeEnum = _reflection.GeneratedProtocolMessageType('CampaignExperimentTrafficSplitTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_experiment_traffic_split_type_pb2' + , + '__doc__': """Container for enum describing campaign experiment traffic split type.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignExperimentTrafficSplitTypeEnum) + }) +_sym_db.RegisterMessage(CampaignExperimentTrafficSplitTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_traffic_split_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2.py new file mode 100644 index 000000000..f4f9bb11e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_experiment_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_experiment_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033CampaignExperimentTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/campaign_experiment_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"y\n\x1a\x43\x61mpaignExperimentTypeEnum\"[\n\x16\x43\x61mpaignExperimentType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04\x42\x41SE\x10\x02\x12\t\n\x05\x44RAFT\x10\x03\x12\x0e\n\nEXPERIMENT\x10\x04\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1b\x43\x61mpaignExperimentTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNEXPERIMENTTYPEENUM_CAMPAIGNEXPERIMENTTYPE = _descriptor.EnumDescriptor( + name='CampaignExperimentType', + full_name='google.ads.googleads.v5.enums.CampaignExperimentTypeEnum.CampaignExperimentType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BASE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DRAFT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPERIMENT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=252, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNEXPERIMENTTYPEENUM_CAMPAIGNEXPERIMENTTYPE) + + +_CAMPAIGNEXPERIMENTTYPEENUM = _descriptor.Descriptor( + name='CampaignExperimentTypeEnum', + full_name='google.ads.googleads.v5.enums.CampaignExperimentTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNEXPERIMENTTYPEENUM_CAMPAIGNEXPERIMENTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=252, +) + +_CAMPAIGNEXPERIMENTTYPEENUM_CAMPAIGNEXPERIMENTTYPE.containing_type = _CAMPAIGNEXPERIMENTTYPEENUM +DESCRIPTOR.message_types_by_name['CampaignExperimentTypeEnum'] = _CAMPAIGNEXPERIMENTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExperimentTypeEnum = _reflection.GeneratedProtocolMessageType('CampaignExperimentTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_experiment_type_pb2' + , + '__doc__': """Container for enum describing campaign experiment type.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignExperimentTypeEnum) + }) +_sym_db.RegisterMessage(CampaignExperimentTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_experiment_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2.py new file mode 100644 index 000000000..1ccaff6c3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_serving_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_serving_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032CampaignServingStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/campaign_serving_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x90\x01\n\x19\x43\x61mpaignServingStatusEnum\"s\n\x15\x43\x61mpaignServingStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07SERVING\x10\x02\x12\x08\n\x04NONE\x10\x03\x12\t\n\x05\x45NDED\x10\x04\x12\x0b\n\x07PENDING\x10\x05\x12\r\n\tSUSPENDED\x10\x06\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1a\x43\x61mpaignServingStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS = _descriptor.EnumDescriptor( + name='CampaignServingStatus', + full_name='google.ads.googleads.v5.enums.CampaignServingStatusEnum.CampaignServingStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NONE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENDED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SUSPENDED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=275, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS) + + +_CAMPAIGNSERVINGSTATUSENUM = _descriptor.Descriptor( + name='CampaignServingStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignServingStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=275, +) + +_CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS.containing_type = _CAMPAIGNSERVINGSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignServingStatusEnum'] = _CAMPAIGNSERVINGSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignServingStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignServingStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSERVINGSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_serving_status_pb2' + , + '__doc__': """Message describing Campaign serving statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignServingStatusEnum) + }) +_sym_db.RegisterMessage(CampaignServingStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_serving_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2.py new file mode 100644 index 000000000..ac1791da3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_shared_set_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_shared_set_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034CampaignSharedSetStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/campaign_shared_set_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"p\n\x1b\x43\x61mpaignSharedSetStatusEnum\"Q\n\x17\x43\x61mpaignSharedSetStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1c\x43\x61mpaignSharedSetStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNSHAREDSETSTATUSENUM_CAMPAIGNSHAREDSETSTATUS = _descriptor.EnumDescriptor( + name='CampaignSharedSetStatus', + full_name='google.ads.googleads.v5.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=164, + serialized_end=245, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNSHAREDSETSTATUSENUM_CAMPAIGNSHAREDSETSTATUS) + + +_CAMPAIGNSHAREDSETSTATUSENUM = _descriptor.Descriptor( + name='CampaignSharedSetStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignSharedSetStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNSHAREDSETSTATUSENUM_CAMPAIGNSHAREDSETSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=245, +) + +_CAMPAIGNSHAREDSETSTATUSENUM_CAMPAIGNSHAREDSETSTATUS.containing_type = _CAMPAIGNSHAREDSETSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignSharedSetStatusEnum'] = _CAMPAIGNSHAREDSETSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignSharedSetStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignSharedSetStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSHAREDSETSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_shared_set_status_pb2' + , + '__doc__': """Container for enum describing types of campaign shared set statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignSharedSetStatusEnum) + }) +_sym_db.RegisterMessage(CampaignSharedSetStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_shared_set_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/campaign_status_pb2.py b/google/ads/google_ads/v5/proto/enums/campaign_status_pb2.py new file mode 100644 index 000000000..b0f7ec206 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_status_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/campaign_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/campaign_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\023CampaignStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/enums/campaign_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"j\n\x12\x43\x61mpaignStatusEnum\"T\n\x0e\x43\x61mpaignStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\n\n\x06PAUSED\x10\x03\x12\x0b\n\x07REMOVED\x10\x04\x42\xe8\x01\n!com.google.ads.googleads.v5.enumsB\x13\x43\x61mpaignStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS = _descriptor.EnumDescriptor( + name='CampaignStatus', + full_name='google.ads.googleads.v5.enums.CampaignStatusEnum.CampaignStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAUSED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=228, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS) + + +_CAMPAIGNSTATUSENUM = _descriptor.Descriptor( + name='CampaignStatusEnum', + full_name='google.ads.googleads.v5.enums.CampaignStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=228, +) + +_CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS.containing_type = _CAMPAIGNSTATUSENUM +DESCRIPTOR.message_types_by_name['CampaignStatusEnum'] = _CAMPAIGNSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignStatusEnum = _reflection.GeneratedProtocolMessageType('CampaignStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.campaign_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a campaign.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CampaignStatusEnum) + }) +_sym_db.RegisterMessage(CampaignStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/campaign_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/campaign_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/campaign_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2.py b/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2.py new file mode 100644 index 000000000..4c07d9865 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/change_status_operation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/change_status_operation.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032ChangeStatusOperationProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/change_status_operation.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"w\n\x19\x43hangeStatusOperationEnum\"Z\n\x15\x43hangeStatusOperation\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05\x41\x44\x44\x45\x44\x10\x02\x12\x0b\n\x07\x43HANGED\x10\x03\x12\x0b\n\x07REMOVED\x10\x04\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1a\x43hangeStatusOperationProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CHANGESTATUSOPERATIONENUM_CHANGESTATUSOPERATION = _descriptor.EnumDescriptor( + name='ChangeStatusOperation', + full_name='google.ads.googleads.v5.enums.ChangeStatusOperationEnum.ChangeStatusOperation', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CHANGED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=249, +) +_sym_db.RegisterEnumDescriptor(_CHANGESTATUSOPERATIONENUM_CHANGESTATUSOPERATION) + + +_CHANGESTATUSOPERATIONENUM = _descriptor.Descriptor( + name='ChangeStatusOperationEnum', + full_name='google.ads.googleads.v5.enums.ChangeStatusOperationEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CHANGESTATUSOPERATIONENUM_CHANGESTATUSOPERATION, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=249, +) + +_CHANGESTATUSOPERATIONENUM_CHANGESTATUSOPERATION.containing_type = _CHANGESTATUSOPERATIONENUM +DESCRIPTOR.message_types_by_name['ChangeStatusOperationEnum'] = _CHANGESTATUSOPERATIONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ChangeStatusOperationEnum = _reflection.GeneratedProtocolMessageType('ChangeStatusOperationEnum', (_message.Message,), { + 'DESCRIPTOR' : _CHANGESTATUSOPERATIONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.change_status_operation_pb2' + , + '__doc__': """Container for enum describing operations for the ChangeStatus + resource.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ChangeStatusOperationEnum) + }) +_sym_db.RegisterMessage(ChangeStatusOperationEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/change_status_operation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2.py b/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2.py new file mode 100644 index 000000000..fa99d2ec4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/change_status_resource_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/change_status_resource_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035ChangeStatusResourceTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/change_status_resource_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x90\x02\n\x1c\x43hangeStatusResourceTypeEnum\"\xef\x01\n\x18\x43hangeStatusResourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x41\x44_GROUP\x10\x03\x12\x0f\n\x0b\x41\x44_GROUP_AD\x10\x04\x12\x16\n\x12\x41\x44_GROUP_CRITERION\x10\x05\x12\x0c\n\x08\x43\x41MPAIGN\x10\x06\x12\x16\n\x12\x43\x41MPAIGN_CRITERION\x10\x07\x12\x08\n\x04\x46\x45\x45\x44\x10\t\x12\r\n\tFEED_ITEM\x10\n\x12\x11\n\rAD_GROUP_FEED\x10\x0b\x12\x11\n\rCAMPAIGN_FEED\x10\x0c\x12\x19\n\x15\x41\x44_GROUP_BID_MODIFIER\x10\rB\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x43hangeStatusResourceTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CHANGESTATUSRESOURCETYPEENUM_CHANGESTATUSRESOURCETYPE = _descriptor.EnumDescriptor( + name='ChangeStatusResourceType', + full_name='google.ads.googleads.v5.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_AD', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_CRITERION', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_CRITERION', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED', index=7, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ITEM', index=8, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_FEED', index=9, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_FEED', index=10, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_BID_MODIFIER', index=11, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=168, + serialized_end=407, +) +_sym_db.RegisterEnumDescriptor(_CHANGESTATUSRESOURCETYPEENUM_CHANGESTATUSRESOURCETYPE) + + +_CHANGESTATUSRESOURCETYPEENUM = _descriptor.Descriptor( + name='ChangeStatusResourceTypeEnum', + full_name='google.ads.googleads.v5.enums.ChangeStatusResourceTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CHANGESTATUSRESOURCETYPEENUM_CHANGESTATUSRESOURCETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=407, +) + +_CHANGESTATUSRESOURCETYPEENUM_CHANGESTATUSRESOURCETYPE.containing_type = _CHANGESTATUSRESOURCETYPEENUM +DESCRIPTOR.message_types_by_name['ChangeStatusResourceTypeEnum'] = _CHANGESTATUSRESOURCETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ChangeStatusResourceTypeEnum = _reflection.GeneratedProtocolMessageType('ChangeStatusResourceTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CHANGESTATUSRESOURCETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.change_status_resource_type_pb2' + , + '__doc__': """Container for enum describing supported resource types for the + ChangeStatus resource.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ChangeStatusResourceTypeEnum) + }) +_sym_db.RegisterMessage(ChangeStatusResourceTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/change_status_resource_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/click_type_pb2.py b/google/ads/google_ads/v5/proto/enums/click_type_pb2.py new file mode 100644 index 000000000..31cf34674 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/click_type_pb2.py @@ -0,0 +1,360 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/click_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/click_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\016ClickTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n4google/ads/googleads_v5/proto/enums/click_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xa6\x0c\n\rClickTypeEnum\"\x94\x0c\n\tClickType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0c\x41PP_DEEPLINK\x10\x02\x12\x0f\n\x0b\x42READCRUMBS\x10\x03\x12\x12\n\x0e\x42ROADBAND_PLAN\x10\x04\x12\x11\n\rCALL_TRACKING\x10\x05\x12\t\n\x05\x43\x41LLS\x10\x06\x12\x1a\n\x16\x43LICK_ON_ENGAGEMENT_AD\x10\x07\x12\x12\n\x0eGET_DIRECTIONS\x10\x08\x12\x16\n\x12LOCATION_EXPANSION\x10\t\x12\x18\n\x14LOCATION_FORMAT_CALL\x10\n\x12\x1e\n\x1aLOCATION_FORMAT_DIRECTIONS\x10\x0b\x12\x19\n\x15LOCATION_FORMAT_IMAGE\x10\x0c\x12 \n\x1cLOCATION_FORMAT_LANDING_PAGE\x10\r\x12\x17\n\x13LOCATION_FORMAT_MAP\x10\x0e\x12\x1e\n\x1aLOCATION_FORMAT_STORE_INFO\x10\x0f\x12\x18\n\x14LOCATION_FORMAT_TEXT\x10\x10\x12\x18\n\x14MOBILE_CALL_TRACKING\x10\x11\x12\x10\n\x0cOFFER_PRINTS\x10\x12\x12\t\n\x05OTHER\x10\x13\x12\x1c\n\x18PRODUCT_EXTENSION_CLICKS\x10\x14\x12\x1d\n\x19PRODUCT_LISTING_AD_CLICKS\x10\x15\x12\r\n\tSITELINKS\x10\x16\x12\x11\n\rSTORE_LOCATOR\x10\x17\x12\x0e\n\nURL_CLICKS\x10\x19\x12\x1a\n\x16VIDEO_APP_STORE_CLICKS\x10\x1a\x12\x1f\n\x1bVIDEO_CALL_TO_ACTION_CLICKS\x10\x1b\x12%\n!VIDEO_CARD_ACTION_HEADLINE_CLICKS\x10\x1c\x12\x18\n\x14VIDEO_END_CAP_CLICKS\x10\x1d\x12\x18\n\x14VIDEO_WEBSITE_CLICKS\x10\x1e\x12\x14\n\x10VISUAL_SITELINKS\x10\x1f\x12\x11\n\rWIRELESS_PLAN\x10 \x12\x1c\n\x18PRODUCT_LISTING_AD_LOCAL\x10!\x12)\n%PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL\x10\"\x12*\n&PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE\x10#\x12\x1e\n\x1aPRODUCT_LISTING_ADS_COUPON\x10$\x12#\n\x1fPRODUCT_LISTING_AD_TRANSACTABLE\x10%\x12\x1b\n\x17PRODUCT_AD_APP_DEEPLINK\x10&\x12\x1d\n\x19SHOWCASE_AD_CATEGORY_LINK\x10\'\x12%\n!SHOWCASE_AD_LOCAL_STOREFRONT_LINK\x10(\x12#\n\x1fSHOWCASE_AD_ONLINE_PRODUCT_LINK\x10*\x12\"\n\x1eSHOWCASE_AD_LOCAL_PRODUCT_LINK\x10+\x12\x17\n\x13PROMOTION_EXTENSION\x10,\x12!\n\x1dSWIPEABLE_GALLERY_AD_HEADLINE\x10-\x12\x1f\n\x1bSWIPEABLE_GALLERY_AD_SWIPES\x10.\x12!\n\x1dSWIPEABLE_GALLERY_AD_SEE_MORE\x10/\x12%\n!SWIPEABLE_GALLERY_AD_SITELINK_ONE\x10\x30\x12%\n!SWIPEABLE_GALLERY_AD_SITELINK_TWO\x10\x31\x12\'\n#SWIPEABLE_GALLERY_AD_SITELINK_THREE\x10\x32\x12&\n\"SWIPEABLE_GALLERY_AD_SITELINK_FOUR\x10\x33\x12&\n\"SWIPEABLE_GALLERY_AD_SITELINK_FIVE\x10\x34\x12\x0f\n\x0bHOTEL_PRICE\x10\x35\x12\x13\n\x0fPRICE_EXTENSION\x10\x36\x12\'\n#HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION\x10\x37\x12\x1f\n\x1bSHOPPING_COMPARISON_LISTING\x10\x38\x42\xe3\x01\n!com.google.ads.googleads.v5.enumsB\x0e\x43lickTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CLICKTYPEENUM_CLICKTYPE = _descriptor.EnumDescriptor( + name='ClickType', + full_name='google.ads.googleads.v5.enums.ClickTypeEnum.ClickType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP_DEEPLINK', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BREADCRUMBS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BROADBAND_PLAN', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALL_TRACKING', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLICK_ON_ENGAGEMENT_AD', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GET_DIRECTIONS', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_EXPANSION', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_CALL', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_DIRECTIONS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_IMAGE', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_LANDING_PAGE', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_MAP', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_STORE_INFO', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FORMAT_TEXT', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_CALL_TRACKING', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OFFER_PRINTS', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_EXTENSION_CLICKS', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_AD_CLICKS', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SITELINKS', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_LOCATOR', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_CLICKS', index=24, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_APP_STORE_CLICKS', index=25, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_CALL_TO_ACTION_CLICKS', index=26, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_CARD_ACTION_HEADLINE_CLICKS', index=27, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_END_CAP_CLICKS', index=28, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_WEBSITE_CLICKS', index=29, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VISUAL_SITELINKS', index=30, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WIRELESS_PLAN', index=31, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_AD_LOCAL', index=32, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL', index=33, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE', index=34, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_ADS_COUPON', index=35, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_LISTING_AD_TRANSACTABLE', index=36, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_AD_APP_DEEPLINK', index=37, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOWCASE_AD_CATEGORY_LINK', index=38, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOWCASE_AD_LOCAL_STOREFRONT_LINK', index=39, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOWCASE_AD_ONLINE_PRODUCT_LINK', index=40, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOWCASE_AD_LOCAL_PRODUCT_LINK', index=41, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_EXTENSION', index=42, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_HEADLINE', index=43, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SWIPES', index=44, number=46, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SEE_MORE', index=45, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SITELINK_ONE', index=46, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SITELINK_TWO', index=47, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SITELINK_THREE', index=48, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SITELINK_FOUR', index=49, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIPEABLE_GALLERY_AD_SITELINK_FIVE', index=50, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_PRICE', index=51, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION', index=52, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION', index=53, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOPPING_COMPARISON_LISTING', index=54, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=1692, +) +_sym_db.RegisterEnumDescriptor(_CLICKTYPEENUM_CLICKTYPE) + + +_CLICKTYPEENUM = _descriptor.Descriptor( + name='ClickTypeEnum', + full_name='google.ads.googleads.v5.enums.ClickTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CLICKTYPEENUM_CLICKTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=1692, +) + +_CLICKTYPEENUM_CLICKTYPE.containing_type = _CLICKTYPEENUM +DESCRIPTOR.message_types_by_name['ClickTypeEnum'] = _CLICKTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ClickTypeEnum = _reflection.GeneratedProtocolMessageType('ClickTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CLICKTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.click_type_pb2' + , + '__doc__': """Container for enumeration of Google Ads click types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ClickTypeEnum) + }) +_sym_db.RegisterMessage(ClickTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/click_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/click_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/click_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/content_label_type_pb2.py b/google/ads/google_ads/v5/proto/enums/content_label_type_pb2.py new file mode 100644 index 000000000..55d3d5b84 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/content_label_type_pb2.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/content_label_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/content_label_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025ContentLabelTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/custom_interest_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"t\n\x16\x43ustomInterestTypeEnum\"Z\n\x12\x43ustomInterestType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0f\x43USTOM_AFFINITY\x10\x02\x12\x11\n\rCUSTOM_INTENT\x10\x03\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17\x43ustomInterestTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMINTERESTTYPEENUM_CUSTOMINTERESTTYPE = _descriptor.EnumDescriptor( + name='CustomInterestType', + full_name='google.ads.googleads.v5.enums.CustomInterestTypeEnum.CustomInterestType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_AFFINITY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_INTENT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=243, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMINTERESTTYPEENUM_CUSTOMINTERESTTYPE) + + +_CUSTOMINTERESTTYPEENUM = _descriptor.Descriptor( + name='CustomInterestTypeEnum', + full_name='google.ads.googleads.v5.enums.CustomInterestTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMINTERESTTYPEENUM_CUSTOMINTERESTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=243, +) + +_CUSTOMINTERESTTYPEENUM_CUSTOMINTERESTTYPE.containing_type = _CUSTOMINTERESTTYPEENUM +DESCRIPTOR.message_types_by_name['CustomInterestTypeEnum'] = _CUSTOMINTERESTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomInterestTypeEnum = _reflection.GeneratedProtocolMessageType('CustomInterestTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTERESTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.custom_interest_type_pb2' + , + '__doc__': """The types of custom interest.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CustomInterestTypeEnum) + }) +_sym_db.RegisterMessage(CustomInterestTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/custom_interest_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/custom_interest_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/custom_interest_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2.py new file mode 100644 index 000000000..dddb02080 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/custom_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/custom_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033CustomPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/custom_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xbe\x03\n\x1a\x43ustomPlaceholderFieldEnum\"\x9f\x03\n\x16\x43ustomPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x06\n\x02ID\x10\x02\x12\x07\n\x03ID2\x10\x03\x12\x0e\n\nITEM_TITLE\x10\x04\x12\x11\n\rITEM_SUBTITLE\x10\x05\x12\x14\n\x10ITEM_DESCRIPTION\x10\x06\x12\x10\n\x0cITEM_ADDRESS\x10\x07\x12\t\n\x05PRICE\x10\x08\x12\x13\n\x0f\x46ORMATTED_PRICE\x10\t\x12\x0e\n\nSALE_PRICE\x10\n\x12\x18\n\x14\x46ORMATTED_SALE_PRICE\x10\x0b\x12\r\n\tIMAGE_URL\x10\x0c\x12\x11\n\rITEM_CATEGORY\x10\r\x12\x0e\n\nFINAL_URLS\x10\x0e\x12\x15\n\x11\x46INAL_MOBILE_URLS\x10\x0f\x12\x10\n\x0cTRACKING_URL\x10\x10\x12\x17\n\x13\x43ONTEXTUAL_KEYWORDS\x10\x11\x12\x14\n\x10\x41NDROID_APP_LINK\x10\x12\x12\x0f\n\x0bSIMILAR_IDS\x10\x13\x12\x10\n\x0cIOS_APP_LINK\x10\x14\x12\x14\n\x10IOS_APP_STORE_ID\x10\x15\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1b\x43ustomPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMPLACEHOLDERFIELDENUM_CUSTOMPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='CustomPlaceholderField', + full_name='google.ads.googleads.v5.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ID2', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_TITLE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_SUBTITLE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_DESCRIPTION', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_ADDRESS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORMATTED_PRICE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SALE_PRICE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORMATTED_SALE_PRICE', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_URL', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_CATEGORY', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URLS', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_MOBILE_URLS', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_URL', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTEXTUAL_KEYWORDS', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_APP_LINK', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIMILAR_IDS', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_LINK', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_STORE_ID', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=578, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMPLACEHOLDERFIELDENUM_CUSTOMPLACEHOLDERFIELD) + + +_CUSTOMPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='CustomPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.CustomPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMPLACEHOLDERFIELDENUM_CUSTOMPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=578, +) + +_CUSTOMPLACEHOLDERFIELDENUM_CUSTOMPLACEHOLDERFIELD.containing_type = _CUSTOMPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['CustomPlaceholderFieldEnum'] = _CUSTOMPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('CustomPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.custom_placeholder_field_pb2' + , + '__doc__': """Values for Custom placeholder fields. For more information about + dynamic remarketing feeds, see https://support.google.com/google- + ads/answer/6053288.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CustomPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(CustomPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/custom_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2.py b/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2.py new file mode 100644 index 000000000..008d7df06 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/customer_match_upload_key_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/customer_match_upload_key_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\037CustomerMatchUploadKeyTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/customer_match_upload_key_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x95\x01\n\x1e\x43ustomerMatchUploadKeyTypeEnum\"s\n\x1a\x43ustomerMatchUploadKeyType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0c\x43ONTACT_INFO\x10\x02\x12\n\n\x06\x43RM_ID\x10\x03\x12\x19\n\x15MOBILE_ADVERTISING_ID\x10\x04\x42\xf4\x01\n!com.google.ads.googleads.v5.enumsB\x1f\x43ustomerMatchUploadKeyTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERMATCHUPLOADKEYTYPEENUM_CUSTOMERMATCHUPLOADKEYTYPE = _descriptor.EnumDescriptor( + name='CustomerMatchUploadKeyType', + full_name='google.ads.googleads.v5.enums.CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTACT_INFO', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRM_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_ADVERTISING_ID', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=172, + serialized_end=287, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERMATCHUPLOADKEYTYPEENUM_CUSTOMERMATCHUPLOADKEYTYPE) + + +_CUSTOMERMATCHUPLOADKEYTYPEENUM = _descriptor.Descriptor( + name='CustomerMatchUploadKeyTypeEnum', + full_name='google.ads.googleads.v5.enums.CustomerMatchUploadKeyTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERMATCHUPLOADKEYTYPEENUM_CUSTOMERMATCHUPLOADKEYTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=287, +) + +_CUSTOMERMATCHUPLOADKEYTYPEENUM_CUSTOMERMATCHUPLOADKEYTYPE.containing_type = _CUSTOMERMATCHUPLOADKEYTYPEENUM +DESCRIPTOR.message_types_by_name['CustomerMatchUploadKeyTypeEnum'] = _CUSTOMERMATCHUPLOADKEYTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerMatchUploadKeyTypeEnum = _reflection.GeneratedProtocolMessageType('CustomerMatchUploadKeyTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERMATCHUPLOADKEYTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.customer_match_upload_key_type_pb2' + , + '__doc__': """Indicates what type of data are the user list's members matched from.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CustomerMatchUploadKeyTypeEnum) + }) +_sym_db.RegisterMessage(CustomerMatchUploadKeyTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/customer_match_upload_key_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2.py b/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2.py new file mode 100644 index 000000000..5bb1d4b44 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB5CustomerPayPerConversionEligibilityFailureReasonProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n`google/ads/googleads_v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xd1\x02\n4CustomerPayPerConversionEligibilityFailureReasonEnum\"\x98\x02\n0CustomerPayPerConversionEligibilityFailureReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16NOT_ENOUGH_CONVERSIONS\x10\x02\x12\x1b\n\x17\x43ONVERSION_LAG_TOO_HIGH\x10\x03\x12#\n\x1fHAS_CAMPAIGN_WITH_SHARED_BUDGET\x10\x04\x12 \n\x1cHAS_UPLOAD_CLICKS_CONVERSION\x10\x05\x12 \n\x1c\x41VERAGE_DAILY_SPEND_TOO_HIGH\x10\x06\x12\x19\n\x15\x41NALYSIS_NOT_COMPLETE\x10\x07\x12\t\n\x05OTHER\x10\x08\x42\x8a\x02\n!com.google.ads.googleads.v5.enumsB5CustomerPayPerConversionEligibilityFailureReasonProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASON = _descriptor.EnumDescriptor( + name='CustomerPayPerConversionEligibilityFailureReason', + full_name='google.ads.googleads.v5.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReason', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ENOUGH_CONVERSIONS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_LAG_TOO_HIGH', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HAS_CAMPAIGN_WITH_SHARED_BUDGET', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HAS_UPLOAD_CLICKS_CONVERSION', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AVERAGE_DAILY_SPEND_TOO_HIGH', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANALYSIS_NOT_COMPLETE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=219, + serialized_end=499, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASON) + + +_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM = _descriptor.Descriptor( + name='CustomerPayPerConversionEligibilityFailureReasonEnum', + full_name='google.ads.googleads.v5.enums.CustomerPayPerConversionEligibilityFailureReasonEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASON, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=162, + serialized_end=499, +) + +_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASON.containing_type = _CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM +DESCRIPTOR.message_types_by_name['CustomerPayPerConversionEligibilityFailureReasonEnum'] = _CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerPayPerConversionEligibilityFailureReasonEnum = _reflection.GeneratedProtocolMessageType('CustomerPayPerConversionEligibilityFailureReasonEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.customer_pay_per_conversion_eligibility_failure_reason_pb2' + , + '__doc__': """Container for enum describing reasons why a customer is not eligible + to use PaymentMode.CONVERSIONS.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.CustomerPayPerConversionEligibilityFailureReasonEnum) + }) +_sym_db.RegisterMessage(CustomerPayPerConversionEligibilityFailureReasonEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2.py b/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2.py new file mode 100644 index 000000000..0a91b73dd --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/data_driven_model_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/data_driven_model_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032DataDrivenModelStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/data_driven_model_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8e\x01\n\x19\x44\x61taDrivenModelStatusEnum\"q\n\x15\x44\x61taDrivenModelStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\r\n\tAVAILABLE\x10\x02\x12\t\n\x05STALE\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x12\x13\n\x0fNEVER_GENERATED\x10\x05\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1a\x44\x61taDrivenModelStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DATADRIVENMODELSTATUSENUM_DATADRIVENMODELSTATUS = _descriptor.EnumDescriptor( + name='DataDrivenModelStatus', + full_name='google.ads.googleads.v5.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AVAILABLE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STALE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPIRED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEVER_GENERATED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=274, +) +_sym_db.RegisterEnumDescriptor(_DATADRIVENMODELSTATUSENUM_DATADRIVENMODELSTATUS) + + +_DATADRIVENMODELSTATUSENUM = _descriptor.Descriptor( + name='DataDrivenModelStatusEnum', + full_name='google.ads.googleads.v5.enums.DataDrivenModelStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATADRIVENMODELSTATUSENUM_DATADRIVENMODELSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=274, +) + +_DATADRIVENMODELSTATUSENUM_DATADRIVENMODELSTATUS.containing_type = _DATADRIVENMODELSTATUSENUM +DESCRIPTOR.message_types_by_name['DataDrivenModelStatusEnum'] = _DATADRIVENMODELSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DataDrivenModelStatusEnum = _reflection.GeneratedProtocolMessageType('DataDrivenModelStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _DATADRIVENMODELSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.data_driven_model_status_pb2' + , + '__doc__': """Container for enum indicating data driven model status.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DataDrivenModelStatusEnum) + }) +_sym_db.RegisterMessage(DataDrivenModelStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/data_driven_model_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/day_of_week_pb2.py b/google/ads/google_ads/v5/proto/enums/day_of_week_pb2.py new file mode 100644 index 000000000..bf3cf21f1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/day_of_week_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/day_of_week.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/day_of_week.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\016DayOfWeekProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/day_of_week.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x97\x01\n\rDayOfWeekEnum\"\x85\x01\n\tDayOfWeek\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06MONDAY\x10\x02\x12\x0b\n\x07TUESDAY\x10\x03\x12\r\n\tWEDNESDAY\x10\x04\x12\x0c\n\x08THURSDAY\x10\x05\x12\n\n\x06\x46RIDAY\x10\x06\x12\x0c\n\x08SATURDAY\x10\x07\x12\n\n\x06SUNDAY\x10\x08\x42\xe3\x01\n!com.google.ads.googleads.v5.enumsB\x0e\x44\x61yOfWeekProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DAYOFWEEKENUM_DAYOFWEEK = _descriptor.EnumDescriptor( + name='DayOfWeek', + full_name='google.ads.googleads.v5.enums.DayOfWeekEnum.DayOfWeek', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MONDAY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TUESDAY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEDNESDAY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THURSDAY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FRIDAY', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SATURDAY', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SUNDAY', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=137, + serialized_end=270, +) +_sym_db.RegisterEnumDescriptor(_DAYOFWEEKENUM_DAYOFWEEK) + + +_DAYOFWEEKENUM = _descriptor.Descriptor( + name='DayOfWeekEnum', + full_name='google.ads.googleads.v5.enums.DayOfWeekEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DAYOFWEEKENUM_DAYOFWEEK, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=270, +) + +_DAYOFWEEKENUM_DAYOFWEEK.containing_type = _DAYOFWEEKENUM +DESCRIPTOR.message_types_by_name['DayOfWeekEnum'] = _DAYOFWEEKENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DayOfWeekEnum = _reflection.GeneratedProtocolMessageType('DayOfWeekEnum', (_message.Message,), { + 'DESCRIPTOR' : _DAYOFWEEKENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.day_of_week_pb2' + , + '__doc__': """Container for enumeration of days of the week, e.g., "Monday".""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DayOfWeekEnum) + }) +_sym_db.RegisterMessage(DayOfWeekEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/day_of_week_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/day_of_week_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/day_of_week_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/device_pb2.py b/google/ads/google_ads/v5/proto/enums/device_pb2.py new file mode 100644 index 000000000..e57a97a2a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/device_pb2.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/device.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/device.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\013DeviceProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n0google/ads/googleads_v5/proto/enums/device.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"v\n\nDeviceEnum\"h\n\x06\x44\x65vice\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06MOBILE\x10\x02\x12\n\n\x06TABLET\x10\x03\x12\x0b\n\x07\x44\x45SKTOP\x10\x04\x12\x10\n\x0c\x43ONNECTED_TV\x10\x06\x12\t\n\x05OTHER\x10\x05\x42\xe0\x01\n!com.google.ads.googleads.v5.enumsB\x0b\x44\x65viceProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DEVICEENUM_DEVICE = _descriptor.EnumDescriptor( + name='Device', + full_name='google.ads.googleads.v5.enums.DeviceEnum.Device', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TABLET', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESKTOP', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONNECTED_TV', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=6, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=127, + serialized_end=231, +) +_sym_db.RegisterEnumDescriptor(_DEVICEENUM_DEVICE) + + +_DEVICEENUM = _descriptor.Descriptor( + name='DeviceEnum', + full_name='google.ads.googleads.v5.enums.DeviceEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DEVICEENUM_DEVICE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=113, + serialized_end=231, +) + +_DEVICEENUM_DEVICE.containing_type = _DEVICEENUM +DESCRIPTOR.message_types_by_name['DeviceEnum'] = _DEVICEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DeviceEnum = _reflection.GeneratedProtocolMessageType('DeviceEnum', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.device_pb2' + , + '__doc__': """Container for enumeration of Google Ads devices available for + targeting.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DeviceEnum) + }) +_sym_db.RegisterMessage(DeviceEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/device_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/device_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/device_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2.py b/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2.py new file mode 100644 index 000000000..37cb9cf1b --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/display_ad_format_setting.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/display_ad_format_setting.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033DisplayAdFormatSettingProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/display_ad_format_setting.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x81\x01\n\x1a\x44isplayAdFormatSettingEnum\"c\n\x16\x44isplayAdFormatSetting\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x41LL_FORMATS\x10\x02\x12\x0e\n\nNON_NATIVE\x10\x03\x12\n\n\x06NATIVE\x10\x04\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1b\x44isplayAdFormatSettingProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING = _descriptor.EnumDescriptor( + name='DisplayAdFormatSetting', + full_name='google.ads.googleads.v5.enums.DisplayAdFormatSettingEnum.DisplayAdFormatSetting', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ALL_FORMATS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NON_NATIVE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NATIVE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=262, +) +_sym_db.RegisterEnumDescriptor(_DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING) + + +_DISPLAYADFORMATSETTINGENUM = _descriptor.Descriptor( + name='DisplayAdFormatSettingEnum', + full_name='google.ads.googleads.v5.enums.DisplayAdFormatSettingEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=262, +) + +_DISPLAYADFORMATSETTINGENUM_DISPLAYADFORMATSETTING.containing_type = _DISPLAYADFORMATSETTINGENUM +DESCRIPTOR.message_types_by_name['DisplayAdFormatSettingEnum'] = _DISPLAYADFORMATSETTINGENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DisplayAdFormatSettingEnum = _reflection.GeneratedProtocolMessageType('DisplayAdFormatSettingEnum', (_message.Message,), { + 'DESCRIPTOR' : _DISPLAYADFORMATSETTINGENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.display_ad_format_setting_pb2' + , + '__doc__': """Container for display ad format settings.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DisplayAdFormatSettingEnum) + }) +_sym_db.RegisterMessage(DisplayAdFormatSettingEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/display_ad_format_setting_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2.py b/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2.py new file mode 100644 index 000000000..832ebb562 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/display_upload_product_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/display_upload_product_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035DisplayUploadProductTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/display_upload_product_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xfc\x02\n\x1c\x44isplayUploadProductTypeEnum\"\xdb\x02\n\x18\x44isplayUploadProductType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0fHTML5_UPLOAD_AD\x10\x02\x12\x1e\n\x1a\x44YNAMIC_HTML5_EDUCATION_AD\x10\x03\x12\x1b\n\x17\x44YNAMIC_HTML5_FLIGHT_AD\x10\x04\x12!\n\x1d\x44YNAMIC_HTML5_HOTEL_RENTAL_AD\x10\x05\x12\x18\n\x14\x44YNAMIC_HTML5_JOB_AD\x10\x06\x12\x1a\n\x16\x44YNAMIC_HTML5_LOCAL_AD\x10\x07\x12 \n\x1c\x44YNAMIC_HTML5_REAL_ESTATE_AD\x10\x08\x12\x1b\n\x17\x44YNAMIC_HTML5_CUSTOM_AD\x10\t\x12\x1b\n\x17\x44YNAMIC_HTML5_TRAVEL_AD\x10\n\x12\x1a\n\x16\x44YNAMIC_HTML5_HOTEL_AD\x10\x0b\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x44isplayUploadProductTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DISPLAYUPLOADPRODUCTTYPEENUM_DISPLAYUPLOADPRODUCTTYPE = _descriptor.EnumDescriptor( + name='DisplayUploadProductType', + full_name='google.ads.googleads.v5.enums.DisplayUploadProductTypeEnum.DisplayUploadProductType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HTML5_UPLOAD_AD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_EDUCATION_AD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_FLIGHT_AD', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_HOTEL_RENTAL_AD', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_JOB_AD', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_LOCAL_AD', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_REAL_ESTATE_AD', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_CUSTOM_AD', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_TRAVEL_AD', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HTML5_HOTEL_AD', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=168, + serialized_end=515, +) +_sym_db.RegisterEnumDescriptor(_DISPLAYUPLOADPRODUCTTYPEENUM_DISPLAYUPLOADPRODUCTTYPE) + + +_DISPLAYUPLOADPRODUCTTYPEENUM = _descriptor.Descriptor( + name='DisplayUploadProductTypeEnum', + full_name='google.ads.googleads.v5.enums.DisplayUploadProductTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DISPLAYUPLOADPRODUCTTYPEENUM_DISPLAYUPLOADPRODUCTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=515, +) + +_DISPLAYUPLOADPRODUCTTYPEENUM_DISPLAYUPLOADPRODUCTTYPE.containing_type = _DISPLAYUPLOADPRODUCTTYPEENUM +DESCRIPTOR.message_types_by_name['DisplayUploadProductTypeEnum'] = _DISPLAYUPLOADPRODUCTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DisplayUploadProductTypeEnum = _reflection.GeneratedProtocolMessageType('DisplayUploadProductTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _DISPLAYUPLOADPRODUCTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.display_upload_product_type_pb2' + , + '__doc__': """Container for display upload product types. Product types that have + the word "DYNAMIC" in them must be associated with a campaign that has + a dynamic remarketing feed. See https://support.google.com/google- + ads/answer/6053288 for more info about dynamic remarketing. Other + product types are regarded as "static" and do not have this + requirement.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DisplayUploadProductTypeEnum) + }) +_sym_db.RegisterMessage(DisplayUploadProductTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/display_upload_product_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2.py b/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2.py new file mode 100644 index 000000000..8f79fd1a8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2.py @@ -0,0 +1,231 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/distance_bucket.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/distance_bucket.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\023DistanceBucketProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/enums/distance_bucket.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xad\x04\n\x12\x44istanceBucketEnum\"\x96\x04\n\x0e\x44istanceBucket\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bWITHIN_700M\x10\x02\x12\x0e\n\nWITHIN_1KM\x10\x03\x12\x0e\n\nWITHIN_5KM\x10\x04\x12\x0f\n\x0bWITHIN_10KM\x10\x05\x12\x0f\n\x0bWITHIN_15KM\x10\x06\x12\x0f\n\x0bWITHIN_20KM\x10\x07\x12\x0f\n\x0bWITHIN_25KM\x10\x08\x12\x0f\n\x0bWITHIN_30KM\x10\t\x12\x0f\n\x0bWITHIN_35KM\x10\n\x12\x0f\n\x0bWITHIN_40KM\x10\x0b\x12\x0f\n\x0bWITHIN_45KM\x10\x0c\x12\x0f\n\x0bWITHIN_50KM\x10\r\x12\x0f\n\x0bWITHIN_55KM\x10\x0e\x12\x0f\n\x0bWITHIN_60KM\x10\x0f\x12\x0f\n\x0bWITHIN_65KM\x10\x10\x12\x0f\n\x0b\x42\x45YOND_65KM\x10\x11\x12\x13\n\x0fWITHIN_0_7MILES\x10\x12\x12\x10\n\x0cWITHIN_1MILE\x10\x13\x12\x11\n\rWITHIN_5MILES\x10\x14\x12\x12\n\x0eWITHIN_10MILES\x10\x15\x12\x12\n\x0eWITHIN_15MILES\x10\x16\x12\x12\n\x0eWITHIN_20MILES\x10\x17\x12\x12\n\x0eWITHIN_25MILES\x10\x18\x12\x12\n\x0eWITHIN_30MILES\x10\x19\x12\x12\n\x0eWITHIN_35MILES\x10\x1a\x12\x12\n\x0eWITHIN_40MILES\x10\x1b\x12\x12\n\x0e\x42\x45YOND_40MILES\x10\x1c\x42\xe8\x01\n!com.google.ads.googleads.v5.enumsB\x13\x44istanceBucketProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DISTANCEBUCKETENUM_DISTANCEBUCKET = _descriptor.EnumDescriptor( + name='DistanceBucket', + full_name='google.ads.googleads.v5.enums.DistanceBucketEnum.DistanceBucket', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_700M', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_1KM', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_5KM', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_10KM', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_15KM', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_20KM', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_25KM', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_30KM', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_35KM', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_40KM', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_45KM', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_50KM', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_55KM', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_60KM', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_65KM', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BEYOND_65KM', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_0_7MILES', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_1MILE', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_5MILES', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_10MILES', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_15MILES', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_20MILES', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_25MILES', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_30MILES', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_35MILES', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WITHIN_40MILES', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BEYOND_40MILES', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=680, +) +_sym_db.RegisterEnumDescriptor(_DISTANCEBUCKETENUM_DISTANCEBUCKET) + + +_DISTANCEBUCKETENUM = _descriptor.Descriptor( + name='DistanceBucketEnum', + full_name='google.ads.googleads.v5.enums.DistanceBucketEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DISTANCEBUCKETENUM_DISTANCEBUCKET, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=680, +) + +_DISTANCEBUCKETENUM_DISTANCEBUCKET.containing_type = _DISTANCEBUCKETENUM +DESCRIPTOR.message_types_by_name['DistanceBucketEnum'] = _DISTANCEBUCKETENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DistanceBucketEnum = _reflection.GeneratedProtocolMessageType('DistanceBucketEnum', (_message.Message,), { + 'DESCRIPTOR' : _DISTANCEBUCKETENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.distance_bucket_pb2' + , + '__doc__': """Container for distance buckets of a user’s distance from an + advertiser’s location extension.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DistanceBucketEnum) + }) +_sym_db.RegisterMessage(DistanceBucketEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/distance_bucket_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2.py b/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2.py new file mode 100644 index 000000000..8171ed672 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/dsa_page_feed_criterion_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/dsa_page_feed_criterion_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\036DsaPageFeedCriterionFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/enums/dsa_page_feed_criterion_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"s\n\x1d\x44saPageFeedCriterionFieldEnum\"R\n\x19\x44saPageFeedCriterionField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08PAGE_URL\x10\x02\x12\t\n\x05LABEL\x10\x03\x42\xf3\x01\n!com.google.ads.googleads.v5.enumsB\x1e\x44saPageFeedCriterionFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DSAPAGEFEEDCRITERIONFIELDENUM_DSAPAGEFEEDCRITERIONFIELD = _descriptor.EnumDescriptor( + name='DsaPageFeedCriterionField', + full_name='google.ads.googleads.v5.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAGE_URL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LABEL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=169, + serialized_end=251, +) +_sym_db.RegisterEnumDescriptor(_DSAPAGEFEEDCRITERIONFIELDENUM_DSAPAGEFEEDCRITERIONFIELD) + + +_DSAPAGEFEEDCRITERIONFIELDENUM = _descriptor.Descriptor( + name='DsaPageFeedCriterionFieldEnum', + full_name='google.ads.googleads.v5.enums.DsaPageFeedCriterionFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DSAPAGEFEEDCRITERIONFIELDENUM_DSAPAGEFEEDCRITERIONFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=136, + serialized_end=251, +) + +_DSAPAGEFEEDCRITERIONFIELDENUM_DSAPAGEFEEDCRITERIONFIELD.containing_type = _DSAPAGEFEEDCRITERIONFIELDENUM +DESCRIPTOR.message_types_by_name['DsaPageFeedCriterionFieldEnum'] = _DSAPAGEFEEDCRITERIONFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DsaPageFeedCriterionFieldEnum = _reflection.GeneratedProtocolMessageType('DsaPageFeedCriterionFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _DSAPAGEFEEDCRITERIONFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.dsa_page_feed_criterion_field_pb2' + , + '__doc__': """Values for Dynamic Search Ad Page Feed criterion fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.DsaPageFeedCriterionFieldEnum) + }) +_sym_db.RegisterMessage(DsaPageFeedCriterionFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/dsa_page_feed_criterion_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2.py new file mode 100644 index 000000000..89def0ee8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2.py @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/education_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/education_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\036EducationPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/education_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xbf\x03\n\x1d\x45\x64ucationPlaceholderFieldEnum\"\x9d\x03\n\x19\x45\x64ucationPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nPROGRAM_ID\x10\x02\x12\x0f\n\x0bLOCATION_ID\x10\x03\x12\x10\n\x0cPROGRAM_NAME\x10\x04\x12\x11\n\rAREA_OF_STUDY\x10\x05\x12\x17\n\x13PROGRAM_DESCRIPTION\x10\x06\x12\x0f\n\x0bSCHOOL_NAME\x10\x07\x12\x0b\n\x07\x41\x44\x44RESS\x10\x08\x12\x17\n\x13THUMBNAIL_IMAGE_URL\x10\t\x12#\n\x1f\x41LTERNATIVE_THUMBNAIL_IMAGE_URL\x10\n\x12\x0e\n\nFINAL_URLS\x10\x0b\x12\x15\n\x11\x46INAL_MOBILE_URLS\x10\x0c\x12\x10\n\x0cTRACKING_URL\x10\r\x12\x17\n\x13\x43ONTEXTUAL_KEYWORDS\x10\x0e\x12\x14\n\x10\x41NDROID_APP_LINK\x10\x0f\x12\x17\n\x13SIMILAR_PROGRAM_IDS\x10\x10\x12\x10\n\x0cIOS_APP_LINK\x10\x11\x12\x14\n\x10IOS_APP_STORE_ID\x10\x12\x42\xf3\x01\n!com.google.ads.googleads.v5.enumsB\x1e\x45\x64ucationPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EDUCATIONPLACEHOLDERFIELDENUM_EDUCATIONPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='EducationPlaceholderField', + full_name='google.ads.googleads.v5.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROGRAM_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROGRAM_NAME', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AREA_OF_STUDY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROGRAM_DESCRIPTION', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCHOOL_NAME', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THUMBNAIL_IMAGE_URL', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ALTERNATIVE_THUMBNAIL_IMAGE_URL', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URLS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_MOBILE_URLS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_URL', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTEXTUAL_KEYWORDS', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_APP_LINK', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIMILAR_PROGRAM_IDS', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_LINK', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_STORE_ID', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=169, + serialized_end=582, +) +_sym_db.RegisterEnumDescriptor(_EDUCATIONPLACEHOLDERFIELDENUM_EDUCATIONPLACEHOLDERFIELD) + + +_EDUCATIONPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='EducationPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.EducationPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EDUCATIONPLACEHOLDERFIELDENUM_EDUCATIONPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=582, +) + +_EDUCATIONPLACEHOLDERFIELDENUM_EDUCATIONPLACEHOLDERFIELD.containing_type = _EDUCATIONPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['EducationPlaceholderFieldEnum'] = _EDUCATIONPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +EducationPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('EducationPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _EDUCATIONPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.education_placeholder_field_pb2' + , + '__doc__': """Values for Education placeholder fields. For more information about + dynamic remarketing feeds, see https://support.google.com/google- + ads/answer/6053288.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.EducationPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(EducationPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/education_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2.py b/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2.py new file mode 100644 index 000000000..5dcaeaf85 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/extension_setting_device.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/extension_setting_device.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033ExtensionSettingDeviceProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/extension_setting_device.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"m\n\x1a\x45xtensionSettingDeviceEnum\"O\n\x16\x45xtensionSettingDevice\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06MOBILE\x10\x02\x12\x0b\n\x07\x44\x45SKTOP\x10\x03\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1b\x45xtensionSettingDeviceProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE = _descriptor.EnumDescriptor( + name='ExtensionSettingDevice', + full_name='google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESKTOP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=240, +) +_sym_db.RegisterEnumDescriptor(_EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE) + + +_EXTENSIONSETTINGDEVICEENUM = _descriptor.Descriptor( + name='ExtensionSettingDeviceEnum', + full_name='google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=240, +) + +_EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE.containing_type = _EXTENSIONSETTINGDEVICEENUM +DESCRIPTOR.message_types_by_name['ExtensionSettingDeviceEnum'] = _EXTENSIONSETTINGDEVICEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExtensionSettingDeviceEnum = _reflection.GeneratedProtocolMessageType('ExtensionSettingDeviceEnum', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONSETTINGDEVICEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.extension_setting_device_pb2' + , + '__doc__': """Container for enum describing extension setting device types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum) + }) +_sym_db.RegisterMessage(ExtensionSettingDeviceEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/extension_setting_device_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/extension_type_pb2.py b/google/ads/google_ads/v5/proto/enums/extension_type_pb2.py new file mode 100644 index 000000000..9734218ac --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/extension_type_pb2.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/extension_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/extension_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\022ExtensionTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/enums/extension_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xf3\x01\n\x11\x45xtensionTypeEnum\"\xdd\x01\n\rExtensionType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04NONE\x10\x02\x12\x07\n\x03\x41PP\x10\x03\x12\x08\n\x04\x43\x41LL\x10\x04\x12\x0b\n\x07\x43\x41LLOUT\x10\x05\x12\x0b\n\x07MESSAGE\x10\x06\x12\t\n\x05PRICE\x10\x07\x12\r\n\tPROMOTION\x10\x08\x12\x0c\n\x08SITELINK\x10\n\x12\x16\n\x12STRUCTURED_SNIPPET\x10\x0b\x12\x0c\n\x08LOCATION\x10\x0c\x12\x16\n\x12\x41\x46\x46ILIATE_LOCATION\x10\r\x12\x11\n\rHOTEL_CALLOUT\x10\x0f\x42\xe7\x01\n!com.google.ads.googleads.v5.enumsB\x12\x45xtensionTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EXTENSIONTYPEENUM_EXTENSIONTYPE = _descriptor.EnumDescriptor( + name='ExtensionType', + full_name='google.ads.googleads.v5.enums.ExtensionTypeEnum.ExtensionType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NONE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALL', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLOUT', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MESSAGE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SITELINK', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPET', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AFFILIATE_LOCATION', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_CALLOUT', index=13, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=365, +) +_sym_db.RegisterEnumDescriptor(_EXTENSIONTYPEENUM_EXTENSIONTYPE) + + +_EXTENSIONTYPEENUM = _descriptor.Descriptor( + name='ExtensionTypeEnum', + full_name='google.ads.googleads.v5.enums.ExtensionTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EXTENSIONTYPEENUM_EXTENSIONTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=365, +) + +_EXTENSIONTYPEENUM_EXTENSIONTYPE.containing_type = _EXTENSIONTYPEENUM +DESCRIPTOR.message_types_by_name['ExtensionTypeEnum'] = _EXTENSIONTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExtensionTypeEnum = _reflection.GeneratedProtocolMessageType('ExtensionTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.extension_type_pb2' + , + '__doc__': """Container for enum describing possible data types for an extension in + an extension setting.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ExtensionTypeEnum) + }) +_sym_db.RegisterMessage(ExtensionTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/extension_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/extension_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/extension_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2.py b/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2.py new file mode 100644 index 000000000..a55fc009e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/external_conversion_source.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/external_conversion_source.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035ExternalConversionSourceProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/external_conversion_source.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x98\x04\n\x1c\x45xternalConversionSourceEnum\"\xf7\x03\n\x18\x45xternalConversionSource\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07WEBPAGE\x10\x02\x12\r\n\tANALYTICS\x10\x03\x12\n\n\x06UPLOAD\x10\x04\x12\x13\n\x0f\x41\x44_CALL_METRICS\x10\x05\x12\x18\n\x14WEBSITE_CALL_METRICS\x10\x06\x12\x10\n\x0cSTORE_VISITS\x10\x07\x12\x12\n\x0e\x41NDROID_IN_APP\x10\x08\x12\x0e\n\nIOS_IN_APP\x10\t\x12\x12\n\x0eIOS_FIRST_OPEN\x10\n\x12\x13\n\x0f\x41PP_UNSPECIFIED\x10\x0b\x12\x16\n\x12\x41NDROID_FIRST_OPEN\x10\x0c\x12\x10\n\x0cUPLOAD_CALLS\x10\r\x12\x0c\n\x08\x46IREBASE\x10\x0e\x12\x11\n\rCLICK_TO_CALL\x10\x0f\x12\x0e\n\nSALESFORCE\x10\x10\x12\x13\n\x0fSTORE_SALES_CRM\x10\x11\x12\x1f\n\x1bSTORE_SALES_PAYMENT_NETWORK\x10\x12\x12\x0f\n\x0bGOOGLE_PLAY\x10\x13\x12\x1d\n\x19THIRD_PARTY_APP_ANALYTICS\x10\x14\x12\x16\n\x12GOOGLE_ATTRIBUTION\x10\x15\x12\x1d\n\x19STORE_SALES_DIRECT_UPLOAD\x10\x17\x12\x0f\n\x0bSTORE_SALES\x10\x18\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x45xternalConversionSourceProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EXTERNALCONVERSIONSOURCEENUM_EXTERNALCONVERSIONSOURCE = _descriptor.EnumDescriptor( + name='ExternalConversionSource', + full_name='google.ads.googleads.v5.enums.ExternalConversionSourceEnum.ExternalConversionSource', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANALYTICS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPLOAD', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_CALL_METRICS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBSITE_CALL_METRICS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_VISITS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_IN_APP', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_IN_APP', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_FIRST_OPEN', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP_UNSPECIFIED', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_FIRST_OPEN', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPLOAD_CALLS', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIREBASE', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLICK_TO_CALL', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SALESFORCE', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_SALES_CRM', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_SALES_PAYMENT_NETWORK', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_PLAY', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THIRD_PARTY_APP_ANALYTICS', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ATTRIBUTION', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_SALES_DIRECT_UPLOAD', index=22, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORE_SALES', index=23, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=167, + serialized_end=670, +) +_sym_db.RegisterEnumDescriptor(_EXTERNALCONVERSIONSOURCEENUM_EXTERNALCONVERSIONSOURCE) + + +_EXTERNALCONVERSIONSOURCEENUM = _descriptor.Descriptor( + name='ExternalConversionSourceEnum', + full_name='google.ads.googleads.v5.enums.ExternalConversionSourceEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EXTERNALCONVERSIONSOURCEENUM_EXTERNALCONVERSIONSOURCE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=670, +) + +_EXTERNALCONVERSIONSOURCEENUM_EXTERNALCONVERSIONSOURCE.containing_type = _EXTERNALCONVERSIONSOURCEENUM +DESCRIPTOR.message_types_by_name['ExternalConversionSourceEnum'] = _EXTERNALCONVERSIONSOURCEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExternalConversionSourceEnum = _reflection.GeneratedProtocolMessageType('ExternalConversionSourceEnum', (_message.Message,), { + 'DESCRIPTOR' : _EXTERNALCONVERSIONSOURCEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.external_conversion_source_pb2' + , + '__doc__': """Container for enum describing the external conversion source that is + associated with a ConversionAction.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ExternalConversionSourceEnum) + }) +_sym_db.RegisterMessage(ExternalConversionSourceEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/external_conversion_source_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2.py new file mode 100644 index 000000000..7f751dab4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2.py @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_attribute_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_attribute_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026FeedAttributeTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/feed_attribute_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x84\x02\n\x15\x46\x65\x65\x64\x41ttributeTypeEnum\"\xea\x01\n\x11\x46\x65\x65\x64\x41ttributeType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05INT64\x10\x02\x12\n\n\x06\x44OUBLE\x10\x03\x12\n\n\x06STRING\x10\x04\x12\x0b\n\x07\x42OOLEAN\x10\x05\x12\x07\n\x03URL\x10\x06\x12\r\n\tDATE_TIME\x10\x07\x12\x0e\n\nINT64_LIST\x10\x08\x12\x0f\n\x0b\x44OUBLE_LIST\x10\t\x12\x0f\n\x0bSTRING_LIST\x10\n\x12\x10\n\x0c\x42OOLEAN_LIST\x10\x0b\x12\x0c\n\x08URL_LIST\x10\x0c\x12\x12\n\x0e\x44\x41TE_TIME_LIST\x10\r\x12\t\n\x05PRICE\x10\x0e\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16\x46\x65\x65\x64\x41ttributeTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDATTRIBUTETYPEENUM_FEEDATTRIBUTETYPE = _descriptor.EnumDescriptor( + name='FeedAttributeType', + full_name='google.ads.googleads.v5.enums.FeedAttributeTypeEnum.FeedAttributeType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INT64', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DOUBLE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BOOLEAN', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INT64_LIST', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DOUBLE_LIST', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING_LIST', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BOOLEAN_LIST', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_LIST', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_LIST', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=387, +) +_sym_db.RegisterEnumDescriptor(_FEEDATTRIBUTETYPEENUM_FEEDATTRIBUTETYPE) + + +_FEEDATTRIBUTETYPEENUM = _descriptor.Descriptor( + name='FeedAttributeTypeEnum', + full_name='google.ads.googleads.v5.enums.FeedAttributeTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDATTRIBUTETYPEENUM_FEEDATTRIBUTETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=387, +) + +_FEEDATTRIBUTETYPEENUM_FEEDATTRIBUTETYPE.containing_type = _FEEDATTRIBUTETYPEENUM +DESCRIPTOR.message_types_by_name['FeedAttributeTypeEnum'] = _FEEDATTRIBUTETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedAttributeTypeEnum = _reflection.GeneratedProtocolMessageType('FeedAttributeTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDATTRIBUTETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_attribute_type_pb2' + , + '__doc__': """Container for enum describing possible data types for a feed + attribute.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedAttributeTypeEnum) + }) +_sym_db.RegisterMessage(FeedAttributeTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_attribute_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2.py new file mode 100644 index 000000000..d2c45bb43 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_quality_approval_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_quality_approval_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\"FeedItemQualityApprovalStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/enums/feed_item_quality_approval_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x81\x01\n!FeedItemQualityApprovalStatusEnum\"\\\n\x1d\x46\x65\x65\x64ItemQualityApprovalStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x41PPROVED\x10\x02\x12\x0f\n\x0b\x44ISAPPROVED\x10\x03\x42\xf7\x01\n!com.google.ads.googleads.v5.enumsB\"FeedItemQualityApprovalStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMQUALITYAPPROVALSTATUSENUM_FEEDITEMQUALITYAPPROVALSTATUS = _descriptor.EnumDescriptor( + name='FeedItemQualityApprovalStatus', + full_name='google.ads.googleads.v5.enums.FeedItemQualityApprovalStatusEnum.FeedItemQualityApprovalStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISAPPROVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=178, + serialized_end=270, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMQUALITYAPPROVALSTATUSENUM_FEEDITEMQUALITYAPPROVALSTATUS) + + +_FEEDITEMQUALITYAPPROVALSTATUSENUM = _descriptor.Descriptor( + name='FeedItemQualityApprovalStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedItemQualityApprovalStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMQUALITYAPPROVALSTATUSENUM_FEEDITEMQUALITYAPPROVALSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=141, + serialized_end=270, +) + +_FEEDITEMQUALITYAPPROVALSTATUSENUM_FEEDITEMQUALITYAPPROVALSTATUS.containing_type = _FEEDITEMQUALITYAPPROVALSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedItemQualityApprovalStatusEnum'] = _FEEDITEMQUALITYAPPROVALSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemQualityApprovalStatusEnum = _reflection.GeneratedProtocolMessageType('FeedItemQualityApprovalStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMQUALITYAPPROVALSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_quality_approval_status_pb2' + , + '__doc__': """Container for enum describing possible quality evaluation approval + statuses of a feed item.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemQualityApprovalStatusEnum) + }) +_sym_db.RegisterMessage(FeedItemQualityApprovalStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_quality_approval_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2.py new file mode 100644 index 000000000..2db4035e3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2.py @@ -0,0 +1,186 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_quality_disapproval_reason.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_quality_disapproval_reason.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB%FeedItemQualityDisapprovalReasonProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nNgoogle/ads/googleads_v5/proto/enums/feed_item_quality_disapproval_reason.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xe0\x06\n$FeedItemQualityDisapprovalReasonEnum\"\xb7\x06\n FeedItemQualityDisapprovalReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\"\n\x1ePRICE_TABLE_REPETITIVE_HEADERS\x10\x02\x12&\n\"PRICE_TABLE_REPETITIVE_DESCRIPTION\x10\x03\x12!\n\x1dPRICE_TABLE_INCONSISTENT_ROWS\x10\x04\x12*\n&PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS\x10\x05\x12\x1e\n\x1aPRICE_UNSUPPORTED_LANGUAGE\x10\x06\x12.\n*PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH\x10\x07\x12/\n+PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT\x10\x08\x12,\n(PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT\x10\t\x12\x34\n0PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT\x10\n\x12\x31\n-PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE\x10\x0b\x12\x1e\n\x1aPRICE_TABLE_ROW_UNRATEABLE\x10\x0c\x12!\n\x1dPRICE_TABLE_ROW_PRICE_INVALID\x10\r\x12\x1f\n\x1bPRICE_TABLE_ROW_URL_INVALID\x10\x0e\x12)\n%PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE\x10\x0f\x12.\n*STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED\x10\x10\x12\'\n#STRUCTURED_SNIPPETS_REPEATED_VALUES\x10\x11\x12,\n(STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES\x10\x12\x12,\n(STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT\x10\x13\x42\xfa\x01\n!com.google.ads.googleads.v5.enumsB%FeedItemQualityDisapprovalReasonProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMQUALITYDISAPPROVALREASONENUM_FEEDITEMQUALITYDISAPPROVALREASON = _descriptor.EnumDescriptor( + name='FeedItemQualityDisapprovalReason', + full_name='google.ads.googleads.v5.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReason', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_REPETITIVE_HEADERS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_REPETITIVE_DESCRIPTION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_INCONSISTENT_ROWS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_UNSUPPORTED_LANGUAGE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_UNRATEABLE', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_PRICE_INVALID', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_TABLE_ROW_URL_INVALID', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPETS_REPEATED_VALUES', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=185, + serialized_end=1008, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMQUALITYDISAPPROVALREASONENUM_FEEDITEMQUALITYDISAPPROVALREASON) + + +_FEEDITEMQUALITYDISAPPROVALREASONENUM = _descriptor.Descriptor( + name='FeedItemQualityDisapprovalReasonEnum', + full_name='google.ads.googleads.v5.enums.FeedItemQualityDisapprovalReasonEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMQUALITYDISAPPROVALREASONENUM_FEEDITEMQUALITYDISAPPROVALREASON, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=144, + serialized_end=1008, +) + +_FEEDITEMQUALITYDISAPPROVALREASONENUM_FEEDITEMQUALITYDISAPPROVALREASON.containing_type = _FEEDITEMQUALITYDISAPPROVALREASONENUM +DESCRIPTOR.message_types_by_name['FeedItemQualityDisapprovalReasonEnum'] = _FEEDITEMQUALITYDISAPPROVALREASONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemQualityDisapprovalReasonEnum = _reflection.GeneratedProtocolMessageType('FeedItemQualityDisapprovalReasonEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMQUALITYDISAPPROVALREASONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_quality_disapproval_reason_pb2' + , + '__doc__': """Container for enum describing possible quality evaluation disapproval + reasons of a feed item.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemQualityDisapprovalReasonEnum) + }) +_sym_db.RegisterMessage(FeedItemQualityDisapprovalReasonEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_quality_disapproval_reason_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2.py new file mode 100644 index 000000000..12bfe0493 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\023FeedItemStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/enums/feed_item_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"^\n\x12\x46\x65\x65\x64ItemStatusEnum\"H\n\x0e\x46\x65\x65\x64ItemStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xe8\x01\n!com.google.ads.googleads.v5.enumsB\x13\x46\x65\x65\x64ItemStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMSTATUSENUM_FEEDITEMSTATUS = _descriptor.EnumDescriptor( + name='FeedItemStatus', + full_name='google.ads.googleads.v5.enums.FeedItemStatusEnum.FeedItemStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=145, + serialized_end=217, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMSTATUSENUM_FEEDITEMSTATUS) + + +_FEEDITEMSTATUSENUM = _descriptor.Descriptor( + name='FeedItemStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedItemStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMSTATUSENUM_FEEDITEMSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=217, +) + +_FEEDITEMSTATUSENUM_FEEDITEMSTATUS.containing_type = _FEEDITEMSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedItemStatusEnum'] = _FEEDITEMSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemStatusEnum = _reflection.GeneratedProtocolMessageType('FeedItemStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a feed item.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemStatusEnum) + }) +_sym_db.RegisterMessage(FeedItemStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2.py new file mode 100644 index 000000000..fe7e2ea03 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_target_device.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_target_device.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031FeedItemTargetDeviceProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/feed_item_target_device.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\\\n\x18\x46\x65\x65\x64ItemTargetDeviceEnum\"@\n\x14\x46\x65\x65\x64ItemTargetDevice\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06MOBILE\x10\x02\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19\x46\x65\x65\x64ItemTargetDeviceProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE = _descriptor.EnumDescriptor( + name='FeedItemTargetDevice', + full_name='google.ads.googleads.v5.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=158, + serialized_end=222, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE) + + +_FEEDITEMTARGETDEVICEENUM = _descriptor.Descriptor( + name='FeedItemTargetDeviceEnum', + full_name='google.ads.googleads.v5.enums.FeedItemTargetDeviceEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=222, +) + +_FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE.containing_type = _FEEDITEMTARGETDEVICEENUM +DESCRIPTOR.message_types_by_name['FeedItemTargetDeviceEnum'] = _FEEDITEMTARGETDEVICEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemTargetDeviceEnum = _reflection.GeneratedProtocolMessageType('FeedItemTargetDeviceEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGETDEVICEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_target_device_pb2' + , + '__doc__': """Container for enum describing possible data types for a feed item + target device.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemTargetDeviceEnum) + }) +_sym_db.RegisterMessage(FeedItemTargetDeviceEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_device_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2.py new file mode 100644 index 000000000..41192c802 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_target_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_target_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031FeedItemTargetStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/feed_item_target_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"j\n\x18\x46\x65\x65\x64ItemTargetStatusEnum\"N\n\x14\x46\x65\x65\x64ItemTargetStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19\x46\x65\x65\x64ItemTargetStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMTARGETSTATUSENUM_FEEDITEMTARGETSTATUS = _descriptor.EnumDescriptor( + name='FeedItemTargetStatus', + full_name='google.ads.googleads.v5.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=158, + serialized_end=236, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMTARGETSTATUSENUM_FEEDITEMTARGETSTATUS) + + +_FEEDITEMTARGETSTATUSENUM = _descriptor.Descriptor( + name='FeedItemTargetStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedItemTargetStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMTARGETSTATUSENUM_FEEDITEMTARGETSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=236, +) + +_FEEDITEMTARGETSTATUSENUM_FEEDITEMTARGETSTATUS.containing_type = _FEEDITEMTARGETSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedItemTargetStatusEnum'] = _FEEDITEMTARGETSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemTargetStatusEnum = _reflection.GeneratedProtocolMessageType('FeedItemTargetStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGETSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_target_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a feed item target.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemTargetStatusEnum) + }) +_sym_db.RegisterMessage(FeedItemTargetStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2.py new file mode 100644 index 000000000..dfddd80a2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_target_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_target_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\027FeedItemTargetTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/enums/feed_item_target_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"w\n\x16\x46\x65\x65\x64ItemTargetTypeEnum\"]\n\x12\x46\x65\x65\x64ItemTargetType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x43\x41MPAIGN\x10\x02\x12\x0c\n\x08\x41\x44_GROUP\x10\x03\x12\r\n\tCRITERION\x10\x04\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17\x46\x65\x65\x64ItemTargetTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMTARGETTYPEENUM_FEEDITEMTARGETTYPE = _descriptor.EnumDescriptor( + name='FeedItemTargetType', + full_name='google.ads.googleads.v5.enums.FeedItemTargetTypeEnum.FeedItemTargetType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRITERION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=247, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMTARGETTYPEENUM_FEEDITEMTARGETTYPE) + + +_FEEDITEMTARGETTYPEENUM = _descriptor.Descriptor( + name='FeedItemTargetTypeEnum', + full_name='google.ads.googleads.v5.enums.FeedItemTargetTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMTARGETTYPEENUM_FEEDITEMTARGETTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=247, +) + +_FEEDITEMTARGETTYPEENUM_FEEDITEMTARGETTYPE.containing_type = _FEEDITEMTARGETTYPEENUM +DESCRIPTOR.message_types_by_name['FeedItemTargetTypeEnum'] = _FEEDITEMTARGETTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemTargetTypeEnum = _reflection.GeneratedProtocolMessageType('FeedItemTargetTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGETTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_target_type_pb2' + , + '__doc__': """Container for enum describing possible types of a feed item target.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemTargetTypeEnum) + }) +_sym_db.RegisterMessage(FeedItemTargetTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_target_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2.py new file mode 100644 index 000000000..1d609152a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_item_validation_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_item_validation_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035FeedItemValidationStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/feed_item_validation_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"}\n\x1c\x46\x65\x65\x64ItemValidationStatusEnum\"]\n\x18\x46\x65\x65\x64ItemValidationStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07INVALID\x10\x03\x12\t\n\x05VALID\x10\x04\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x46\x65\x65\x64ItemValidationStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMVALIDATIONSTATUSENUM_FEEDITEMVALIDATIONSTATUS = _descriptor.EnumDescriptor( + name='FeedItemValidationStatus', + full_name='google.ads.googleads.v5.enums.FeedItemValidationStatusEnum.FeedItemValidationStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALID', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=166, + serialized_end=259, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMVALIDATIONSTATUSENUM_FEEDITEMVALIDATIONSTATUS) + + +_FEEDITEMVALIDATIONSTATUSENUM = _descriptor.Descriptor( + name='FeedItemValidationStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedItemValidationStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMVALIDATIONSTATUSENUM_FEEDITEMVALIDATIONSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=259, +) + +_FEEDITEMVALIDATIONSTATUSENUM_FEEDITEMVALIDATIONSTATUS.containing_type = _FEEDITEMVALIDATIONSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedItemValidationStatusEnum'] = _FEEDITEMVALIDATIONSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemValidationStatusEnum = _reflection.GeneratedProtocolMessageType('FeedItemValidationStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMVALIDATIONSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_item_validation_status_pb2' + , + '__doc__': """Container for enum describing possible validation statuses of a feed + item.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedItemValidationStatusEnum) + }) +_sym_db.RegisterMessage(FeedItemValidationStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_item_validation_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2.py new file mode 100644 index 000000000..d27f72952 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_link_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_link_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\023FeedLinkStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/enums/feed_link_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"^\n\x12\x46\x65\x65\x64LinkStatusEnum\"H\n\x0e\x46\x65\x65\x64LinkStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xe8\x01\n!com.google.ads.googleads.v5.enumsB\x13\x46\x65\x65\x64LinkStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDLINKSTATUSENUM_FEEDLINKSTATUS = _descriptor.EnumDescriptor( + name='FeedLinkStatus', + full_name='google.ads.googleads.v5.enums.FeedLinkStatusEnum.FeedLinkStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=145, + serialized_end=217, +) +_sym_db.RegisterEnumDescriptor(_FEEDLINKSTATUSENUM_FEEDLINKSTATUS) + + +_FEEDLINKSTATUSENUM = _descriptor.Descriptor( + name='FeedLinkStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedLinkStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDLINKSTATUSENUM_FEEDLINKSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=217, +) + +_FEEDLINKSTATUSENUM_FEEDLINKSTATUS.containing_type = _FEEDLINKSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedLinkStatusEnum'] = _FEEDLINKSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedLinkStatusEnum = _reflection.GeneratedProtocolMessageType('FeedLinkStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDLINKSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_link_status_pb2' + , + '__doc__': """Container for an enum describing possible statuses of a feed link.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedLinkStatusEnum) + }) +_sym_db.RegisterMessage(FeedLinkStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_link_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2.py new file mode 100644 index 000000000..8d5b30361 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_mapping_criterion_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_mapping_criterion_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035FeedMappingCriterionTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/feed_mapping_criterion_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8d\x01\n\x1c\x46\x65\x65\x64MappingCriterionTypeEnum\"m\n\x18\x46\x65\x65\x64MappingCriterionType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1cLOCATION_EXTENSION_TARGETING\x10\x04\x12\x11\n\rDSA_PAGE_FEED\x10\x03\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1d\x46\x65\x65\x64MappingCriterionTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDMAPPINGCRITERIONTYPEENUM_FEEDMAPPINGCRITERIONTYPE = _descriptor.EnumDescriptor( + name='FeedMappingCriterionType', + full_name='google.ads.googleads.v5.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_EXTENSION_TARGETING', index=2, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DSA_PAGE_FEED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=167, + serialized_end=276, +) +_sym_db.RegisterEnumDescriptor(_FEEDMAPPINGCRITERIONTYPEENUM_FEEDMAPPINGCRITERIONTYPE) + + +_FEEDMAPPINGCRITERIONTYPEENUM = _descriptor.Descriptor( + name='FeedMappingCriterionTypeEnum', + full_name='google.ads.googleads.v5.enums.FeedMappingCriterionTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDMAPPINGCRITERIONTYPEENUM_FEEDMAPPINGCRITERIONTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=276, +) + +_FEEDMAPPINGCRITERIONTYPEENUM_FEEDMAPPINGCRITERIONTYPE.containing_type = _FEEDMAPPINGCRITERIONTYPEENUM +DESCRIPTOR.message_types_by_name['FeedMappingCriterionTypeEnum'] = _FEEDMAPPINGCRITERIONTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedMappingCriterionTypeEnum = _reflection.GeneratedProtocolMessageType('FeedMappingCriterionTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDMAPPINGCRITERIONTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_mapping_criterion_type_pb2' + , + '__doc__': """Container for enum describing possible criterion types for a feed + mapping.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedMappingCriterionTypeEnum) + }) +_sym_db.RegisterMessage(FeedMappingCriterionTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_mapping_criterion_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2.py new file mode 100644 index 000000000..9a5f4ce6c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_mapping_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_mapping_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026FeedMappingStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/feed_mapping_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"d\n\x15\x46\x65\x65\x64MappingStatusEnum\"K\n\x11\x46\x65\x65\x64MappingStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16\x46\x65\x65\x64MappingStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDMAPPINGSTATUSENUM_FEEDMAPPINGSTATUS = _descriptor.EnumDescriptor( + name='FeedMappingStatus', + full_name='google.ads.googleads.v5.enums.FeedMappingStatusEnum.FeedMappingStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=151, + serialized_end=226, +) +_sym_db.RegisterEnumDescriptor(_FEEDMAPPINGSTATUSENUM_FEEDMAPPINGSTATUS) + + +_FEEDMAPPINGSTATUSENUM = _descriptor.Descriptor( + name='FeedMappingStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedMappingStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDMAPPINGSTATUSENUM_FEEDMAPPINGSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=226, +) + +_FEEDMAPPINGSTATUSENUM_FEEDMAPPINGSTATUS.containing_type = _FEEDMAPPINGSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedMappingStatusEnum'] = _FEEDMAPPINGSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedMappingStatusEnum = _reflection.GeneratedProtocolMessageType('FeedMappingStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDMAPPINGSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_mapping_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a feed mapping.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedMappingStatusEnum) + }) +_sym_db.RegisterMessage(FeedMappingStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_mapping_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_origin_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_origin_pb2.py new file mode 100644 index 000000000..91919789e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_origin_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_origin.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_origin.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\017FeedOriginProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/feed_origin.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"R\n\x0e\x46\x65\x65\x64OriginEnum\"@\n\nFeedOrigin\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04USER\x10\x02\x12\n\n\x06GOOGLE\x10\x03\x42\xe4\x01\n!com.google.ads.googleads.v5.enumsB\x0f\x46\x65\x65\x64OriginProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDORIGINENUM_FEEDORIGIN = _descriptor.EnumDescriptor( + name='FeedOrigin', + full_name='google.ads.googleads.v5.enums.FeedOriginEnum.FeedOrigin', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=200, +) +_sym_db.RegisterEnumDescriptor(_FEEDORIGINENUM_FEEDORIGIN) + + +_FEEDORIGINENUM = _descriptor.Descriptor( + name='FeedOriginEnum', + full_name='google.ads.googleads.v5.enums.FeedOriginEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDORIGINENUM_FEEDORIGIN, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=200, +) + +_FEEDORIGINENUM_FEEDORIGIN.containing_type = _FEEDORIGINENUM +DESCRIPTOR.message_types_by_name['FeedOriginEnum'] = _FEEDORIGINENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedOriginEnum = _reflection.GeneratedProtocolMessageType('FeedOriginEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDORIGINENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_origin_pb2' + , + '__doc__': """Container for enum describing possible values for a feed origin.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedOriginEnum) + }) +_sym_db.RegisterMessage(FeedOriginEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_origin_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_origin_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_origin_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/feed_status_pb2.py b/google/ads/google_ads/v5/proto/enums/feed_status_pb2.py new file mode 100644 index 000000000..3c72e032c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/feed_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/feed_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\017FeedStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/feed_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"V\n\x0e\x46\x65\x65\x64StatusEnum\"D\n\nFeedStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xe4\x01\n!com.google.ads.googleads.v5.enumsB\x0f\x46\x65\x65\x64StatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDSTATUSENUM_FEEDSTATUS = _descriptor.EnumDescriptor( + name='FeedStatus', + full_name='google.ads.googleads.v5.enums.FeedStatusEnum.FeedStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=204, +) +_sym_db.RegisterEnumDescriptor(_FEEDSTATUSENUM_FEEDSTATUS) + + +_FEEDSTATUSENUM = _descriptor.Descriptor( + name='FeedStatusEnum', + full_name='google.ads.googleads.v5.enums.FeedStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDSTATUSENUM_FEEDSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=204, +) + +_FEEDSTATUSENUM_FEEDSTATUS.containing_type = _FEEDSTATUSENUM +DESCRIPTOR.message_types_by_name['FeedStatusEnum'] = _FEEDSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedStatusEnum = _reflection.GeneratedProtocolMessageType('FeedStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.feed_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a feed.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FeedStatusEnum) + }) +_sym_db.RegisterMessage(FeedStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/feed_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/feed_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/feed_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2.py new file mode 100644 index 000000000..b4a997708 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2.py @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/flight_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/flight_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034FlightsPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/flight_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xb2\x03\n\x1a\x46lightPlaceholderFieldEnum\"\x93\x03\n\x16\x46lightPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0e\x44\x45STINATION_ID\x10\x02\x12\r\n\tORIGIN_ID\x10\x03\x12\x16\n\x12\x46LIGHT_DESCRIPTION\x10\x04\x12\x0f\n\x0bORIGIN_NAME\x10\x05\x12\x14\n\x10\x44\x45STINATION_NAME\x10\x06\x12\x10\n\x0c\x46LIGHT_PRICE\x10\x07\x12\x13\n\x0f\x46ORMATTED_PRICE\x10\x08\x12\x15\n\x11\x46LIGHT_SALE_PRICE\x10\t\x12\x18\n\x14\x46ORMATTED_SALE_PRICE\x10\n\x12\r\n\tIMAGE_URL\x10\x0b\x12\x0e\n\nFINAL_URLS\x10\x0c\x12\x15\n\x11\x46INAL_MOBILE_URLS\x10\r\x12\x10\n\x0cTRACKING_URL\x10\x0e\x12\x14\n\x10\x41NDROID_APP_LINK\x10\x0f\x12\x1b\n\x17SIMILAR_DESTINATION_IDS\x10\x10\x12\x10\n\x0cIOS_APP_LINK\x10\x11\x12\x14\n\x10IOS_APP_STORE_ID\x10\x12\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1c\x46lightsPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FLIGHTPLACEHOLDERFIELDENUM_FLIGHTPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='FlightPlaceholderField', + full_name='google.ads.googleads.v5.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESTINATION_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORIGIN_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLIGHT_DESCRIPTION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORIGIN_NAME', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESTINATION_NAME', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLIGHT_PRICE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORMATTED_PRICE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLIGHT_SALE_PRICE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORMATTED_SALE_PRICE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_URL', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URLS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_MOBILE_URLS', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_URL', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_APP_LINK', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIMILAR_DESTINATION_IDS', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_LINK', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_STORE_ID', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=566, +) +_sym_db.RegisterEnumDescriptor(_FLIGHTPLACEHOLDERFIELDENUM_FLIGHTPLACEHOLDERFIELD) + + +_FLIGHTPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='FlightPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.FlightPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FLIGHTPLACEHOLDERFIELDENUM_FLIGHTPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=566, +) + +_FLIGHTPLACEHOLDERFIELDENUM_FLIGHTPLACEHOLDERFIELD.containing_type = _FLIGHTPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['FlightPlaceholderFieldEnum'] = _FLIGHTPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FlightPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('FlightPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _FLIGHTPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.flight_placeholder_field_pb2' + , + '__doc__': """Values for Flight placeholder fields. For more information about + dynamic remarketing feeds, see https://support.google.com/google- + ads/answer/6053288.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FlightPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(FlightPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/flight_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2.py new file mode 100644 index 000000000..24480f67f --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/frequency_cap_event_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/frequency_cap_event_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032FrequencyCapEventTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/frequency_cap_event_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"r\n\x19\x46requencyCapEventTypeEnum\"U\n\x15\x46requencyCapEventType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nIMPRESSION\x10\x02\x12\x0e\n\nVIDEO_VIEW\x10\x03\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1a\x46requencyCapEventTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FREQUENCYCAPEVENTTYPEENUM_FREQUENCYCAPEVENTTYPE = _descriptor.EnumDescriptor( + name='FrequencyCapEventType', + full_name='google.ads.googleads.v5.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMPRESSION', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_VIEW', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=245, +) +_sym_db.RegisterEnumDescriptor(_FREQUENCYCAPEVENTTYPEENUM_FREQUENCYCAPEVENTTYPE) + + +_FREQUENCYCAPEVENTTYPEENUM = _descriptor.Descriptor( + name='FrequencyCapEventTypeEnum', + full_name='google.ads.googleads.v5.enums.FrequencyCapEventTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FREQUENCYCAPEVENTTYPEENUM_FREQUENCYCAPEVENTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=245, +) + +_FREQUENCYCAPEVENTTYPEENUM_FREQUENCYCAPEVENTTYPE.containing_type = _FREQUENCYCAPEVENTTYPEENUM +DESCRIPTOR.message_types_by_name['FrequencyCapEventTypeEnum'] = _FREQUENCYCAPEVENTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FrequencyCapEventTypeEnum = _reflection.GeneratedProtocolMessageType('FrequencyCapEventTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAPEVENTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.frequency_cap_event_type_pb2' + , + '__doc__': """Container for enum describing the type of event that the cap applies + to.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FrequencyCapEventTypeEnum) + }) +_sym_db.RegisterMessage(FrequencyCapEventTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_event_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2.py new file mode 100644 index 000000000..4a5647c40 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/frequency_cap_level.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/frequency_cap_level.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026FrequencyCapLevelProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/frequency_cap_level.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"w\n\x15\x46requencyCapLevelEnum\"^\n\x11\x46requencyCapLevel\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x41\x44_GROUP_AD\x10\x02\x12\x0c\n\x08\x41\x44_GROUP\x10\x03\x12\x0c\n\x08\x43\x41MPAIGN\x10\x04\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16\x46requencyCapLevelProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FREQUENCYCAPLEVELENUM_FREQUENCYCAPLEVEL = _descriptor.EnumDescriptor( + name='FrequencyCapLevel', + full_name='google.ads.googleads.v5.enums.FrequencyCapLevelEnum.FrequencyCapLevel', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_AD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=151, + serialized_end=245, +) +_sym_db.RegisterEnumDescriptor(_FREQUENCYCAPLEVELENUM_FREQUENCYCAPLEVEL) + + +_FREQUENCYCAPLEVELENUM = _descriptor.Descriptor( + name='FrequencyCapLevelEnum', + full_name='google.ads.googleads.v5.enums.FrequencyCapLevelEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FREQUENCYCAPLEVELENUM_FREQUENCYCAPLEVEL, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=245, +) + +_FREQUENCYCAPLEVELENUM_FREQUENCYCAPLEVEL.containing_type = _FREQUENCYCAPLEVELENUM +DESCRIPTOR.message_types_by_name['FrequencyCapLevelEnum'] = _FREQUENCYCAPLEVELENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FrequencyCapLevelEnum = _reflection.GeneratedProtocolMessageType('FrequencyCapLevelEnum', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAPLEVELENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.frequency_cap_level_pb2' + , + '__doc__': """Container for enum describing the level on which the cap is to be + applied.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FrequencyCapLevelEnum) + }) +_sym_db.RegisterMessage(FrequencyCapLevelEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_level_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2.py new file mode 100644 index 000000000..3ae3107c7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/frequency_cap_time_unit.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/frequency_cap_time_unit.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031FrequencyCapTimeUnitProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/frequency_cap_time_unit.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"n\n\x18\x46requencyCapTimeUnitEnum\"R\n\x14\x46requencyCapTimeUnit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x07\n\x03\x44\x41Y\x10\x02\x12\x08\n\x04WEEK\x10\x03\x12\t\n\x05MONTH\x10\x04\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19\x46requencyCapTimeUnitProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT = _descriptor.EnumDescriptor( + name='FrequencyCapTimeUnit', + full_name='google.ads.googleads.v5.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DAY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEEK', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MONTH', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=158, + serialized_end=240, +) +_sym_db.RegisterEnumDescriptor(_FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT) + + +_FREQUENCYCAPTIMEUNITENUM = _descriptor.Descriptor( + name='FrequencyCapTimeUnitEnum', + full_name='google.ads.googleads.v5.enums.FrequencyCapTimeUnitEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=240, +) + +_FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT.containing_type = _FREQUENCYCAPTIMEUNITENUM +DESCRIPTOR.message_types_by_name['FrequencyCapTimeUnitEnum'] = _FREQUENCYCAPTIMEUNITENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FrequencyCapTimeUnitEnum = _reflection.GeneratedProtocolMessageType('FrequencyCapTimeUnitEnum', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAPTIMEUNITENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.frequency_cap_time_unit_pb2' + , + '__doc__': """Container for enum describing the unit of time the cap is defined at.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.FrequencyCapTimeUnitEnum) + }) +_sym_db.RegisterMessage(FrequencyCapTimeUnitEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/frequency_cap_time_unit_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/gender_type_pb2.py b/google/ads/google_ads/v5/proto/enums/gender_type_pb2.py new file mode 100644 index 000000000..e1bb11832 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/gender_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/gender_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/gender_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\017GenderTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/enums/gender_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"d\n\x0eGenderTypeEnum\"R\n\nGenderType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04MALE\x10\n\x12\n\n\x06\x46\x45MALE\x10\x0b\x12\x10\n\x0cUNDETERMINED\x10\x14\x42\xe4\x01\n!com.google.ads.googleads.v5.enumsB\x0fGenderTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_GENDERTYPEENUM_GENDERTYPE = _descriptor.EnumDescriptor( + name='GenderType', + full_name='google.ads.googleads.v5.enums.GenderTypeEnum.GenderType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALE', index=2, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEMALE', index=3, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNDETERMINED', index=4, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=218, +) +_sym_db.RegisterEnumDescriptor(_GENDERTYPEENUM_GENDERTYPE) + + +_GENDERTYPEENUM = _descriptor.Descriptor( + name='GenderTypeEnum', + full_name='google.ads.googleads.v5.enums.GenderTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GENDERTYPEENUM_GENDERTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=218, +) + +_GENDERTYPEENUM_GENDERTYPE.containing_type = _GENDERTYPEENUM +DESCRIPTOR.message_types_by_name['GenderTypeEnum'] = _GENDERTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GenderTypeEnum = _reflection.GeneratedProtocolMessageType('GenderTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _GENDERTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.gender_type_pb2' + , + '__doc__': """Container for enum describing the type of demographic genders.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.GenderTypeEnum) + }) +_sym_db.RegisterMessage(GenderTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/gender_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/gender_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/gender_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2.py b/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2.py new file mode 100644 index 000000000..f50efecfa --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/geo_target_constant_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/geo_target_constant_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034GeoTargetConstantStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/geo_target_constant_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"x\n\x1bGeoTargetConstantStatusEnum\"Y\n\x17GeoTargetConstantStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x13\n\x0fREMOVAL_PLANNED\x10\x03\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1cGeoTargetConstantStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_GEOTARGETCONSTANTSTATUSENUM_GEOTARGETCONSTANTSTATUS = _descriptor.EnumDescriptor( + name='GeoTargetConstantStatus', + full_name='google.ads.googleads.v5.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVAL_PLANNED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=164, + serialized_end=253, +) +_sym_db.RegisterEnumDescriptor(_GEOTARGETCONSTANTSTATUSENUM_GEOTARGETCONSTANTSTATUS) + + +_GEOTARGETCONSTANTSTATUSENUM = _descriptor.Descriptor( + name='GeoTargetConstantStatusEnum', + full_name='google.ads.googleads.v5.enums.GeoTargetConstantStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GEOTARGETCONSTANTSTATUSENUM_GEOTARGETCONSTANTSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=253, +) + +_GEOTARGETCONSTANTSTATUSENUM_GEOTARGETCONSTANTSTATUS.containing_type = _GEOTARGETCONSTANTSTATUSENUM +DESCRIPTOR.message_types_by_name['GeoTargetConstantStatusEnum'] = _GEOTARGETCONSTANTSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GeoTargetConstantStatusEnum = _reflection.GeneratedProtocolMessageType('GeoTargetConstantStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _GEOTARGETCONSTANTSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.geo_target_constant_status_pb2' + , + '__doc__': """Container for describing the status of a geo target constant.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.GeoTargetConstantStatusEnum) + }) +_sym_db.RegisterMessage(GeoTargetConstantStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/geo_target_constant_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2.py b/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2.py new file mode 100644 index 000000000..97b6bd77c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/geo_targeting_restriction.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/geo_targeting_restriction.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034GeoTargetingRestrictionProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/geo_targeting_restriction.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"p\n\x1bGeoTargetingRestrictionEnum\"Q\n\x17GeoTargetingRestriction\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14LOCATION_OF_PRESENCE\x10\x02\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1cGeoTargetingRestrictionProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_GEOTARGETINGRESTRICTIONENUM_GEOTARGETINGRESTRICTION = _descriptor.EnumDescriptor( + name='GeoTargetingRestriction', + full_name='google.ads.googleads.v5.enums.GeoTargetingRestrictionEnum.GeoTargetingRestriction', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_OF_PRESENCE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=244, +) +_sym_db.RegisterEnumDescriptor(_GEOTARGETINGRESTRICTIONENUM_GEOTARGETINGRESTRICTION) + + +_GEOTARGETINGRESTRICTIONENUM = _descriptor.Descriptor( + name='GeoTargetingRestrictionEnum', + full_name='google.ads.googleads.v5.enums.GeoTargetingRestrictionEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GEOTARGETINGRESTRICTIONENUM_GEOTARGETINGRESTRICTION, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=244, +) + +_GEOTARGETINGRESTRICTIONENUM_GEOTARGETINGRESTRICTION.containing_type = _GEOTARGETINGRESTRICTIONENUM +DESCRIPTOR.message_types_by_name['GeoTargetingRestrictionEnum'] = _GEOTARGETINGRESTRICTIONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GeoTargetingRestrictionEnum = _reflection.GeneratedProtocolMessageType('GeoTargetingRestrictionEnum', (_message.Message,), { + 'DESCRIPTOR' : _GEOTARGETINGRESTRICTIONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.geo_targeting_restriction_pb2' + , + '__doc__': """Message describing feed item geo targeting restriction.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.GeoTargetingRestrictionEnum) + }) +_sym_db.RegisterMessage(GeoTargetingRestrictionEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/geo_targeting_restriction_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/geo_targeting_type_pb2.py b/google/ads/google_ads/v5/proto/enums/geo_targeting_type_pb2.py new file mode 100644 index 000000000..c6aa67d4f --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/geo_targeting_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/geo_targeting_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/geo_targeting_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025GeoTargetingTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nB\xe9\x01\n!com.google.ads.googleads.v5.enumsB\x14InteractionTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_INTERACTIONTYPEENUM_INTERACTIONTYPE = _descriptor.EnumDescriptor( + name='InteractionType', + full_name='google.ads.googleads.v5.enums.InteractionTypeEnum.InteractionType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLS', index=2, number=8000, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=205, +) +_sym_db.RegisterEnumDescriptor(_INTERACTIONTYPEENUM_INTERACTIONTYPE) + + +_INTERACTIONTYPEENUM = _descriptor.Descriptor( + name='InteractionTypeEnum', + full_name='google.ads.googleads.v5.enums.InteractionTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _INTERACTIONTYPEENUM_INTERACTIONTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=205, +) + +_INTERACTIONTYPEENUM_INTERACTIONTYPE.containing_type = _INTERACTIONTYPEENUM +DESCRIPTOR.message_types_by_name['InteractionTypeEnum'] = _INTERACTIONTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +InteractionTypeEnum = _reflection.GeneratedProtocolMessageType('InteractionTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _INTERACTIONTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.interaction_type_pb2' + , + '__doc__': """Container for enum describing possible interaction types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.InteractionTypeEnum) + }) +_sym_db.RegisterMessage(InteractionTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/interaction_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/interaction_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/interaction_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/invoice_type_pb2.py b/google/ads/google_ads/v5/proto/enums/invoice_type_pb2.py new file mode 100644 index 000000000..b513d8dd3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/invoice_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/invoice_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/invoice_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\020InvoiceTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/enums/invoice_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\\\n\x0fInvoiceTypeEnum\"I\n\x0bInvoiceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x43REDIT_MEMO\x10\x02\x12\x0b\n\x07INVOICE\x10\x03\x42\xe5\x01\n!com.google.ads.googleads.v5.enumsB\x10InvoiceTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_INVOICETYPEENUM_INVOICETYPE = _descriptor.EnumDescriptor( + name='InvoiceType', + full_name='google.ads.googleads.v5.enums.InvoiceTypeEnum.InvoiceType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CREDIT_MEMO', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVOICE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=138, + serialized_end=211, +) +_sym_db.RegisterEnumDescriptor(_INVOICETYPEENUM_INVOICETYPE) + + +_INVOICETYPEENUM = _descriptor.Descriptor( + name='InvoiceTypeEnum', + full_name='google.ads.googleads.v5.enums.InvoiceTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _INVOICETYPEENUM_INVOICETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=211, +) + +_INVOICETYPEENUM_INVOICETYPE.containing_type = _INVOICETYPEENUM +DESCRIPTOR.message_types_by_name['InvoiceTypeEnum'] = _INVOICETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +InvoiceTypeEnum = _reflection.GeneratedProtocolMessageType('InvoiceTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _INVOICETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.invoice_type_pb2' + , + '__doc__': """Container for enum describing the type of invoices.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.InvoiceTypeEnum) + }) +_sym_db.RegisterMessage(InvoiceTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/invoice_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/invoice_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/invoice_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2.py new file mode 100644 index 000000000..5276e2148 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2.py @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/job_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/job_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031JobsPlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/enums/job_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xf1\x02\n\x17JobPlaceholderFieldEnum\"\xd5\x02\n\x13JobPlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06JOB_ID\x10\x02\x12\x0f\n\x0bLOCATION_ID\x10\x03\x12\t\n\x05TITLE\x10\x04\x12\x0c\n\x08SUBTITLE\x10\x05\x12\x0f\n\x0b\x44\x45SCRIPTION\x10\x06\x12\r\n\tIMAGE_URL\x10\x07\x12\x0c\n\x08\x43\x41TEGORY\x10\x08\x12\x17\n\x13\x43ONTEXTUAL_KEYWORDS\x10\t\x12\x0b\n\x07\x41\x44\x44RESS\x10\n\x12\n\n\x06SALARY\x10\x0b\x12\x0e\n\nFINAL_URLS\x10\x0c\x12\x15\n\x11\x46INAL_MOBILE_URLS\x10\x0e\x12\x10\n\x0cTRACKING_URL\x10\x0f\x12\x14\n\x10\x41NDROID_APP_LINK\x10\x10\x12\x13\n\x0fSIMILAR_JOB_IDS\x10\x11\x12\x10\n\x0cIOS_APP_LINK\x10\x12\x12\x14\n\x10IOS_APP_STORE_ID\x10\x13\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19JobsPlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_JOBPLACEHOLDERFIELDENUM_JOBPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='JobPlaceholderField', + full_name='google.ads.googleads.v5.enums.JobPlaceholderFieldEnum.JobPlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='JOB_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TITLE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SUBTITLE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESCRIPTION', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_URL', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CATEGORY', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTEXTUAL_KEYWORDS', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SALARY', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URLS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_MOBILE_URLS', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_URL', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID_APP_LINK', index=15, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIMILAR_JOB_IDS', index=16, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_LINK', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS_APP_STORE_ID', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=498, +) +_sym_db.RegisterEnumDescriptor(_JOBPLACEHOLDERFIELDENUM_JOBPLACEHOLDERFIELD) + + +_JOBPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='JobPlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.JobPlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _JOBPLACEHOLDERFIELDENUM_JOBPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=498, +) + +_JOBPLACEHOLDERFIELDENUM_JOBPLACEHOLDERFIELD.containing_type = _JOBPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['JobPlaceholderFieldEnum'] = _JOBPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +JobPlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('JobPlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _JOBPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.job_placeholder_field_pb2' + , + '__doc__': """Values for Job placeholder fields. For more information about dynamic + remarketing feeds, see https://support.google.com/google- + ads/answer/6053288.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.JobPlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(JobPlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/job_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/keyword_match_type_pb2.py b/google/ads/google_ads/v5/proto/enums/keyword_match_type_pb2.py new file mode 100644 index 000000000..3da63c632 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/keyword_match_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/keyword_match_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/keyword_match_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025KeywordMatchTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/keyword_plan_network.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x7f\n\x16KeywordPlanNetworkEnum\"e\n\x12KeywordPlanNetwork\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rGOOGLE_SEARCH\x10\x02\x12\x1e\n\x1aGOOGLE_SEARCH_AND_PARTNERS\x10\x03\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17KeywordPlanNetworkProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK = _descriptor.EnumDescriptor( + name='KeywordPlanNetwork', + full_name='google.ads.googleads.v5.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_SEARCH', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_SEARCH_AND_PARTNERS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=254, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK) + + +_KEYWORDPLANNETWORKENUM = _descriptor.Descriptor( + name='KeywordPlanNetworkEnum', + full_name='google.ads.googleads.v5.enums.KeywordPlanNetworkEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=254, +) + +_KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK.containing_type = _KEYWORDPLANNETWORKENUM +DESCRIPTOR.message_types_by_name['KeywordPlanNetworkEnum'] = _KEYWORDPLANNETWORKENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanNetworkEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanNetworkEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANNETWORKENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.keyword_plan_network_pb2' + , + '__doc__': """Container for enumeration of keyword plan forecastable network types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.KeywordPlanNetworkEnum) + }) +_sym_db.RegisterMessage(KeywordPlanNetworkEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/keyword_plan_network_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/keyword_plan_network_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/keyword_plan_network_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/label_status_pb2.py b/google/ads/google_ads/v5/proto/enums/label_status_pb2.py new file mode 100644 index 000000000..12a57711f --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/label_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/label_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/label_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\020LabelStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/enums/label_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"X\n\x0fLabelStatusEnum\"E\n\x0bLabelStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07REMOVED\x10\x03\x42\xe5\x01\n!com.google.ads.googleads.v5.enumsB\x10LabelStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LABELSTATUSENUM_LABELSTATUS = _descriptor.EnumDescriptor( + name='LabelStatus', + full_name='google.ads.googleads.v5.enums.LabelStatusEnum.LabelStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=138, + serialized_end=207, +) +_sym_db.RegisterEnumDescriptor(_LABELSTATUSENUM_LABELSTATUS) + + +_LABELSTATUSENUM = _descriptor.Descriptor( + name='LabelStatusEnum', + full_name='google.ads.googleads.v5.enums.LabelStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LABELSTATUSENUM_LABELSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=207, +) + +_LABELSTATUSENUM_LABELSTATUS.containing_type = _LABELSTATUSENUM +DESCRIPTOR.message_types_by_name['LabelStatusEnum'] = _LABELSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LabelStatusEnum = _reflection.GeneratedProtocolMessageType('LabelStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _LABELSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.label_status_pb2' + , + '__doc__': """Container for enum describing possible status of a label.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.LabelStatusEnum) + }) +_sym_db.RegisterMessage(LabelStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/label_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/label_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/label_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2.py b/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2.py new file mode 100644 index 000000000..1b6d0eb7c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/legacy_app_install_ad_app_store.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/legacy_app_install_ad_app_store.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\037LegacyAppInstallAdAppStoreProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/enums/legacy_app_install_ad_app_store.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xc1\x01\n\x1eLegacyAppInstallAdAppStoreEnum\"\x9e\x01\n\x1aLegacyAppInstallAdAppStore\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0f\x41PPLE_APP_STORE\x10\x02\x12\x0f\n\x0bGOOGLE_PLAY\x10\x03\x12\x11\n\rWINDOWS_STORE\x10\x04\x12\x17\n\x13WINDOWS_PHONE_STORE\x10\x05\x12\x10\n\x0c\x43N_APP_STORE\x10\x06\x42\xf4\x01\n!com.google.ads.googleads.v5.enumsB\x1fLegacyAppInstallAdAppStoreProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LEGACYAPPINSTALLADAPPSTOREENUM_LEGACYAPPINSTALLADAPPSTORE = _descriptor.EnumDescriptor( + name='LegacyAppInstallAdAppStore', + full_name='google.ads.googleads.v5.enums.LegacyAppInstallAdAppStoreEnum.LegacyAppInstallAdAppStore', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPLE_APP_STORE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_PLAY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WINDOWS_STORE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WINDOWS_PHONE_STORE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CN_APP_STORE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=174, + serialized_end=332, +) +_sym_db.RegisterEnumDescriptor(_LEGACYAPPINSTALLADAPPSTOREENUM_LEGACYAPPINSTALLADAPPSTORE) + + +_LEGACYAPPINSTALLADAPPSTOREENUM = _descriptor.Descriptor( + name='LegacyAppInstallAdAppStoreEnum', + full_name='google.ads.googleads.v5.enums.LegacyAppInstallAdAppStoreEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LEGACYAPPINSTALLADAPPSTOREENUM_LEGACYAPPINSTALLADAPPSTORE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=139, + serialized_end=332, +) + +_LEGACYAPPINSTALLADAPPSTOREENUM_LEGACYAPPINSTALLADAPPSTORE.containing_type = _LEGACYAPPINSTALLADAPPSTOREENUM +DESCRIPTOR.message_types_by_name['LegacyAppInstallAdAppStoreEnum'] = _LEGACYAPPINSTALLADAPPSTOREENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LegacyAppInstallAdAppStoreEnum = _reflection.GeneratedProtocolMessageType('LegacyAppInstallAdAppStoreEnum', (_message.Message,), { + 'DESCRIPTOR' : _LEGACYAPPINSTALLADAPPSTOREENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.legacy_app_install_ad_app_store_pb2' + , + '__doc__': """Container for enum describing app store type in a legacy app install + ad.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.LegacyAppInstallAdAppStoreEnum) + }) +_sym_db.RegisterMessage(LegacyAppInstallAdAppStoreEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/legacy_app_install_ad_app_store_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2.py b/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2.py new file mode 100644 index 000000000..b075bea3a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/linked_account_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/linked_account_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026LinkedAccountTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/linked_account_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8b\x01\n\x15LinkedAccountTypeEnum\"r\n\x11LinkedAccountType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1d\n\x19THIRD_PARTY_APP_ANALYTICS\x10\x02\x12\x10\n\x0c\x44\x41TA_PARTNER\x10\x03\x12\x0e\n\nGOOGLE_ADS\x10\x04\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16LinkedAccountTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LINKEDACCOUNTTYPEENUM_LINKEDACCOUNTTYPE = _descriptor.EnumDescriptor( + name='LinkedAccountType', + full_name='google.ads.googleads.v5.enums.LinkedAccountTypeEnum.LinkedAccountType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THIRD_PARTY_APP_ANALYTICS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_PARTNER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ADS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=152, + serialized_end=266, +) +_sym_db.RegisterEnumDescriptor(_LINKEDACCOUNTTYPEENUM_LINKEDACCOUNTTYPE) + + +_LINKEDACCOUNTTYPEENUM = _descriptor.Descriptor( + name='LinkedAccountTypeEnum', + full_name='google.ads.googleads.v5.enums.LinkedAccountTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LINKEDACCOUNTTYPEENUM_LINKEDACCOUNTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=266, +) + +_LINKEDACCOUNTTYPEENUM_LINKEDACCOUNTTYPE.containing_type = _LINKEDACCOUNTTYPEENUM +DESCRIPTOR.message_types_by_name['LinkedAccountTypeEnum'] = _LINKEDACCOUNTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LinkedAccountTypeEnum = _reflection.GeneratedProtocolMessageType('LinkedAccountTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _LINKEDACCOUNTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.linked_account_type_pb2' + , + '__doc__': """Container for enum describing different types of Linked accounts.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.LinkedAccountTypeEnum) + }) +_sym_db.RegisterMessage(LinkedAccountTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/linked_account_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/listing_group_type_pb2.py b/google/ads/google_ads/v5/proto/enums/listing_group_type_pb2.py new file mode 100644 index 000000000..91284b660 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/listing_group_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/listing_group_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/listing_group_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025ListingGroupTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/location_source_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"s\n\x16LocationSourceTypeEnum\"Y\n\x12LocationSourceType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12GOOGLE_MY_BUSINESS\x10\x02\x12\r\n\tAFFILIATE\x10\x03\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17LocationSourceTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LOCATIONSOURCETYPEENUM_LOCATIONSOURCETYPE = _descriptor.EnumDescriptor( + name='LocationSourceType', + full_name='google.ads.googleads.v5.enums.LocationSourceTypeEnum.LocationSourceType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_MY_BUSINESS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AFFILIATE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=242, +) +_sym_db.RegisterEnumDescriptor(_LOCATIONSOURCETYPEENUM_LOCATIONSOURCETYPE) + + +_LOCATIONSOURCETYPEENUM = _descriptor.Descriptor( + name='LocationSourceTypeEnum', + full_name='google.ads.googleads.v5.enums.LocationSourceTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LOCATIONSOURCETYPEENUM_LOCATIONSOURCETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=242, +) + +_LOCATIONSOURCETYPEENUM_LOCATIONSOURCETYPE.containing_type = _LOCATIONSOURCETYPEENUM +DESCRIPTOR.message_types_by_name['LocationSourceTypeEnum'] = _LOCATIONSOURCETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LocationSourceTypeEnum = _reflection.GeneratedProtocolMessageType('LocationSourceTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _LOCATIONSOURCETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.location_source_type_pb2' + , + '__doc__': """Used to distinguish the location source type.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.LocationSourceTypeEnum) + }) +_sym_db.RegisterMessage(LocationSourceTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/location_source_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/location_source_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/location_source_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2.py b/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2.py new file mode 100644 index 000000000..3fbe423a6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/manager_link_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/manager_link_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026ManagerLinkStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/enums/manager_link_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8c\x01\n\x15ManagerLinkStatusEnum\"s\n\x11ManagerLinkStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08INACTIVE\x10\x03\x12\x0b\n\x07PENDING\x10\x04\x12\x0b\n\x07REFUSED\x10\x05\x12\x0c\n\x08\x43\x41NCELED\x10\x06\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16ManagerLinkStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MANAGERLINKSTATUSENUM_MANAGERLINKSTATUS = _descriptor.EnumDescriptor( + name='ManagerLinkStatus', + full_name='google.ads.googleads.v5.enums.ManagerLinkStatusEnum.ManagerLinkStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACTIVE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INACTIVE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REFUSED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANCELED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=152, + serialized_end=267, +) +_sym_db.RegisterEnumDescriptor(_MANAGERLINKSTATUSENUM_MANAGERLINKSTATUS) + + +_MANAGERLINKSTATUSENUM = _descriptor.Descriptor( + name='ManagerLinkStatusEnum', + full_name='google.ads.googleads.v5.enums.ManagerLinkStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MANAGERLINKSTATUSENUM_MANAGERLINKSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=267, +) + +_MANAGERLINKSTATUSENUM_MANAGERLINKSTATUS.containing_type = _MANAGERLINKSTATUSENUM +DESCRIPTOR.message_types_by_name['ManagerLinkStatusEnum'] = _MANAGERLINKSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ManagerLinkStatusEnum = _reflection.GeneratedProtocolMessageType('ManagerLinkStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _MANAGERLINKSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.manager_link_status_pb2' + , + '__doc__': """Container for enum describing possible status of a manager and client + link.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ManagerLinkStatusEnum) + }) +_sym_db.RegisterMessage(ManagerLinkStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/manager_link_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2.py b/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2.py new file mode 100644 index 000000000..5bd5bc09b --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/matching_function_context_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/matching_function_context_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB MatchingFunctionContextTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/matching_function_context_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x81\x01\n\x1fMatchingFunctionContextTypeEnum\"^\n\x1bMatchingFunctionContextType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0c\x46\x45\x45\x44_ITEM_ID\x10\x02\x12\x0f\n\x0b\x44\x45VICE_NAME\x10\x03\x42\xf5\x01\n!com.google.ads.googleads.v5.enumsB MatchingFunctionContextTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MATCHINGFUNCTIONCONTEXTTYPEENUM_MATCHINGFUNCTIONCONTEXTTYPE = _descriptor.EnumDescriptor( + name='MatchingFunctionContextType', + full_name='google.ads.googleads.v5.enums.MatchingFunctionContextTypeEnum.MatchingFunctionContextType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ITEM_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVICE_NAME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=173, + serialized_end=267, +) +_sym_db.RegisterEnumDescriptor(_MATCHINGFUNCTIONCONTEXTTYPEENUM_MATCHINGFUNCTIONCONTEXTTYPE) + + +_MATCHINGFUNCTIONCONTEXTTYPEENUM = _descriptor.Descriptor( + name='MatchingFunctionContextTypeEnum', + full_name='google.ads.googleads.v5.enums.MatchingFunctionContextTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MATCHINGFUNCTIONCONTEXTTYPEENUM_MATCHINGFUNCTIONCONTEXTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=267, +) + +_MATCHINGFUNCTIONCONTEXTTYPEENUM_MATCHINGFUNCTIONCONTEXTTYPE.containing_type = _MATCHINGFUNCTIONCONTEXTTYPEENUM +DESCRIPTOR.message_types_by_name['MatchingFunctionContextTypeEnum'] = _MATCHINGFUNCTIONCONTEXTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MatchingFunctionContextTypeEnum = _reflection.GeneratedProtocolMessageType('MatchingFunctionContextTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _MATCHINGFUNCTIONCONTEXTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.matching_function_context_type_pb2' + , + '__doc__': """Container for context types for an operand in a matching function.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MatchingFunctionContextTypeEnum) + }) +_sym_db.RegisterMessage(MatchingFunctionContextTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/matching_function_context_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2.py b/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2.py new file mode 100644 index 000000000..c5168ee56 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/matching_function_operator.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/matching_function_operator.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035MatchingFunctionOperatorProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/matching_function_operator.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x95\x01\n\x1cMatchingFunctionOperatorEnum\"u\n\x18MatchingFunctionOperator\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x06\n\x02IN\x10\x02\x12\x0c\n\x08IDENTITY\x10\x03\x12\n\n\x06\x45QUALS\x10\x04\x12\x07\n\x03\x41ND\x10\x05\x12\x10\n\x0c\x43ONTAINS_ANY\x10\x06\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1dMatchingFunctionOperatorProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MATCHINGFUNCTIONOPERATORENUM_MATCHINGFUNCTIONOPERATOR = _descriptor.EnumDescriptor( + name='MatchingFunctionOperator', + full_name='google.ads.googleads.v5.enums.MatchingFunctionOperatorEnum.MatchingFunctionOperator', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IN', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IDENTITY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EQUALS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AND', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTAINS_ANY', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=166, + serialized_end=283, +) +_sym_db.RegisterEnumDescriptor(_MATCHINGFUNCTIONOPERATORENUM_MATCHINGFUNCTIONOPERATOR) + + +_MATCHINGFUNCTIONOPERATORENUM = _descriptor.Descriptor( + name='MatchingFunctionOperatorEnum', + full_name='google.ads.googleads.v5.enums.MatchingFunctionOperatorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MATCHINGFUNCTIONOPERATORENUM_MATCHINGFUNCTIONOPERATOR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=283, +) + +_MATCHINGFUNCTIONOPERATORENUM_MATCHINGFUNCTIONOPERATOR.containing_type = _MATCHINGFUNCTIONOPERATORENUM +DESCRIPTOR.message_types_by_name['MatchingFunctionOperatorEnum'] = _MATCHINGFUNCTIONOPERATORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MatchingFunctionOperatorEnum = _reflection.GeneratedProtocolMessageType('MatchingFunctionOperatorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MATCHINGFUNCTIONOPERATORENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.matching_function_operator_pb2' + , + '__doc__': """Container for enum describing matching function operator.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MatchingFunctionOperatorEnum) + }) +_sym_db.RegisterMessage(MatchingFunctionOperatorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/matching_function_operator_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/media_type_pb2.py b/google/ads/google_ads/v5/proto/enums/media_type_pb2.py new file mode 100644 index 000000000..5e21a2ebc --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/media_type_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/media_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/media_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\016MediaTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n4google/ads/googleads_v5/proto/enums/media_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8a\x01\n\rMediaTypeEnum\"y\n\tMediaType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05IMAGE\x10\x02\x12\x08\n\x04ICON\x10\x03\x12\x10\n\x0cMEDIA_BUNDLE\x10\x04\x12\t\n\x05\x41UDIO\x10\x05\x12\t\n\x05VIDEO\x10\x06\x12\x11\n\rDYNAMIC_IMAGE\x10\x07\x42\xe3\x01\n!com.google.ads.googleads.v5.enumsB\x0eMediaTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MEDIATYPEENUM_MEDIATYPE = _descriptor.EnumDescriptor( + name='MediaType', + full_name='google.ads.googleads.v5.enums.MediaTypeEnum.MediaType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ICON', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_BUNDLE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUDIO', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_IMAGE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=135, + serialized_end=256, +) +_sym_db.RegisterEnumDescriptor(_MEDIATYPEENUM_MEDIATYPE) + + +_MEDIATYPEENUM = _descriptor.Descriptor( + name='MediaTypeEnum', + full_name='google.ads.googleads.v5.enums.MediaTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIATYPEENUM_MEDIATYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=256, +) + +_MEDIATYPEENUM_MEDIATYPE.containing_type = _MEDIATYPEENUM +DESCRIPTOR.message_types_by_name['MediaTypeEnum'] = _MEDIATYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaTypeEnum = _reflection.GeneratedProtocolMessageType('MediaTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _MEDIATYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.media_type_pb2' + , + '__doc__': """Container for enum describing the types of media.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MediaTypeEnum) + }) +_sym_db.RegisterMessage(MediaTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/media_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/media_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/media_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2.py b/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2.py new file mode 100644 index 000000000..5e0532343 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/merchant_center_link_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/merchant_center_link_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\035MerchantCenterLinkStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/merchant_center_link_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"r\n\x1cMerchantCenterLinkStatusEnum\"R\n\x18MerchantCenterLinkStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x42\xf2\x01\n!com.google.ads.googleads.v5.enumsB\x1dMerchantCenterLinkStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MERCHANTCENTERLINKSTATUSENUM_MERCHANTCENTERLINKSTATUS = _descriptor.EnumDescriptor( + name='MerchantCenterLinkStatus', + full_name='google.ads.googleads.v5.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENABLED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PENDING', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=166, + serialized_end=248, +) +_sym_db.RegisterEnumDescriptor(_MERCHANTCENTERLINKSTATUSENUM_MERCHANTCENTERLINKSTATUS) + + +_MERCHANTCENTERLINKSTATUSENUM = _descriptor.Descriptor( + name='MerchantCenterLinkStatusEnum', + full_name='google.ads.googleads.v5.enums.MerchantCenterLinkStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MERCHANTCENTERLINKSTATUSENUM_MERCHANTCENTERLINKSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=248, +) + +_MERCHANTCENTERLINKSTATUSENUM_MERCHANTCENTERLINKSTATUS.containing_type = _MERCHANTCENTERLINKSTATUSENUM +DESCRIPTOR.message_types_by_name['MerchantCenterLinkStatusEnum'] = _MERCHANTCENTERLINKSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MerchantCenterLinkStatusEnum = _reflection.GeneratedProtocolMessageType('MerchantCenterLinkStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _MERCHANTCENTERLINKSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.merchant_center_link_status_pb2' + , + '__doc__': """Container for enum describing possible statuses of a Google Merchant + Center link.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MerchantCenterLinkStatusEnum) + }) +_sym_db.RegisterMessage(MerchantCenterLinkStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/merchant_center_link_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2.py new file mode 100644 index 000000000..0744f7276 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/message_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/message_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034MessagePlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/message_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xbc\x01\n\x1bMessagePlaceholderFieldEnum\"\x9c\x01\n\x17MessagePlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rBUSINESS_NAME\x10\x02\x12\x10\n\x0c\x43OUNTRY_CODE\x10\x03\x12\x10\n\x0cPHONE_NUMBER\x10\x04\x12\x1a\n\x16MESSAGE_EXTENSION_TEXT\x10\x05\x12\x10\n\x0cMESSAGE_TEXT\x10\x06\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1cMessagePlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MESSAGEPLACEHOLDERFIELDENUM_MESSAGEPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='MessagePlaceholderField', + full_name='google.ads.googleads.v5.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BUSINESS_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTRY_CODE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MESSAGE_EXTENSION_TEXT', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MESSAGE_TEXT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=165, + serialized_end=321, +) +_sym_db.RegisterEnumDescriptor(_MESSAGEPLACEHOLDERFIELDENUM_MESSAGEPLACEHOLDERFIELD) + + +_MESSAGEPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='MessagePlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.MessagePlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MESSAGEPLACEHOLDERFIELDENUM_MESSAGEPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=321, +) + +_MESSAGEPLACEHOLDERFIELDENUM_MESSAGEPLACEHOLDERFIELD.containing_type = _MESSAGEPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['MessagePlaceholderFieldEnum'] = _MESSAGEPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MessagePlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('MessagePlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _MESSAGEPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.message_placeholder_field_pb2' + , + '__doc__': """Values for Message placeholder fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MessagePlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(MessagePlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/message_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/mime_type_pb2.py b/google/ads/google_ads/v5/proto/enums/mime_type_pb2.py new file mode 100644 index 000000000..5cbffe0f4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/mime_type_pb2.py @@ -0,0 +1,155 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/mime_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/mime_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\rMimeTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/enums/mime_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xdc\x01\n\x0cMimeTypeEnum\"\xcb\x01\n\x08MimeType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nIMAGE_JPEG\x10\x02\x12\r\n\tIMAGE_GIF\x10\x03\x12\r\n\tIMAGE_PNG\x10\x04\x12\t\n\x05\x46LASH\x10\x05\x12\r\n\tTEXT_HTML\x10\x06\x12\x07\n\x03PDF\x10\x07\x12\n\n\x06MSWORD\x10\x08\x12\x0b\n\x07MSEXCEL\x10\t\x12\x07\n\x03RTF\x10\n\x12\r\n\tAUDIO_WAV\x10\x0b\x12\r\n\tAUDIO_MP3\x10\x0c\x12\x10\n\x0cHTML5_AD_ZIP\x10\rB\xe2\x01\n!com.google.ads.googleads.v5.enumsB\rMimeTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MIMETYPEENUM_MIMETYPE = _descriptor.EnumDescriptor( + name='MimeType', + full_name='google.ads.googleads.v5.enums.MimeTypeEnum.MimeType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_JPEG', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_GIF', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_PNG', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEXT_HTML', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PDF', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MSWORD', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MSEXCEL', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RTF', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUDIO_WAV', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUDIO_MP3', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HTML5_AD_ZIP', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=134, + serialized_end=337, +) +_sym_db.RegisterEnumDescriptor(_MIMETYPEENUM_MIMETYPE) + + +_MIMETYPEENUM = _descriptor.Descriptor( + name='MimeTypeEnum', + full_name='google.ads.googleads.v5.enums.MimeTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MIMETYPEENUM_MIMETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=117, + serialized_end=337, +) + +_MIMETYPEENUM_MIMETYPE.containing_type = _MIMETYPEENUM +DESCRIPTOR.message_types_by_name['MimeTypeEnum'] = _MIMETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MimeTypeEnum = _reflection.GeneratedProtocolMessageType('MimeTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _MIMETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.mime_type_pb2' + , + '__doc__': """Container for enum describing the mime types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MimeTypeEnum) + }) +_sym_db.RegisterMessage(MimeTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/mime_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/mime_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/mime_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2.py b/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2.py new file mode 100644 index 000000000..9bbb24403 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/minute_of_hour.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/minute_of_hour.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\021MinuteOfHourProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/enums/minute_of_hour.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"s\n\x10MinuteOfHourEnum\"_\n\x0cMinuteOfHour\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04ZERO\x10\x02\x12\x0b\n\x07\x46IFTEEN\x10\x03\x12\n\n\x06THIRTY\x10\x04\x12\x0e\n\nFORTY_FIVE\x10\x05\x42\xe6\x01\n!com.google.ads.googleads.v5.enumsB\x11MinuteOfHourProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MINUTEOFHOURENUM_MINUTEOFHOUR = _descriptor.EnumDescriptor( + name='MinuteOfHour', + full_name='google.ads.googleads.v5.enums.MinuteOfHourEnum.MinuteOfHour', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ZERO', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIFTEEN', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THIRTY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORTY_FIVE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=141, + serialized_end=236, +) +_sym_db.RegisterEnumDescriptor(_MINUTEOFHOURENUM_MINUTEOFHOUR) + + +_MINUTEOFHOURENUM = _descriptor.Descriptor( + name='MinuteOfHourEnum', + full_name='google.ads.googleads.v5.enums.MinuteOfHourEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MINUTEOFHOURENUM_MINUTEOFHOUR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=236, +) + +_MINUTEOFHOURENUM_MINUTEOFHOUR.containing_type = _MINUTEOFHOURENUM +DESCRIPTOR.message_types_by_name['MinuteOfHourEnum'] = _MINUTEOFHOURENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MinuteOfHourEnum = _reflection.GeneratedProtocolMessageType('MinuteOfHourEnum', (_message.Message,), { + 'DESCRIPTOR' : _MINUTEOFHOURENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.minute_of_hour_pb2' + , + '__doc__': """Container for enumeration of quarter-hours.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MinuteOfHourEnum) + }) +_sym_db.RegisterMessage(MinuteOfHourEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/minute_of_hour_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2.py b/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2.py new file mode 100644 index 000000000..23061e88d --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/mobile_app_vendor.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/mobile_app_vendor.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\024MobileAppVendorProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/enums/mobile_app_vendor.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"q\n\x13MobileAppVendorEnum\"Z\n\x0fMobileAppVendor\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0f\x41PPLE_APP_STORE\x10\x02\x12\x14\n\x10GOOGLE_APP_STORE\x10\x03\x42\xe9\x01\n!com.google.ads.googleads.v5.enumsB\x14MobileAppVendorProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MOBILEAPPVENDORENUM_MOBILEAPPVENDOR = _descriptor.EnumDescriptor( + name='MobileAppVendor', + full_name='google.ads.googleads.v5.enums.MobileAppVendorEnum.MobileAppVendor', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPLE_APP_STORE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_APP_STORE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=237, +) +_sym_db.RegisterEnumDescriptor(_MOBILEAPPVENDORENUM_MOBILEAPPVENDOR) + + +_MOBILEAPPVENDORENUM = _descriptor.Descriptor( + name='MobileAppVendorEnum', + full_name='google.ads.googleads.v5.enums.MobileAppVendorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MOBILEAPPVENDORENUM_MOBILEAPPVENDOR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=237, +) + +_MOBILEAPPVENDORENUM_MOBILEAPPVENDOR.containing_type = _MOBILEAPPVENDORENUM +DESCRIPTOR.message_types_by_name['MobileAppVendorEnum'] = _MOBILEAPPVENDORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MobileAppVendorEnum = _reflection.GeneratedProtocolMessageType('MobileAppVendorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MOBILEAPPVENDORENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.mobile_app_vendor_pb2' + , + '__doc__': """Container for enum describing different types of mobile app vendors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.MobileAppVendorEnum) + }) +_sym_db.RegisterMessage(MobileAppVendorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/mobile_app_vendor_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/mobile_device_type_pb2.py b/google/ads/google_ads/v5/proto/enums/mobile_device_type_pb2.py new file mode 100644 index 000000000..ebd8e9a1a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/mobile_device_type_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/mobile_device_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/mobile_device_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025MobileDeviceTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/parental_status_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x7f\n\x16ParentalStatusTypeEnum\"e\n\x12ParentalStatusType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x06PARENT\x10\xac\x02\x12\x11\n\x0cNOT_A_PARENT\x10\xad\x02\x12\x11\n\x0cUNDETERMINED\x10\xae\x02\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17ParentalStatusTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PARENTALSTATUSTYPEENUM_PARENTALSTATUSTYPE = _descriptor.EnumDescriptor( + name='ParentalStatusType', + full_name='google.ads.googleads.v5.enums.ParentalStatusTypeEnum.ParentalStatusType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PARENT', index=2, number=300, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_A_PARENT', index=3, number=301, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNDETERMINED', index=4, number=302, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=254, +) +_sym_db.RegisterEnumDescriptor(_PARENTALSTATUSTYPEENUM_PARENTALSTATUSTYPE) + + +_PARENTALSTATUSTYPEENUM = _descriptor.Descriptor( + name='ParentalStatusTypeEnum', + full_name='google.ads.googleads.v5.enums.ParentalStatusTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PARENTALSTATUSTYPEENUM_PARENTALSTATUSTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=254, +) + +_PARENTALSTATUSTYPEENUM_PARENTALSTATUSTYPE.containing_type = _PARENTALSTATUSTYPEENUM +DESCRIPTOR.message_types_by_name['ParentalStatusTypeEnum'] = _PARENTALSTATUSTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ParentalStatusTypeEnum = _reflection.GeneratedProtocolMessageType('ParentalStatusTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PARENTALSTATUSTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.parental_status_type_pb2' + , + '__doc__': """Container for enum describing the type of demographic parental + statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ParentalStatusTypeEnum) + }) +_sym_db.RegisterMessage(ParentalStatusTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/parental_status_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/parental_status_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/parental_status_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/payment_mode_pb2.py b/google/ads/google_ads/v5/proto/enums/payment_mode_pb2.py new file mode 100644 index 000000000..58b194220 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/payment_mode_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/payment_mode.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/payment_mode.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\020PaymentModeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/enums/payment_mode.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x81\x01\n\x0fPaymentModeEnum\"n\n\x0bPaymentMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06\x43LICKS\x10\x04\x12\x14\n\x10\x43ONVERSION_VALUE\x10\x05\x12\x0f\n\x0b\x43ONVERSIONS\x10\x06\x12\x0e\n\nGUEST_STAY\x10\x07\x42\xe5\x01\n!com.google.ads.googleads.v5.enumsB\x10PaymentModeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PAYMENTMODEENUM_PAYMENTMODE = _descriptor.EnumDescriptor( + name='PaymentMode', + full_name='google.ads.googleads.v5.enums.PaymentModeEnum.PaymentMode', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLICKS', index=2, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_VALUE', index=3, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSIONS', index=4, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GUEST_STAY', index=5, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=139, + serialized_end=249, +) +_sym_db.RegisterEnumDescriptor(_PAYMENTMODEENUM_PAYMENTMODE) + + +_PAYMENTMODEENUM = _descriptor.Descriptor( + name='PaymentModeEnum', + full_name='google.ads.googleads.v5.enums.PaymentModeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PAYMENTMODEENUM_PAYMENTMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=249, +) + +_PAYMENTMODEENUM_PAYMENTMODE.containing_type = _PAYMENTMODEENUM +DESCRIPTOR.message_types_by_name['PaymentModeEnum'] = _PAYMENTMODEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PaymentModeEnum = _reflection.GeneratedProtocolMessageType('PaymentModeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PAYMENTMODEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.payment_mode_pb2' + , + '__doc__': """Container for enum describing possible payment modes.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PaymentModeEnum) + }) +_sym_db.RegisterMessage(PaymentModeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/payment_mode_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/payment_mode_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/payment_mode_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2.py b/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2.py new file mode 100644 index 000000000..13f2664bc --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/placeholder_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/placeholder_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\024PlaceholderTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/enums/placeholder_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x90\x03\n\x13PlaceholderTypeEnum\"\xf8\x02\n\x0fPlaceholderType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08SITELINK\x10\x02\x12\x08\n\x04\x43\x41LL\x10\x03\x12\x07\n\x03\x41PP\x10\x04\x12\x0c\n\x08LOCATION\x10\x05\x12\x16\n\x12\x41\x46\x46ILIATE_LOCATION\x10\x06\x12\x0b\n\x07\x43\x41LLOUT\x10\x07\x12\x16\n\x12STRUCTURED_SNIPPET\x10\x08\x12\x0b\n\x07MESSAGE\x10\t\x12\t\n\x05PRICE\x10\n\x12\r\n\tPROMOTION\x10\x0b\x12\x11\n\rAD_CUSTOMIZER\x10\x0c\x12\x15\n\x11\x44YNAMIC_EDUCATION\x10\r\x12\x12\n\x0e\x44YNAMIC_FLIGHT\x10\x0e\x12\x12\n\x0e\x44YNAMIC_CUSTOM\x10\x0f\x12\x11\n\rDYNAMIC_HOTEL\x10\x10\x12\x17\n\x13\x44YNAMIC_REAL_ESTATE\x10\x11\x12\x12\n\x0e\x44YNAMIC_TRAVEL\x10\x12\x12\x11\n\rDYNAMIC_LOCAL\x10\x13\x12\x0f\n\x0b\x44YNAMIC_JOB\x10\x14\x42\xe9\x01\n!com.google.ads.googleads.v5.enumsB\x14PlaceholderTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE = _descriptor.EnumDescriptor( + name='PlaceholderType', + full_name='google.ads.googleads.v5.enums.PlaceholderTypeEnum.PlaceholderType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SITELINK', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AFFILIATE_LOCATION', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLOUT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRUCTURED_SNIPPET', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MESSAGE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_CUSTOMIZER', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_EDUCATION', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_FLIGHT', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_CUSTOM', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_HOTEL', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_REAL_ESTATE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_TRAVEL', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_LOCAL', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_JOB', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=148, + serialized_end=524, +) +_sym_db.RegisterEnumDescriptor(_PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE) + + +_PLACEHOLDERTYPEENUM = _descriptor.Descriptor( + name='PlaceholderTypeEnum', + full_name='google.ads.googleads.v5.enums.PlaceholderTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=524, +) + +_PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE.containing_type = _PLACEHOLDERTYPEENUM +DESCRIPTOR.message_types_by_name['PlaceholderTypeEnum'] = _PLACEHOLDERTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PlaceholderTypeEnum = _reflection.GeneratedProtocolMessageType('PlaceholderTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PLACEHOLDERTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.placeholder_type_pb2' + , + '__doc__': """Container for enum describing possible placeholder types for a feed + mapping.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PlaceholderTypeEnum) + }) +_sym_db.RegisterMessage(PlaceholderTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/placeholder_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/placement_type_pb2.py b/google/ads/google_ads/v5/proto/enums/placement_type_pb2.py new file mode 100644 index 000000000..69eba279e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/placement_type_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/placement_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/placement_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\022PlacementTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/enums/placement_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xa9\x01\n\x11PlacementTypeEnum\"\x93\x01\n\rPlacementType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07WEBSITE\x10\x02\x12\x17\n\x13MOBILE_APP_CATEGORY\x10\x03\x12\x16\n\x12MOBILE_APPLICATION\x10\x04\x12\x11\n\rYOUTUBE_VIDEO\x10\x05\x12\x13\n\x0fYOUTUBE_CHANNEL\x10\x06\x42\xe7\x01\n!com.google.ads.googleads.v5.enumsB\x12PlacementTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PLACEMENTTYPEENUM_PLACEMENTTYPE = _descriptor.EnumDescriptor( + name='PlacementType', + full_name='google.ads.googleads.v5.enums.PlacementTypeEnum.PlacementType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBSITE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_APP_CATEGORY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_APPLICATION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_VIDEO', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_CHANNEL', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=291, +) +_sym_db.RegisterEnumDescriptor(_PLACEMENTTYPEENUM_PLACEMENTTYPE) + + +_PLACEMENTTYPEENUM = _descriptor.Descriptor( + name='PlacementTypeEnum', + full_name='google.ads.googleads.v5.enums.PlacementTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PLACEMENTTYPEENUM_PLACEMENTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=291, +) + +_PLACEMENTTYPEENUM_PLACEMENTTYPE.containing_type = _PLACEMENTTYPEENUM +DESCRIPTOR.message_types_by_name['PlacementTypeEnum'] = _PLACEMENTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PlacementTypeEnum = _reflection.GeneratedProtocolMessageType('PlacementTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PLACEMENTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.placement_type_pb2' + , + '__doc__': """Container for enum describing possible placement types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PlacementTypeEnum) + }) +_sym_db.RegisterMessage(PlacementTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/placement_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/placement_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/placement_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2.py new file mode 100644 index 000000000..5412be24a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_approval_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_approval_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031PolicyApprovalStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/enums/policy_approval_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xa1\x01\n\x18PolicyApprovalStatusEnum\"\x84\x01\n\x14PolicyApprovalStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x44ISAPPROVED\x10\x02\x12\x14\n\x10\x41PPROVED_LIMITED\x10\x03\x12\x0c\n\x08\x41PPROVED\x10\x04\x12\x19\n\x15\x41REA_OF_INTEREST_ONLY\x10\x05\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19PolicyApprovalStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS = _descriptor.EnumDescriptor( + name='PolicyApprovalStatus', + full_name='google.ads.googleads.v5.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISAPPROVED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED_LIMITED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AREA_OF_INTEREST_ONLY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=291, +) +_sym_db.RegisterEnumDescriptor(_POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS) + + +_POLICYAPPROVALSTATUSENUM = _descriptor.Descriptor( + name='PolicyApprovalStatusEnum', + full_name='google.ads.googleads.v5.enums.PolicyApprovalStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=291, +) + +_POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS.containing_type = _POLICYAPPROVALSTATUSENUM +DESCRIPTOR.message_types_by_name['PolicyApprovalStatusEnum'] = _POLICYAPPROVALSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyApprovalStatusEnum = _reflection.GeneratedProtocolMessageType('PolicyApprovalStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYAPPROVALSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_approval_status_pb2' + , + '__doc__': """Container for enum describing possible policy approval statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyApprovalStatusEnum) + }) +_sym_db.RegisterMessage(PolicyApprovalStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_approval_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2.py new file mode 100644 index 000000000..640e0f05a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_review_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_review_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\027PolicyReviewStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/enums/policy_review_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x9d\x01\n\x16PolicyReviewStatusEnum\"\x82\x01\n\x12PolicyReviewStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12REVIEW_IN_PROGRESS\x10\x02\x12\x0c\n\x08REVIEWED\x10\x03\x12\x10\n\x0cUNDER_APPEAL\x10\x04\x12\x16\n\x12\x45LIGIBLE_MAY_SERVE\x10\x05\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17PolicyReviewStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS = _descriptor.EnumDescriptor( + name='PolicyReviewStatus', + full_name='google.ads.googleads.v5.enums.PolicyReviewStatusEnum.PolicyReviewStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REVIEW_IN_PROGRESS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REVIEWED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNDER_APPEAL', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ELIGIBLE_MAY_SERVE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=285, +) +_sym_db.RegisterEnumDescriptor(_POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS) + + +_POLICYREVIEWSTATUSENUM = _descriptor.Descriptor( + name='PolicyReviewStatusEnum', + full_name='google.ads.googleads.v5.enums.PolicyReviewStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=285, +) + +_POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS.containing_type = _POLICYREVIEWSTATUSENUM +DESCRIPTOR.message_types_by_name['PolicyReviewStatusEnum'] = _POLICYREVIEWSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyReviewStatusEnum = _reflection.GeneratedProtocolMessageType('PolicyReviewStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYREVIEWSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_review_status_pb2' + , + '__doc__': """Container for enum describing possible policy review statuses.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyReviewStatusEnum) + }) +_sym_db.RegisterMessage(PolicyReviewStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_review_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2.py new file mode 100644 index 000000000..588170380 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_topic_entry_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_topic_entry_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031PolicyTopicEntryTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/policy_topic_entry_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xbd\x01\n\x18PolicyTopicEntryTypeEnum\"\xa0\x01\n\x14PolicyTopicEntryType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nPROHIBITED\x10\x02\x12\x0b\n\x07LIMITED\x10\x04\x12\x11\n\rFULLY_LIMITED\x10\x08\x12\x0f\n\x0b\x44\x45SCRIPTIVE\x10\x05\x12\x0e\n\nBROADENING\x10\x06\x12\x19\n\x15\x41REA_OF_INTEREST_ONLY\x10\x07\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19PolicyTopicEntryTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYTOPICENTRYTYPEENUM_POLICYTOPICENTRYTYPE = _descriptor.EnumDescriptor( + name='PolicyTopicEntryType', + full_name='google.ads.googleads.v5.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIMITED', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FULLY_LIMITED', index=4, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESCRIPTIVE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BROADENING', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AREA_OF_INTEREST_ONLY', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=320, +) +_sym_db.RegisterEnumDescriptor(_POLICYTOPICENTRYTYPEENUM_POLICYTOPICENTRYTYPE) + + +_POLICYTOPICENTRYTYPEENUM = _descriptor.Descriptor( + name='PolicyTopicEntryTypeEnum', + full_name='google.ads.googleads.v5.enums.PolicyTopicEntryTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYTOPICENTRYTYPEENUM_POLICYTOPICENTRYTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=320, +) + +_POLICYTOPICENTRYTYPEENUM_POLICYTOPICENTRYTYPE.containing_type = _POLICYTOPICENTRYTYPEENUM +DESCRIPTOR.message_types_by_name['PolicyTopicEntryTypeEnum'] = _POLICYTOPICENTRYTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyTopicEntryTypeEnum = _reflection.GeneratedProtocolMessageType('PolicyTopicEntryTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYTOPICENTRYTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_topic_entry_type_pb2' + , + '__doc__': """Container for enum describing possible policy topic entry types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyTopicEntryTypeEnum) + }) +_sym_db.RegisterMessage(PolicyTopicEntryTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_entry_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2.py new file mode 100644 index 000000000..fb6dadaaf --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB2PolicyTopicEvidenceDestinationMismatchUrlTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n]google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xe4\x01\n1PolicyTopicEvidenceDestinationMismatchUrlTypeEnum\"\xae\x01\n-PolicyTopicEvidenceDestinationMismatchUrlType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x44ISPLAY_URL\x10\x02\x12\r\n\tFINAL_URL\x10\x03\x12\x14\n\x10\x46INAL_MOBILE_URL\x10\x04\x12\x10\n\x0cTRACKING_URL\x10\x05\x12\x17\n\x13MOBILE_TRACKING_URL\x10\x06\x42\x87\x02\n!com.google.ads.googleads.v5.enumsB2PolicyTopicEvidenceDestinationMismatchUrlTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPE = _descriptor.EnumDescriptor( + name='PolicyTopicEvidenceDestinationMismatchUrlType', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.PolicyTopicEvidenceDestinationMismatchUrlType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISPLAY_URL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_MOBILE_URL', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_URL', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_TRACKING_URL', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=213, + serialized_end=387, +) +_sym_db.RegisterEnumDescriptor(_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPE) + + +_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM = _descriptor.Descriptor( + name='PolicyTopicEvidenceDestinationMismatchUrlTypeEnum', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=159, + serialized_end=387, +) + +_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPE.containing_type = _POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM +DESCRIPTOR.message_types_by_name['PolicyTopicEvidenceDestinationMismatchUrlTypeEnum'] = _POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyTopicEvidenceDestinationMismatchUrlTypeEnum = _reflection.GeneratedProtocolMessageType('PolicyTopicEvidenceDestinationMismatchUrlTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYTOPICEVIDENCEDESTINATIONMISMATCHURLTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_topic_evidence_destination_mismatch_url_type_pb2' + , + '__doc__': """Container for enum describing possible policy topic evidence + destination mismatch url types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) + }) +_sym_db.RegisterMessage(PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_mismatch_url_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2.py new file mode 100644 index 000000000..39f32000c --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_device.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_device.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB3PolicyTopicEvidenceDestinationNotWorkingDeviceProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n^google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_device.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xa7\x01\n2PolicyTopicEvidenceDestinationNotWorkingDeviceEnum\"q\n.PolicyTopicEvidenceDestinationNotWorkingDevice\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x44\x45SKTOP\x10\x02\x12\x0b\n\x07\x41NDROID\x10\x03\x12\x07\n\x03IOS\x10\x04\x42\x88\x02\n!com.google.ads.googleads.v5.enumsB3PolicyTopicEvidenceDestinationNotWorkingDeviceProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICE = _descriptor.EnumDescriptor( + name='PolicyTopicEvidenceDestinationNotWorkingDevice', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum.PolicyTopicEvidenceDestinationNotWorkingDevice', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESKTOP', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANDROID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IOS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=214, + serialized_end=327, +) +_sym_db.RegisterEnumDescriptor(_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICE) + + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM = _descriptor.Descriptor( + name='PolicyTopicEvidenceDestinationNotWorkingDeviceEnum', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=160, + serialized_end=327, +) + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICE.containing_type = _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM +DESCRIPTOR.message_types_by_name['PolicyTopicEvidenceDestinationNotWorkingDeviceEnum'] = _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyTopicEvidenceDestinationNotWorkingDeviceEnum = _reflection.GeneratedProtocolMessageType('PolicyTopicEvidenceDestinationNotWorkingDeviceEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDEVICEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_topic_evidence_destination_not_working_device_pb2' + , + '__doc__': """Container for enum describing possible policy topic evidence + destination not working devices.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDeviceEnum) + }) +_sym_db.RegisterMessage(PolicyTopicEvidenceDestinationNotWorkingDeviceEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_device_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2.py new file mode 100644 index 000000000..de932c707 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB9PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nfgoogle/ads/googleads_v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xc7\x01\n8PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum\"\x8a\x01\n4PolicyTopicEvidenceDestinationNotWorkingDnsErrorType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12HOSTNAME_NOT_FOUND\x10\x02\x12\x1c\n\x18GOOGLE_CRAWLER_DNS_ISSUE\x10\x03\x42\x8e\x02\n!com.google.ads.googleads.v5.enumsB9PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPE = _descriptor.EnumDescriptor( + name='PolicyTopicEvidenceDestinationNotWorkingDnsErrorType', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum.PolicyTopicEvidenceDestinationNotWorkingDnsErrorType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOSTNAME_NOT_FOUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_CRAWLER_DNS_ISSUE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=229, + serialized_end=367, +) +_sym_db.RegisterEnumDescriptor(_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPE) + + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM = _descriptor.Descriptor( + name='PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum', + full_name='google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=168, + serialized_end=367, +) + +_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM_POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPE.containing_type = _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM +DESCRIPTOR.message_types_by_name['PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum'] = _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum = _reflection.GeneratedProtocolMessageType('PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYTOPICEVIDENCEDESTINATIONNOTWORKINGDNSERRORTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.policy_topic_evidence_destination_not_working_dns_error_type_pb2' + , + '__doc__': """Container for enum describing possible policy topic evidence + destination not working DNS error types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum) + }) +_sym_db.RegisterMessage(PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/policy_topic_evidence_destination_not_working_dns_error_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2.py b/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2.py new file mode 100644 index 000000000..ba99e0e1a --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/positive_geo_target_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/positive_geo_target_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032PositiveGeoTargetTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/enums/positive_geo_target_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8f\x01\n\x19PositiveGeoTargetTypeEnum\"r\n\x15PositiveGeoTargetType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14PRESENCE_OR_INTEREST\x10\x05\x12\x13\n\x0fSEARCH_INTEREST\x10\x06\x12\x0c\n\x08PRESENCE\x10\x07\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1aPositiveGeoTargetTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POSITIVEGEOTARGETTYPEENUM_POSITIVEGEOTARGETTYPE = _descriptor.EnumDescriptor( + name='PositiveGeoTargetType', + full_name='google.ads.googleads.v5.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRESENCE_OR_INTEREST', index=2, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SEARCH_INTEREST', index=3, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRESENCE', index=4, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=275, +) +_sym_db.RegisterEnumDescriptor(_POSITIVEGEOTARGETTYPEENUM_POSITIVEGEOTARGETTYPE) + + +_POSITIVEGEOTARGETTYPEENUM = _descriptor.Descriptor( + name='PositiveGeoTargetTypeEnum', + full_name='google.ads.googleads.v5.enums.PositiveGeoTargetTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POSITIVEGEOTARGETTYPEENUM_POSITIVEGEOTARGETTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=275, +) + +_POSITIVEGEOTARGETTYPEENUM_POSITIVEGEOTARGETTYPE.containing_type = _POSITIVEGEOTARGETTYPEENUM +DESCRIPTOR.message_types_by_name['PositiveGeoTargetTypeEnum'] = _POSITIVEGEOTARGETTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PositiveGeoTargetTypeEnum = _reflection.GeneratedProtocolMessageType('PositiveGeoTargetTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _POSITIVEGEOTARGETTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.positive_geo_target_type_pb2' + , + '__doc__': """Container for enum describing possible positive geo target types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PositiveGeoTargetTypeEnum) + }) +_sym_db.RegisterMessage(PositiveGeoTargetTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/positive_geo_target_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2.py b/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2.py new file mode 100644 index 000000000..09698db05 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/preferred_content_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/preferred_content_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\031PreferredContentTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/enums/preferred_content_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"j\n\x18PreferredContentTypeEnum\"N\n\x14PreferredContentType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x13YOUTUBE_TOP_CONTENT\x10\x90\x03\x42\xee\x01\n!com.google.ads.googleads.v5.enumsB\x19PreferredContentTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PREFERREDCONTENTTYPEENUM_PREFERREDCONTENTTYPE = _descriptor.EnumDescriptor( + name='PreferredContentType', + full_name='google.ads.googleads.v5.enums.PreferredContentTypeEnum.PreferredContentType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_TOP_CONTENT', index=2, number=400, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=235, +) +_sym_db.RegisterEnumDescriptor(_PREFERREDCONTENTTYPEENUM_PREFERREDCONTENTTYPE) + + +_PREFERREDCONTENTTYPEENUM = _descriptor.Descriptor( + name='PreferredContentTypeEnum', + full_name='google.ads.googleads.v5.enums.PreferredContentTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PREFERREDCONTENTTYPEENUM_PREFERREDCONTENTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=235, +) + +_PREFERREDCONTENTTYPEENUM_PREFERREDCONTENTTYPE.containing_type = _PREFERREDCONTENTTYPEENUM +DESCRIPTOR.message_types_by_name['PreferredContentTypeEnum'] = _PREFERREDCONTENTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PreferredContentTypeEnum = _reflection.GeneratedProtocolMessageType('PreferredContentTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PREFERREDCONTENTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.preferred_content_type_pb2' + , + '__doc__': """Container for enumeration of preferred content criterion type.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PreferredContentTypeEnum) + }) +_sym_db.RegisterMessage(PreferredContentTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/preferred_content_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2.py b/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2.py new file mode 100644 index 000000000..8747389d8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/price_extension_price_qualifier.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/price_extension_price_qualifier.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB!PriceExtensionPriceQualifierProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/enums/price_extension_price_qualifier.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x82\x01\n PriceExtensionPriceQualifierEnum\"^\n\x1cPriceExtensionPriceQualifier\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04\x46ROM\x10\x02\x12\t\n\x05UP_TO\x10\x03\x12\x0b\n\x07\x41VERAGE\x10\x04\x42\xf6\x01\n!com.google.ads.googleads.v5.enumsB!PriceExtensionPriceQualifierProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRICEEXTENSIONPRICEQUALIFIERENUM_PRICEEXTENSIONPRICEQUALIFIER = _descriptor.EnumDescriptor( + name='PriceExtensionPriceQualifier', + full_name='google.ads.googleads.v5.enums.PriceExtensionPriceQualifierEnum.PriceExtensionPriceQualifier', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FROM', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UP_TO', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AVERAGE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=175, + serialized_end=269, +) +_sym_db.RegisterEnumDescriptor(_PRICEEXTENSIONPRICEQUALIFIERENUM_PRICEEXTENSIONPRICEQUALIFIER) + + +_PRICEEXTENSIONPRICEQUALIFIERENUM = _descriptor.Descriptor( + name='PriceExtensionPriceQualifierEnum', + full_name='google.ads.googleads.v5.enums.PriceExtensionPriceQualifierEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRICEEXTENSIONPRICEQUALIFIERENUM_PRICEEXTENSIONPRICEQUALIFIER, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=139, + serialized_end=269, +) + +_PRICEEXTENSIONPRICEQUALIFIERENUM_PRICEEXTENSIONPRICEQUALIFIER.containing_type = _PRICEEXTENSIONPRICEQUALIFIERENUM +DESCRIPTOR.message_types_by_name['PriceExtensionPriceQualifierEnum'] = _PRICEEXTENSIONPRICEQUALIFIERENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PriceExtensionPriceQualifierEnum = _reflection.GeneratedProtocolMessageType('PriceExtensionPriceQualifierEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRICEEXTENSIONPRICEQUALIFIERENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.price_extension_price_qualifier_pb2' + , + '__doc__': """Container for enum describing a price extension price qualifier.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PriceExtensionPriceQualifierEnum) + }) +_sym_db.RegisterMessage(PriceExtensionPriceQualifierEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_price_qualifier_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2.py b/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2.py new file mode 100644 index 000000000..11bc34b77 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/price_extension_price_unit.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/price_extension_price_unit.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\034PriceExtensionPriceUnitProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/enums/price_extension_price_unit.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xac\x01\n\x1bPriceExtensionPriceUnitEnum\"\x8c\x01\n\x17PriceExtensionPriceUnit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08PER_HOUR\x10\x02\x12\x0b\n\x07PER_DAY\x10\x03\x12\x0c\n\x08PER_WEEK\x10\x04\x12\r\n\tPER_MONTH\x10\x05\x12\x0c\n\x08PER_YEAR\x10\x06\x12\r\n\tPER_NIGHT\x10\x07\x42\xf1\x01\n!com.google.ads.googleads.v5.enumsB\x1cPriceExtensionPriceUnitProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRICEEXTENSIONPRICEUNITENUM_PRICEEXTENSIONPRICEUNIT = _descriptor.EnumDescriptor( + name='PriceExtensionPriceUnit', + full_name='google.ads.googleads.v5.enums.PriceExtensionPriceUnitEnum.PriceExtensionPriceUnit', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_HOUR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_DAY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_WEEK', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_MONTH', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_YEAR', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PER_NIGHT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=166, + serialized_end=306, +) +_sym_db.RegisterEnumDescriptor(_PRICEEXTENSIONPRICEUNITENUM_PRICEEXTENSIONPRICEUNIT) + + +_PRICEEXTENSIONPRICEUNITENUM = _descriptor.Descriptor( + name='PriceExtensionPriceUnitEnum', + full_name='google.ads.googleads.v5.enums.PriceExtensionPriceUnitEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRICEEXTENSIONPRICEUNITENUM_PRICEEXTENSIONPRICEUNIT, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=306, +) + +_PRICEEXTENSIONPRICEUNITENUM_PRICEEXTENSIONPRICEUNIT.containing_type = _PRICEEXTENSIONPRICEUNITENUM +DESCRIPTOR.message_types_by_name['PriceExtensionPriceUnitEnum'] = _PRICEEXTENSIONPRICEUNITENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PriceExtensionPriceUnitEnum = _reflection.GeneratedProtocolMessageType('PriceExtensionPriceUnitEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRICEEXTENSIONPRICEUNITENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.price_extension_price_unit_pb2' + , + '__doc__': """Container for enum describing price extension price unit.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PriceExtensionPriceUnitEnum) + }) +_sym_db.RegisterMessage(PriceExtensionPriceUnitEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_price_unit_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2.py b/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2.py new file mode 100644 index 000000000..9fecd6804 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/price_extension_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/price_extension_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\027PriceExtensionTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/enums/price_extension_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xeb\x01\n\x16PriceExtensionTypeEnum\"\xd0\x01\n\x12PriceExtensionType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06\x42RANDS\x10\x02\x12\n\n\x06\x45VENTS\x10\x03\x12\r\n\tLOCATIONS\x10\x04\x12\x11\n\rNEIGHBORHOODS\x10\x05\x12\x16\n\x12PRODUCT_CATEGORIES\x10\x06\x12\x11\n\rPRODUCT_TIERS\x10\x07\x12\x0c\n\x08SERVICES\x10\x08\x12\x16\n\x12SERVICE_CATEGORIES\x10\t\x12\x11\n\rSERVICE_TIERS\x10\nB\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17PriceExtensionTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRICEEXTENSIONTYPEENUM_PRICEEXTENSIONTYPE = _descriptor.EnumDescriptor( + name='PriceExtensionType', + full_name='google.ads.googleads.v5.enums.PriceExtensionTypeEnum.PriceExtensionType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BRANDS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EVENTS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATIONS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEIGHBORHOODS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_CATEGORIES', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_TIERS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVICES', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVICE_CATEGORIES', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVICE_TIERS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=363, +) +_sym_db.RegisterEnumDescriptor(_PRICEEXTENSIONTYPEENUM_PRICEEXTENSIONTYPE) + + +_PRICEEXTENSIONTYPEENUM = _descriptor.Descriptor( + name='PriceExtensionTypeEnum', + full_name='google.ads.googleads.v5.enums.PriceExtensionTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRICEEXTENSIONTYPEENUM_PRICEEXTENSIONTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=363, +) + +_PRICEEXTENSIONTYPEENUM_PRICEEXTENSIONTYPE.containing_type = _PRICEEXTENSIONTYPEENUM +DESCRIPTOR.message_types_by_name['PriceExtensionTypeEnum'] = _PRICEEXTENSIONTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PriceExtensionTypeEnum = _reflection.GeneratedProtocolMessageType('PriceExtensionTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRICEEXTENSIONTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.price_extension_type_pb2' + , + '__doc__': """Container for enum describing types for a price extension.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PriceExtensionTypeEnum) + }) +_sym_db.RegisterMessage(PriceExtensionTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_extension_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2.py b/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2.py new file mode 100644 index 000000000..b7967f64e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2.py @@ -0,0 +1,360 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/price_placeholder_field.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/price_placeholder_field.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\032PricePlaceholderFieldProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/enums/price_placeholder_field.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xef\t\n\x19PricePlaceholderFieldEnum\"\xd1\t\n\x15PricePlaceholderField\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04TYPE\x10\x02\x12\x13\n\x0fPRICE_QUALIFIER\x10\x03\x12\x15\n\x11TRACKING_TEMPLATE\x10\x04\x12\x0c\n\x08LANGUAGE\x10\x05\x12\x14\n\x10\x46INAL_URL_SUFFIX\x10\x06\x12\x11\n\rITEM_1_HEADER\x10\x64\x12\x16\n\x12ITEM_1_DESCRIPTION\x10\x65\x12\x10\n\x0cITEM_1_PRICE\x10\x66\x12\x0f\n\x0bITEM_1_UNIT\x10g\x12\x15\n\x11ITEM_1_FINAL_URLS\x10h\x12\x1c\n\x18ITEM_1_FINAL_MOBILE_URLS\x10i\x12\x12\n\rITEM_2_HEADER\x10\xc8\x01\x12\x17\n\x12ITEM_2_DESCRIPTION\x10\xc9\x01\x12\x11\n\x0cITEM_2_PRICE\x10\xca\x01\x12\x10\n\x0bITEM_2_UNIT\x10\xcb\x01\x12\x16\n\x11ITEM_2_FINAL_URLS\x10\xcc\x01\x12\x1d\n\x18ITEM_2_FINAL_MOBILE_URLS\x10\xcd\x01\x12\x12\n\rITEM_3_HEADER\x10\xac\x02\x12\x17\n\x12ITEM_3_DESCRIPTION\x10\xad\x02\x12\x11\n\x0cITEM_3_PRICE\x10\xae\x02\x12\x10\n\x0bITEM_3_UNIT\x10\xaf\x02\x12\x16\n\x11ITEM_3_FINAL_URLS\x10\xb0\x02\x12\x1d\n\x18ITEM_3_FINAL_MOBILE_URLS\x10\xb1\x02\x12\x12\n\rITEM_4_HEADER\x10\x90\x03\x12\x17\n\x12ITEM_4_DESCRIPTION\x10\x91\x03\x12\x11\n\x0cITEM_4_PRICE\x10\x92\x03\x12\x10\n\x0bITEM_4_UNIT\x10\x93\x03\x12\x16\n\x11ITEM_4_FINAL_URLS\x10\x94\x03\x12\x1d\n\x18ITEM_4_FINAL_MOBILE_URLS\x10\x95\x03\x12\x12\n\rITEM_5_HEADER\x10\xf4\x03\x12\x17\n\x12ITEM_5_DESCRIPTION\x10\xf5\x03\x12\x11\n\x0cITEM_5_PRICE\x10\xf6\x03\x12\x10\n\x0bITEM_5_UNIT\x10\xf7\x03\x12\x16\n\x11ITEM_5_FINAL_URLS\x10\xf8\x03\x12\x1d\n\x18ITEM_5_FINAL_MOBILE_URLS\x10\xf9\x03\x12\x12\n\rITEM_6_HEADER\x10\xd8\x04\x12\x17\n\x12ITEM_6_DESCRIPTION\x10\xd9\x04\x12\x11\n\x0cITEM_6_PRICE\x10\xda\x04\x12\x10\n\x0bITEM_6_UNIT\x10\xdb\x04\x12\x16\n\x11ITEM_6_FINAL_URLS\x10\xdc\x04\x12\x1d\n\x18ITEM_6_FINAL_MOBILE_URLS\x10\xdd\x04\x12\x12\n\rITEM_7_HEADER\x10\xbc\x05\x12\x17\n\x12ITEM_7_DESCRIPTION\x10\xbd\x05\x12\x11\n\x0cITEM_7_PRICE\x10\xbe\x05\x12\x10\n\x0bITEM_7_UNIT\x10\xbf\x05\x12\x16\n\x11ITEM_7_FINAL_URLS\x10\xc0\x05\x12\x1d\n\x18ITEM_7_FINAL_MOBILE_URLS\x10\xc1\x05\x12\x12\n\rITEM_8_HEADER\x10\xa0\x06\x12\x17\n\x12ITEM_8_DESCRIPTION\x10\xa1\x06\x12\x11\n\x0cITEM_8_PRICE\x10\xa2\x06\x12\x10\n\x0bITEM_8_UNIT\x10\xa3\x06\x12\x16\n\x11ITEM_8_FINAL_URLS\x10\xa4\x06\x12\x1d\n\x18ITEM_8_FINAL_MOBILE_URLS\x10\xa5\x06\x42\xef\x01\n!com.google.ads.googleads.v5.enumsB\x1aPricePlaceholderFieldProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRICEPLACEHOLDERFIELDENUM_PRICEPLACEHOLDERFIELD = _descriptor.EnumDescriptor( + name='PricePlaceholderField', + full_name='google.ads.googleads.v5.enums.PricePlaceholderFieldEnum.PricePlaceholderField', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_QUALIFIER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRACKING_TEMPLATE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LANGUAGE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URL_SUFFIX', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_HEADER', index=7, number=100, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_DESCRIPTION', index=8, number=101, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_PRICE', index=9, number=102, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_UNIT', index=10, number=103, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_FINAL_URLS', index=11, number=104, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_1_FINAL_MOBILE_URLS', index=12, number=105, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_HEADER', index=13, number=200, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_DESCRIPTION', index=14, number=201, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_PRICE', index=15, number=202, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_UNIT', index=16, number=203, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_FINAL_URLS', index=17, number=204, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_2_FINAL_MOBILE_URLS', index=18, number=205, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_HEADER', index=19, number=300, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_DESCRIPTION', index=20, number=301, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_PRICE', index=21, number=302, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_UNIT', index=22, number=303, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_FINAL_URLS', index=23, number=304, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_3_FINAL_MOBILE_URLS', index=24, number=305, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_HEADER', index=25, number=400, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_DESCRIPTION', index=26, number=401, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_PRICE', index=27, number=402, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_UNIT', index=28, number=403, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_FINAL_URLS', index=29, number=404, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_4_FINAL_MOBILE_URLS', index=30, number=405, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_HEADER', index=31, number=500, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_DESCRIPTION', index=32, number=501, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_PRICE', index=33, number=502, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_UNIT', index=34, number=503, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_FINAL_URLS', index=35, number=504, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_5_FINAL_MOBILE_URLS', index=36, number=505, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_HEADER', index=37, number=600, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_DESCRIPTION', index=38, number=601, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_PRICE', index=39, number=602, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_UNIT', index=40, number=603, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_FINAL_URLS', index=41, number=604, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_6_FINAL_MOBILE_URLS', index=42, number=605, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_HEADER', index=43, number=700, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_DESCRIPTION', index=44, number=701, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_PRICE', index=45, number=702, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_UNIT', index=46, number=703, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_FINAL_URLS', index=47, number=704, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_7_FINAL_MOBILE_URLS', index=48, number=705, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_HEADER', index=49, number=800, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_DESCRIPTION', index=50, number=801, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_PRICE', index=51, number=802, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_UNIT', index=52, number=803, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_FINAL_URLS', index=53, number=804, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_8_FINAL_MOBILE_URLS', index=54, number=805, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=1394, +) +_sym_db.RegisterEnumDescriptor(_PRICEPLACEHOLDERFIELDENUM_PRICEPLACEHOLDERFIELD) + + +_PRICEPLACEHOLDERFIELDENUM = _descriptor.Descriptor( + name='PricePlaceholderFieldEnum', + full_name='google.ads.googleads.v5.enums.PricePlaceholderFieldEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRICEPLACEHOLDERFIELDENUM_PRICEPLACEHOLDERFIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=1394, +) + +_PRICEPLACEHOLDERFIELDENUM_PRICEPLACEHOLDERFIELD.containing_type = _PRICEPLACEHOLDERFIELDENUM +DESCRIPTOR.message_types_by_name['PricePlaceholderFieldEnum'] = _PRICEPLACEHOLDERFIELDENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PricePlaceholderFieldEnum = _reflection.GeneratedProtocolMessageType('PricePlaceholderFieldEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRICEPLACEHOLDERFIELDENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.price_placeholder_field_pb2' + , + '__doc__': """Values for Price placeholder fields.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.PricePlaceholderFieldEnum) + }) +_sym_db.RegisterMessage(PricePlaceholderFieldEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/price_placeholder_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2.py b/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2.py new file mode 100644 index 000000000..ce018ff7b --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_bidding_category_level.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_bidding_category_level.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB ProductBiddingCategoryLevelProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/product_bidding_category_level.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x9a\x01\n\x1fProductBiddingCategoryLevelEnum\"w\n\x1bProductBiddingCategoryLevel\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06LEVEL1\x10\x02\x12\n\n\x06LEVEL2\x10\x03\x12\n\n\x06LEVEL3\x10\x04\x12\n\n\x06LEVEL4\x10\x05\x12\n\n\x06LEVEL5\x10\x06\x42\xf5\x01\n!com.google.ads.googleads.v5.enumsB ProductBiddingCategoryLevelProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL = _descriptor.EnumDescriptor( + name='ProductBiddingCategoryLevel', + full_name='google.ads.googleads.v5.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevel', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LEVEL1', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LEVEL2', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LEVEL3', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LEVEL4', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LEVEL5', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=173, + serialized_end=292, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL) + + +_PRODUCTBIDDINGCATEGORYLEVELENUM = _descriptor.Descriptor( + name='ProductBiddingCategoryLevelEnum', + full_name='google.ads.googleads.v5.enums.ProductBiddingCategoryLevelEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=292, +) + +_PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL.containing_type = _PRODUCTBIDDINGCATEGORYLEVELENUM +DESCRIPTOR.message_types_by_name['ProductBiddingCategoryLevelEnum'] = _PRODUCTBIDDINGCATEGORYLEVELENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductBiddingCategoryLevelEnum = _reflection.GeneratedProtocolMessageType('ProductBiddingCategoryLevelEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTBIDDINGCATEGORYLEVELENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_bidding_category_level_pb2' + , + '__doc__': """Level of a product bidding category.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductBiddingCategoryLevelEnum) + }) +_sym_db.RegisterMessage(ProductBiddingCategoryLevelEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_bidding_category_level_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2.py b/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2.py new file mode 100644 index 000000000..aebce7492 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_bidding_category_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_bidding_category_status.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB!ProductBiddingCategoryStatusProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/enums/product_bidding_category_status.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"z\n ProductBiddingCategoryStatusEnum\"V\n\x1cProductBiddingCategoryStatus\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08OBSOLETE\x10\x03\x42\xf6\x01\n!com.google.ads.googleads.v5.enumsB!ProductBiddingCategoryStatusProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTBIDDINGCATEGORYSTATUSENUM_PRODUCTBIDDINGCATEGORYSTATUS = _descriptor.EnumDescriptor( + name='ProductBiddingCategoryStatus', + full_name='google.ads.googleads.v5.enums.ProductBiddingCategoryStatusEnum.ProductBiddingCategoryStatus', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACTIVE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OBSOLETE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=174, + serialized_end=260, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTBIDDINGCATEGORYSTATUSENUM_PRODUCTBIDDINGCATEGORYSTATUS) + + +_PRODUCTBIDDINGCATEGORYSTATUSENUM = _descriptor.Descriptor( + name='ProductBiddingCategoryStatusEnum', + full_name='google.ads.googleads.v5.enums.ProductBiddingCategoryStatusEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTBIDDINGCATEGORYSTATUSENUM_PRODUCTBIDDINGCATEGORYSTATUS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=260, +) + +_PRODUCTBIDDINGCATEGORYSTATUSENUM_PRODUCTBIDDINGCATEGORYSTATUS.containing_type = _PRODUCTBIDDINGCATEGORYSTATUSENUM +DESCRIPTOR.message_types_by_name['ProductBiddingCategoryStatusEnum'] = _PRODUCTBIDDINGCATEGORYSTATUSENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductBiddingCategoryStatusEnum = _reflection.GeneratedProtocolMessageType('ProductBiddingCategoryStatusEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTBIDDINGCATEGORYSTATUSENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_bidding_category_status_pb2' + , + '__doc__': """Status of the product bidding category.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductBiddingCategoryStatusEnum) + }) +_sym_db.RegisterMessage(ProductBiddingCategoryStatusEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_bidding_category_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2.py b/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2.py new file mode 100644 index 000000000..1eeeb3c85 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_channel_exclusivity.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_channel_exclusivity.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\036ProductChannelExclusivityProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/enums/product_channel_exclusivity.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x81\x01\n\x1dProductChannelExclusivityEnum\"`\n\x19ProductChannelExclusivity\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0eSINGLE_CHANNEL\x10\x02\x12\x11\n\rMULTI_CHANNEL\x10\x03\x42\xf3\x01\n!com.google.ads.googleads.v5.enumsB\x1eProductChannelExclusivityProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY = _descriptor.EnumDescriptor( + name='ProductChannelExclusivity', + full_name='google.ads.googleads.v5.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SINGLE_CHANNEL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTI_CHANNEL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=168, + serialized_end=264, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY) + + +_PRODUCTCHANNELEXCLUSIVITYENUM = _descriptor.Descriptor( + name='ProductChannelExclusivityEnum', + full_name='google.ads.googleads.v5.enums.ProductChannelExclusivityEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=264, +) + +_PRODUCTCHANNELEXCLUSIVITYENUM_PRODUCTCHANNELEXCLUSIVITY.containing_type = _PRODUCTCHANNELEXCLUSIVITYENUM +DESCRIPTOR.message_types_by_name['ProductChannelExclusivityEnum'] = _PRODUCTCHANNELEXCLUSIVITYENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductChannelExclusivityEnum = _reflection.GeneratedProtocolMessageType('ProductChannelExclusivityEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCHANNELEXCLUSIVITYENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_channel_exclusivity_pb2' + , + '__doc__': """Availability of a product offer.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductChannelExclusivityEnum) + }) +_sym_db.RegisterMessage(ProductChannelExclusivityEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_channel_exclusivity_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_channel_pb2.py b/google/ads/google_ads/v5/proto/enums/product_channel_pb2.py new file mode 100644 index 000000000..7f7611ece --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_channel_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_channel.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_channel.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\023ProductChannelProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/enums/product_channel.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"[\n\x12ProductChannelEnum\"E\n\x0eProductChannel\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06ONLINE\x10\x02\x12\t\n\x05LOCAL\x10\x03\x42\xe8\x01\n!com.google.ads.googleads.v5.enumsB\x13ProductChannelProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTCHANNELENUM_PRODUCTCHANNEL = _descriptor.EnumDescriptor( + name='ProductChannel', + full_name='google.ads.googleads.v5.enums.ProductChannelEnum.ProductChannel', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONLINE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCAL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=213, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTCHANNELENUM_PRODUCTCHANNEL) + + +_PRODUCTCHANNELENUM = _descriptor.Descriptor( + name='ProductChannelEnum', + full_name='google.ads.googleads.v5.enums.ProductChannelEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTCHANNELENUM_PRODUCTCHANNEL, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=213, +) + +_PRODUCTCHANNELENUM_PRODUCTCHANNEL.containing_type = _PRODUCTCHANNELENUM +DESCRIPTOR.message_types_by_name['ProductChannelEnum'] = _PRODUCTCHANNELENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductChannelEnum = _reflection.GeneratedProtocolMessageType('ProductChannelEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCHANNELENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_channel_pb2' + , + '__doc__': """Locality of a product offer.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductChannelEnum) + }) +_sym_db.RegisterMessage(ProductChannelEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_channel_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_channel_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_channel_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_condition_pb2.py b/google/ads/google_ads/v5/proto/enums/product_condition_pb2.py new file mode 100644 index 000000000..257606139 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_condition_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_condition.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_condition.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025ProductConditionProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/enums/product_condition.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"l\n\x14ProductConditionEnum\"T\n\x10ProductCondition\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x07\n\x03NEW\x10\x03\x12\x0f\n\x0bREFURBISHED\x10\x04\x12\x08\n\x04USED\x10\x05\x42\xea\x01\n!com.google.ads.googleads.v5.enumsB\x15ProductConditionProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTCONDITIONENUM_PRODUCTCONDITION = _descriptor.EnumDescriptor( + name='ProductCondition', + full_name='google.ads.googleads.v5.enums.ProductConditionEnum.ProductCondition', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEW', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REFURBISHED', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USED', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=148, + serialized_end=232, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTCONDITIONENUM_PRODUCTCONDITION) + + +_PRODUCTCONDITIONENUM = _descriptor.Descriptor( + name='ProductConditionEnum', + full_name='google.ads.googleads.v5.enums.ProductConditionEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTCONDITIONENUM_PRODUCTCONDITION, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=232, +) + +_PRODUCTCONDITIONENUM_PRODUCTCONDITION.containing_type = _PRODUCTCONDITIONENUM +DESCRIPTOR.message_types_by_name['ProductConditionEnum'] = _PRODUCTCONDITIONENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductConditionEnum = _reflection.GeneratedProtocolMessageType('ProductConditionEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCONDITIONENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_condition_pb2' + , + '__doc__': """Condition of a product offer.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductConditionEnum) + }) +_sym_db.RegisterMessage(ProductConditionEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_condition_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_condition_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_condition_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2.py b/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2.py new file mode 100644 index 000000000..eeaa89e67 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_custom_attribute_index.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_custom_attribute_index.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB ProductCustomAttributeIndexProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/product_custom_attribute_index.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x9a\x01\n\x1fProductCustomAttributeIndexEnum\"w\n\x1bProductCustomAttributeIndex\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\n\n\x06INDEX0\x10\x07\x12\n\n\x06INDEX1\x10\x08\x12\n\n\x06INDEX2\x10\t\x12\n\n\x06INDEX3\x10\n\x12\n\n\x06INDEX4\x10\x0b\x42\xf5\x01\n!com.google.ads.googleads.v5.enumsB ProductCustomAttributeIndexProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PRODUCTCUSTOMATTRIBUTEINDEXENUM_PRODUCTCUSTOMATTRIBUTEINDEX = _descriptor.EnumDescriptor( + name='ProductCustomAttributeIndex', + full_name='google.ads.googleads.v5.enums.ProductCustomAttributeIndexEnum.ProductCustomAttributeIndex', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INDEX0', index=2, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INDEX1', index=3, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INDEX2', index=4, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INDEX3', index=5, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INDEX4', index=6, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=173, + serialized_end=292, +) +_sym_db.RegisterEnumDescriptor(_PRODUCTCUSTOMATTRIBUTEINDEXENUM_PRODUCTCUSTOMATTRIBUTEINDEX) + + +_PRODUCTCUSTOMATTRIBUTEINDEXENUM = _descriptor.Descriptor( + name='ProductCustomAttributeIndexEnum', + full_name='google.ads.googleads.v5.enums.ProductCustomAttributeIndexEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRODUCTCUSTOMATTRIBUTEINDEXENUM_PRODUCTCUSTOMATTRIBUTEINDEX, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=292, +) + +_PRODUCTCUSTOMATTRIBUTEINDEXENUM_PRODUCTCUSTOMATTRIBUTEINDEX.containing_type = _PRODUCTCUSTOMATTRIBUTEINDEXENUM +DESCRIPTOR.message_types_by_name['ProductCustomAttributeIndexEnum'] = _PRODUCTCUSTOMATTRIBUTEINDEXENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductCustomAttributeIndexEnum = _reflection.GeneratedProtocolMessageType('ProductCustomAttributeIndexEnum', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTCUSTOMATTRIBUTEINDEXENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.product_custom_attribute_index_pb2' + , + '__doc__': """Container for enum describing the index of the product custom + attribute.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ProductCustomAttributeIndexEnum) + }) +_sym_db.RegisterMessage(ProductCustomAttributeIndexEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_custom_attribute_index_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/product_type_level_pb2.py b/google/ads/google_ads/v5/proto/enums/product_type_level_pb2.py new file mode 100644 index 000000000..d50c97efe --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/product_type_level_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/product_type_level.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/product_type_level.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025ProductTypeLevelProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/quality_score_bucket.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x7f\n\x16QualityScoreBucketEnum\"e\n\x12QualityScoreBucket\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rBELOW_AVERAGE\x10\x02\x12\x0b\n\x07\x41VERAGE\x10\x03\x12\x11\n\rABOVE_AVERAGE\x10\x04\x42\xec\x01\n!com.google.ads.googleads.v5.enumsB\x17QualityScoreBucketProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET = _descriptor.EnumDescriptor( + name='QualityScoreBucket', + full_name='google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucket', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BELOW_AVERAGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AVERAGE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ABOVE_AVERAGE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=254, +) +_sym_db.RegisterEnumDescriptor(_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET) + + +_QUALITYSCOREBUCKETENUM = _descriptor.Descriptor( + name='QualityScoreBucketEnum', + full_name='google.ads.googleads.v5.enums.QualityScoreBucketEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=254, +) + +_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET.containing_type = _QUALITYSCOREBUCKETENUM +DESCRIPTOR.message_types_by_name['QualityScoreBucketEnum'] = _QUALITYSCOREBUCKETENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QualityScoreBucketEnum = _reflection.GeneratedProtocolMessageType('QualityScoreBucketEnum', (_message.Message,), { + 'DESCRIPTOR' : _QUALITYSCOREBUCKETENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.quality_score_bucket_pb2' + , + '__doc__': """The relative performance compared to other advertisers.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.QualityScoreBucketEnum) + }) +_sym_db.RegisterMessage(QualityScoreBucketEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/quality_score_bucket_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/quality_score_bucket_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/quality_score_bucket_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2.py b/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2.py new file mode 100644 index 000000000..579c7d2c0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/reach_plan_ad_length.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/reach_plan_ad_length.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026ReachPlanAdLengthProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/enums/reach_plan_ad_length.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x96\x01\n\x15ReachPlanAdLengthEnum\"}\n\x11ReachPlanAdLength\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bSIX_SECONDS\x10\x02\x12\x1d\n\x19\x46IFTEEN_OR_TWENTY_SECONDS\x10\x03\x12\x1a\n\x16TWENTY_SECONDS_OR_MORE\x10\x04\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16ReachPlanAdLengthProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_REACHPLANADLENGTHENUM_REACHPLANADLENGTH = _descriptor.EnumDescriptor( + name='ReachPlanAdLength', + full_name='google.ads.googleads.v5.enums.ReachPlanAdLengthEnum.ReachPlanAdLength', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIX_SECONDS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIFTEEN_OR_TWENTY_SECONDS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWENTY_SECONDS_OR_MORE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=278, +) +_sym_db.RegisterEnumDescriptor(_REACHPLANADLENGTHENUM_REACHPLANADLENGTH) + + +_REACHPLANADLENGTHENUM = _descriptor.Descriptor( + name='ReachPlanAdLengthEnum', + full_name='google.ads.googleads.v5.enums.ReachPlanAdLengthEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _REACHPLANADLENGTHENUM_REACHPLANADLENGTH, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=278, +) + +_REACHPLANADLENGTHENUM_REACHPLANADLENGTH.containing_type = _REACHPLANADLENGTHENUM +DESCRIPTOR.message_types_by_name['ReachPlanAdLengthEnum'] = _REACHPLANADLENGTHENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ReachPlanAdLengthEnum = _reflection.GeneratedProtocolMessageType('ReachPlanAdLengthEnum', (_message.Message,), { + 'DESCRIPTOR' : _REACHPLANADLENGTHENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.reach_plan_ad_length_pb2' + , + '__doc__': """Message describing length of a plannable video ad.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ReachPlanAdLengthEnum) + }) +_sym_db.RegisterMessage(ReachPlanAdLengthEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/reach_plan_ad_length_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2.py b/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2.py new file mode 100644 index 000000000..51323f456 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2.py @@ -0,0 +1,225 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/reach_plan_age_range.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/reach_plan_age_range.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\026ReachPlanAgeRangeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/enums/reach_plan_age_range.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x8b\x05\n\x15ReachPlanAgeRangeEnum\"\xf1\x04\n\x11ReachPlanAgeRange\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x0f\x41GE_RANGE_18_24\x10\xd9\xd9\x1e\x12\x13\n\x0f\x41GE_RANGE_18_34\x10\x02\x12\x13\n\x0f\x41GE_RANGE_18_44\x10\x03\x12\x13\n\x0f\x41GE_RANGE_18_49\x10\x04\x12\x13\n\x0f\x41GE_RANGE_18_54\x10\x05\x12\x13\n\x0f\x41GE_RANGE_18_64\x10\x06\x12\x16\n\x12\x41GE_RANGE_18_65_UP\x10\x07\x12\x13\n\x0f\x41GE_RANGE_21_34\x10\x08\x12\x15\n\x0f\x41GE_RANGE_25_34\x10\xda\xd9\x1e\x12\x13\n\x0f\x41GE_RANGE_25_44\x10\t\x12\x13\n\x0f\x41GE_RANGE_25_49\x10\n\x12\x13\n\x0f\x41GE_RANGE_25_54\x10\x0b\x12\x13\n\x0f\x41GE_RANGE_25_64\x10\x0c\x12\x16\n\x12\x41GE_RANGE_25_65_UP\x10\r\x12\x15\n\x0f\x41GE_RANGE_35_44\x10\xdb\xd9\x1e\x12\x13\n\x0f\x41GE_RANGE_35_49\x10\x0e\x12\x13\n\x0f\x41GE_RANGE_35_54\x10\x0f\x12\x13\n\x0f\x41GE_RANGE_35_64\x10\x10\x12\x16\n\x12\x41GE_RANGE_35_65_UP\x10\x11\x12\x15\n\x0f\x41GE_RANGE_45_54\x10\xdc\xd9\x1e\x12\x13\n\x0f\x41GE_RANGE_45_64\x10\x12\x12\x16\n\x12\x41GE_RANGE_45_65_UP\x10\x13\x12\x16\n\x12\x41GE_RANGE_50_65_UP\x10\x14\x12\x15\n\x0f\x41GE_RANGE_55_64\x10\xdd\xd9\x1e\x12\x16\n\x12\x41GE_RANGE_55_65_UP\x10\x15\x12\x15\n\x0f\x41GE_RANGE_65_UP\x10\xde\xd9\x1e\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16ReachPlanAgeRangeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_REACHPLANAGERANGEENUM_REACHPLANAGERANGE = _descriptor.EnumDescriptor( + name='ReachPlanAgeRange', + full_name='google.ads.googleads.v5.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_24', index=2, number=503001, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_34', index=3, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_44', index=4, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_49', index=5, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_54', index=6, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_64', index=7, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_18_65_UP', index=8, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_21_34', index=9, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_34', index=10, number=503002, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_44', index=11, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_49', index=12, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_54', index=13, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_64', index=14, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_25_65_UP', index=15, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_35_44', index=16, number=503003, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_35_49', index=17, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_35_54', index=18, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_35_64', index=19, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_35_65_UP', index=20, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_45_54', index=21, number=503004, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_45_64', index=22, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_45_65_UP', index=23, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_50_65_UP', index=24, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_55_64', index=25, number=503005, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_55_65_UP', index=26, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AGE_RANGE_65_UP', index=27, number=503006, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=779, +) +_sym_db.RegisterEnumDescriptor(_REACHPLANAGERANGEENUM_REACHPLANAGERANGE) + + +_REACHPLANAGERANGEENUM = _descriptor.Descriptor( + name='ReachPlanAgeRangeEnum', + full_name='google.ads.googleads.v5.enums.ReachPlanAgeRangeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _REACHPLANAGERANGEENUM_REACHPLANAGERANGE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=779, +) + +_REACHPLANAGERANGEENUM_REACHPLANAGERANGE.containing_type = _REACHPLANAGERANGEENUM +DESCRIPTOR.message_types_by_name['ReachPlanAgeRangeEnum'] = _REACHPLANAGERANGEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ReachPlanAgeRangeEnum = _reflection.GeneratedProtocolMessageType('ReachPlanAgeRangeEnum', (_message.Message,), { + 'DESCRIPTOR' : _REACHPLANAGERANGEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.reach_plan_age_range_pb2' + , + '__doc__': """Message describing plannable age ranges.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.ReachPlanAgeRangeEnum) + }) +_sym_db.RegisterMessage(ReachPlanAgeRangeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/reach_plan_age_range_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/reach_plan_network_pb2.py b/google/ads/google_ads/v5/proto/enums/reach_plan_network_pb2.py new file mode 100644 index 000000000..569c92dd5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/reach_plan_network_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/reach_plan_network.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/reach_plan_network.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025ReachPlanNetworkProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\n\x08TimeType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x07\n\x03NOW\x10\x02\x12\x0b\n\x07\x46OREVER\x10\x03\x42\xe2\x01\n!com.google.ads.googleads.v5.enumsB\rTimeTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_TIMETYPEENUM_TIMETYPE = _descriptor.EnumDescriptor( + name='TimeType', + full_name='google.ads.googleads.v5.enums.TimeTypeEnum.TimeType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOW', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FOREVER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=132, + serialized_end=194, +) +_sym_db.RegisterEnumDescriptor(_TIMETYPEENUM_TIMETYPE) + + +_TIMETYPEENUM = _descriptor.Descriptor( + name='TimeTypeEnum', + full_name='google.ads.googleads.v5.enums.TimeTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TIMETYPEENUM_TIMETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=116, + serialized_end=194, +) + +_TIMETYPEENUM_TIMETYPE.containing_type = _TIMETYPEENUM +DESCRIPTOR.message_types_by_name['TimeTypeEnum'] = _TIMETYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TimeTypeEnum = _reflection.GeneratedProtocolMessageType('TimeTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _TIMETYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.time_type_pb2' + , + '__doc__': """Message describing time types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.TimeTypeEnum) + }) +_sym_db.RegisterMessage(TimeTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/time_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/time_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/time_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2.py b/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2.py new file mode 100644 index 000000000..a81787093 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/tracking_code_page_format.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/tracking_code_page_format.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\033TrackingCodePageFormatProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/enums/tracking_code_page_format.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"g\n\x1aTrackingCodePageFormatEnum\"I\n\x16TrackingCodePageFormat\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x08\n\x04HTML\x10\x02\x12\x07\n\x03\x41MP\x10\x03\x42\xf0\x01\n!com.google.ads.googleads.v5.enumsB\x1bTrackingCodePageFormatProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_TRACKINGCODEPAGEFORMATENUM_TRACKINGCODEPAGEFORMAT = _descriptor.EnumDescriptor( + name='TrackingCodePageFormat', + full_name='google.ads.googleads.v5.enums.TrackingCodePageFormatEnum.TrackingCodePageFormat', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HTML', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AMP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=162, + serialized_end=235, +) +_sym_db.RegisterEnumDescriptor(_TRACKINGCODEPAGEFORMATENUM_TRACKINGCODEPAGEFORMAT) + + +_TRACKINGCODEPAGEFORMATENUM = _descriptor.Descriptor( + name='TrackingCodePageFormatEnum', + full_name='google.ads.googleads.v5.enums.TrackingCodePageFormatEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TRACKINGCODEPAGEFORMATENUM_TRACKINGCODEPAGEFORMAT, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=235, +) + +_TRACKINGCODEPAGEFORMATENUM_TRACKINGCODEPAGEFORMAT.containing_type = _TRACKINGCODEPAGEFORMATENUM +DESCRIPTOR.message_types_by_name['TrackingCodePageFormatEnum'] = _TRACKINGCODEPAGEFORMATENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TrackingCodePageFormatEnum = _reflection.GeneratedProtocolMessageType('TrackingCodePageFormatEnum', (_message.Message,), { + 'DESCRIPTOR' : _TRACKINGCODEPAGEFORMATENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.tracking_code_page_format_pb2' + , + '__doc__': """Container for enum describing the format of the web page where the + tracking tag and snippet will be installed.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.TrackingCodePageFormatEnum) + }) +_sym_db.RegisterMessage(TrackingCodePageFormatEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/tracking_code_page_format_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/tracking_code_type_pb2.py b/google/ads/google_ads/v5/proto/enums/tracking_code_type_pb2.py new file mode 100644 index 000000000..33886fdcb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/tracking_code_type_pb2.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/tracking_code_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/tracking_code_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025TrackingCodeTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/user_list_size_range.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x94\x05\n\x15UserListSizeRangeEnum\"\xfa\x04\n\x11UserListSizeRange\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16LESS_THAN_FIVE_HUNDRED\x10\x02\x12\x1a\n\x16LESS_THAN_ONE_THOUSAND\x10\x03\x12 \n\x1cONE_THOUSAND_TO_TEN_THOUSAND\x10\x04\x12\"\n\x1eTEN_THOUSAND_TO_FIFTY_THOUSAND\x10\x05\x12*\n&FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND\x10\x06\x12\x32\n.ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND\x10\x07\x12\x33\n/THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND\x10\x08\x12(\n$FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION\x10\t\x12\x1e\n\x1aONE_MILLION_TO_TWO_MILLION\x10\n\x12 \n\x1cTWO_MILLION_TO_THREE_MILLION\x10\x0b\x12!\n\x1dTHREE_MILLION_TO_FIVE_MILLION\x10\x0c\x12\x1f\n\x1b\x46IVE_MILLION_TO_TEN_MILLION\x10\r\x12!\n\x1dTEN_MILLION_TO_TWENTY_MILLION\x10\x0e\x12$\n TWENTY_MILLION_TO_THIRTY_MILLION\x10\x0f\x12#\n\x1fTHIRTY_MILLION_TO_FIFTY_MILLION\x10\x10\x12\x16\n\x12OVER_FIFTY_MILLION\x10\x11\x42\xeb\x01\n!com.google.ads.googleads.v5.enumsB\x16UserListSizeRangeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_USERLISTSIZERANGEENUM_USERLISTSIZERANGE = _descriptor.EnumDescriptor( + name='UserListSizeRange', + full_name='google.ads.googleads.v5.enums.UserListSizeRangeEnum.UserListSizeRange', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LESS_THAN_FIVE_HUNDRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LESS_THAN_ONE_THOUSAND', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONE_THOUSAND_TO_TEN_THOUSAND', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEN_THOUSAND_TO_FIFTY_THOUSAND', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONE_MILLION_TO_TWO_MILLION', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWO_MILLION_TO_THREE_MILLION', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THREE_MILLION_TO_FIVE_MILLION', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIVE_MILLION_TO_TEN_MILLION', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEN_MILLION_TO_TWENTY_MILLION', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWENTY_MILLION_TO_THIRTY_MILLION', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THIRTY_MILLION_TO_FIFTY_MILLION', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OVER_FIFTY_MILLION', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=788, +) +_sym_db.RegisterEnumDescriptor(_USERLISTSIZERANGEENUM_USERLISTSIZERANGE) + + +_USERLISTSIZERANGEENUM = _descriptor.Descriptor( + name='UserListSizeRangeEnum', + full_name='google.ads.googleads.v5.enums.UserListSizeRangeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _USERLISTSIZERANGEENUM_USERLISTSIZERANGE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=788, +) + +_USERLISTSIZERANGEENUM_USERLISTSIZERANGE.containing_type = _USERLISTSIZERANGEENUM +DESCRIPTOR.message_types_by_name['UserListSizeRangeEnum'] = _USERLISTSIZERANGEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserListSizeRangeEnum = _reflection.GeneratedProtocolMessageType('UserListSizeRangeEnum', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTSIZERANGEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.user_list_size_range_pb2' + , + '__doc__': """Size range in terms of number of users of a UserList.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.UserListSizeRangeEnum) + }) +_sym_db.RegisterMessage(UserListSizeRangeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/user_list_size_range_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/user_list_size_range_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/user_list_size_range_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2.py b/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2.py new file mode 100644 index 000000000..29917f208 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/user_list_string_rule_item_operator.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/user_list_string_rule_item_operator.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB#UserListStringRuleItemOperatorProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nMgoogle/ads/googleads_v5/proto/enums/user_list_string_rule_item_operator.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xe9\x01\n\"UserListStringRuleItemOperatorEnum\"\xc2\x01\n\x1eUserListStringRuleItemOperator\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08\x43ONTAINS\x10\x02\x12\n\n\x06\x45QUALS\x10\x03\x12\x0f\n\x0bSTARTS_WITH\x10\x04\x12\r\n\tENDS_WITH\x10\x05\x12\x0e\n\nNOT_EQUALS\x10\x06\x12\x10\n\x0cNOT_CONTAINS\x10\x07\x12\x13\n\x0fNOT_STARTS_WITH\x10\x08\x12\x11\n\rNOT_ENDS_WITH\x10\tB\xf8\x01\n!com.google.ads.googleads.v5.enumsB#UserListStringRuleItemOperatorProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_USERLISTSTRINGRULEITEMOPERATORENUM_USERLISTSTRINGRULEITEMOPERATOR = _descriptor.EnumDescriptor( + name='UserListStringRuleItemOperator', + full_name='google.ads.googleads.v5.enums.UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONTAINS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EQUALS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STARTS_WITH', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENDS_WITH', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_EQUALS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_CONTAINS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_STARTS_WITH', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ENDS_WITH', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=182, + serialized_end=376, +) +_sym_db.RegisterEnumDescriptor(_USERLISTSTRINGRULEITEMOPERATORENUM_USERLISTSTRINGRULEITEMOPERATOR) + + +_USERLISTSTRINGRULEITEMOPERATORENUM = _descriptor.Descriptor( + name='UserListStringRuleItemOperatorEnum', + full_name='google.ads.googleads.v5.enums.UserListStringRuleItemOperatorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _USERLISTSTRINGRULEITEMOPERATORENUM_USERLISTSTRINGRULEITEMOPERATOR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=143, + serialized_end=376, +) + +_USERLISTSTRINGRULEITEMOPERATORENUM_USERLISTSTRINGRULEITEMOPERATOR.containing_type = _USERLISTSTRINGRULEITEMOPERATORENUM +DESCRIPTOR.message_types_by_name['UserListStringRuleItemOperatorEnum'] = _USERLISTSTRINGRULEITEMOPERATORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserListStringRuleItemOperatorEnum = _reflection.GeneratedProtocolMessageType('UserListStringRuleItemOperatorEnum', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTSTRINGRULEITEMOPERATORENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.user_list_string_rule_item_operator_pb2' + , + '__doc__': """Supported rule operator for string type.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.UserListStringRuleItemOperatorEnum) + }) +_sym_db.RegisterMessage(UserListStringRuleItemOperatorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/user_list_string_rule_item_operator_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/user_list_type_pb2.py b/google/ads/google_ads/v5/proto/enums/user_list_type_pb2.py new file mode 100644 index 000000000..dba36317e --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/user_list_type_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/user_list_type.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/user_list_type.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\021UserListTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/enums/user_list_type.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\xa5\x01\n\x10UserListTypeEnum\"\x90\x01\n\x0cUserListType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bREMARKETING\x10\x02\x12\x0b\n\x07LOGICAL\x10\x03\x12\x18\n\x14\x45XTERNAL_REMARKETING\x10\x04\x12\x0e\n\nRULE_BASED\x10\x05\x12\x0b\n\x07SIMILAR\x10\x06\x12\r\n\tCRM_BASED\x10\x07\x42\xe6\x01\n!com.google.ads.googleads.v5.enumsB\x11UserListTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_USERLISTTYPEENUM_USERLISTTYPE = _descriptor.EnumDescriptor( + name='UserListType', + full_name='google.ads.googleads.v5.enums.UserListTypeEnum.UserListType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMARKETING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOGICAL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_REMARKETING', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RULE_BASED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIMILAR', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRM_BASED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=143, + serialized_end=287, +) +_sym_db.RegisterEnumDescriptor(_USERLISTTYPEENUM_USERLISTTYPE) + + +_USERLISTTYPEENUM = _descriptor.Descriptor( + name='UserListTypeEnum', + full_name='google.ads.googleads.v5.enums.UserListTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _USERLISTTYPEENUM_USERLISTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=287, +) + +_USERLISTTYPEENUM_USERLISTTYPE.containing_type = _USERLISTTYPEENUM +DESCRIPTOR.message_types_by_name['UserListTypeEnum'] = _USERLISTTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserListTypeEnum = _reflection.GeneratedProtocolMessageType('UserListTypeEnum', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTTYPEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.user_list_type_pb2' + , + '__doc__': """The user list types.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.UserListTypeEnum) + }) +_sym_db.RegisterMessage(UserListTypeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/user_list_type_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/user_list_type_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/user_list_type_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2.py b/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2.py new file mode 100644 index 000000000..dbce8cbb2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/vanity_pharma_display_url_mode.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/vanity_pharma_display_url_mode.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\037VanityPharmaDisplayUrlModeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/enums/vanity_pharma_display_url_mode.proto\x12\x1dgoogle.ads.googleads.v5.enums\x1a\x1cgoogle/api/annotations.proto\"\x93\x01\n\x1eVanityPharmaDisplayUrlModeEnum\"q\n\x1aVanityPharmaDisplayUrlMode\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18MANUFACTURER_WEBSITE_URL\x10\x02\x12\x17\n\x13WEBSITE_DESCRIPTION\x10\x03\x42\xf4\x01\n!com.google.ads.googleads.v5.enumsB\x1fVanityPharmaDisplayUrlModeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V5.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V5\\Enums\xea\x02!Google::Ads::GoogleAds::V5::Enumsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_VANITYPHARMADISPLAYURLMODEENUM_VANITYPHARMADISPLAYURLMODE = _descriptor.EnumDescriptor( + name='VanityPharmaDisplayUrlMode', + full_name='google.ads.googleads.v5.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MANUFACTURER_WEBSITE_URL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBSITE_DESCRIPTION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=172, + serialized_end=285, +) +_sym_db.RegisterEnumDescriptor(_VANITYPHARMADISPLAYURLMODEENUM_VANITYPHARMADISPLAYURLMODE) + + +_VANITYPHARMADISPLAYURLMODEENUM = _descriptor.Descriptor( + name='VanityPharmaDisplayUrlModeEnum', + full_name='google.ads.googleads.v5.enums.VanityPharmaDisplayUrlModeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _VANITYPHARMADISPLAYURLMODEENUM_VANITYPHARMADISPLAYURLMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=138, + serialized_end=285, +) + +_VANITYPHARMADISPLAYURLMODEENUM_VANITYPHARMADISPLAYURLMODE.containing_type = _VANITYPHARMADISPLAYURLMODEENUM +DESCRIPTOR.message_types_by_name['VanityPharmaDisplayUrlModeEnum'] = _VANITYPHARMADISPLAYURLMODEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +VanityPharmaDisplayUrlModeEnum = _reflection.GeneratedProtocolMessageType('VanityPharmaDisplayUrlModeEnum', (_message.Message,), { + 'DESCRIPTOR' : _VANITYPHARMADISPLAYURLMODEENUM, + '__module__' : 'google.ads.googleads_v5.proto.enums.vanity_pharma_display_url_mode_pb2' + , + '__doc__': """The display mode for vanity pharma URLs.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.enums.VanityPharmaDisplayUrlModeEnum) + }) +_sym_db.RegisterMessage(VanityPharmaDisplayUrlModeEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2_grpc.py b/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/vanity_pharma_display_url_mode_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/enums/vanity_pharma_text_pb2.py b/google/ads/google_ads/v5/proto/enums/vanity_pharma_text_pb2.py new file mode 100644 index 000000000..cd15a9ecb --- /dev/null +++ b/google/ads/google_ads/v5/proto/enums/vanity_pharma_text_pb2.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/enums/vanity_pharma_text.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/enums/vanity_pharma_text.proto', + package='google.ads.googleads.v5.enums', + syntax='proto3', + serialized_options=b'\n!com.google.ads.googleads.v5.enumsB\025VanityPharmaTextProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v5/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V5.Enums\312\002\035Google\\Ads\\GoogleAds\\V5\\Enums\352\002!Google::Ads::GoogleAds::V5::Enums', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/errors/ad_customizer_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xe8\x01\n\x15\x41\x64\x43ustomizerErrorEnum\"\xce\x01\n\x11\x41\x64\x43ustomizerError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43OUNTDOWN_INVALID_DATE_FORMAT\x10\x02\x12\x1a\n\x16\x43OUNTDOWN_DATE_IN_PAST\x10\x03\x12\x1c\n\x18\x43OUNTDOWN_INVALID_LOCALE\x10\x04\x12\'\n#COUNTDOWN_INVALID_START_DAYS_BEFORE\x10\x05\x12\x15\n\x11UNKNOWN_USER_LIST\x10\x06\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x41\x64\x43ustomizerErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR = _descriptor.EnumDescriptor( + name='AdCustomizerError', + full_name='google.ads.googleads.v5.errors.AdCustomizerErrorEnum.AdCustomizerError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_DATE_FORMAT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_DATE_IN_PAST', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_LOCALE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_START_DAYS_BEFORE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_USER_LIST', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=361, +) +_sym_db.RegisterEnumDescriptor(_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR) + + +_ADCUSTOMIZERERRORENUM = _descriptor.Descriptor( + name='AdCustomizerErrorEnum', + full_name='google.ads.googleads.v5.errors.AdCustomizerErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=361, +) + +_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR.containing_type = _ADCUSTOMIZERERRORENUM +DESCRIPTOR.message_types_by_name['AdCustomizerErrorEnum'] = _ADCUSTOMIZERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdCustomizerErrorEnum = _reflection.GeneratedProtocolMessageType('AdCustomizerErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADCUSTOMIZERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_customizer_error_pb2' + , + '__doc__': """Container for enum describing possible ad customizer errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdCustomizerErrorEnum) + }) +_sym_db.RegisterMessage(AdCustomizerErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_customizer_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_customizer_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_customizer_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/ad_error_pb2.py b/google/ads/google_ads/v5/proto/errors/ad_error_pb2.py new file mode 100644 index 000000000..1b6f87808 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_error_pb2.py @@ -0,0 +1,815 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/ad_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/ad_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\014AdErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/errors/ad_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xed%\n\x0b\x41\x64\x45rrorEnum\"\xdd%\n\x07\x41\x64\x45rror\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE\x10\x02\x12\x1a\n\x16\x41PPROXIMATELY_TOO_LONG\x10\x03\x12\x1b\n\x17\x41PPROXIMATELY_TOO_SHORT\x10\x04\x12\x0f\n\x0b\x42\x41\x44_SNIPPET\x10\x05\x12\x14\n\x10\x43\x41NNOT_MODIFY_AD\x10\x06\x12\'\n#CANNOT_SET_BUSINESS_NAME_IF_URL_SET\x10\x07\x12\x14\n\x10\x43\x41NNOT_SET_FIELD\x10\x08\x12*\n&CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET\x10\t\x12/\n+CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING\x10\n\x12)\n%CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE\x10\x0b\x12\x37\n3CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING\x10\x0c\x12\x12\n\x0e\x43\x41NNOT_SET_URL\x10\r\x12!\n\x1d\x43\x41NNOT_SET_WITHOUT_FINAL_URLS\x10\x0e\x12\x1e\n\x1a\x43\x41NNOT_SET_WITH_FINAL_URLS\x10\x0f\x12\x1c\n\x18\x43\x41NNOT_SET_WITH_URL_DATA\x10\x11\x12\'\n#CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR\x10\x12\x12#\n\x1f\x43USTOMER_NOT_APPROVED_MOBILEADS\x10\x13\x12(\n$CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS\x10\x14\x12\x31\n-CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS\x10\x15\x12\x19\n\x15\x43USTOMER_NOT_ELIGIBLE\x10\x16\x12\x31\n-CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL\x10\x17\x12\x1e\n\x1a\x44IMENSION_ALREADY_IN_UNION\x10\x18\x12\x19\n\x15\x44IMENSION_MUST_BE_SET\x10\x19\x12\x1a\n\x16\x44IMENSION_NOT_IN_UNION\x10\x1a\x12#\n\x1f\x44ISPLAY_URL_CANNOT_BE_SPECIFIED\x10\x1b\x12 \n\x1c\x44OMESTIC_PHONE_NUMBER_FORMAT\x10\x1c\x12\x1a\n\x16\x45MERGENCY_PHONE_NUMBER\x10\x1d\x12\x0f\n\x0b\x45MPTY_FIELD\x10\x1e\x12\x30\n,FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID\x10\x1f\x12(\n$FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH\x10 \x12!\n\x1dILLEGAL_AD_CUSTOMIZER_TAG_USE\x10!\x12\x13\n\x0fILLEGAL_TAG_USE\x10\"\x12\x1b\n\x17INCONSISTENT_DIMENSIONS\x10#\x12)\n%INCONSISTENT_STATUS_IN_TEMPLATE_UNION\x10$\x12\x14\n\x10INCORRECT_LENGTH\x10%\x12\x1a\n\x16INELIGIBLE_FOR_UPGRADE\x10&\x12&\n\"INVALID_AD_ADDRESS_CAMPAIGN_TARGET\x10\'\x12\x13\n\x0fINVALID_AD_TYPE\x10(\x12\'\n#INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE\x10)\x12&\n\"INVALID_ATTRIBUTES_FOR_MOBILE_TEXT\x10*\x12\x1f\n\x1bINVALID_CALL_TO_ACTION_TEXT\x10+\x12\x1d\n\x19INVALID_CHARACTER_FOR_URL\x10,\x12\x18\n\x14INVALID_COUNTRY_CODE\x10-\x12*\n&INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG\x10/\x12\x11\n\rINVALID_INPUT\x10\x30\x12\x1b\n\x17INVALID_MARKUP_LANGUAGE\x10\x31\x12\x1a\n\x16INVALID_MOBILE_CARRIER\x10\x32\x12!\n\x1dINVALID_MOBILE_CARRIER_TARGET\x10\x33\x12\x1e\n\x1aINVALID_NUMBER_OF_ELEMENTS\x10\x34\x12\x1f\n\x1bINVALID_PHONE_NUMBER_FORMAT\x10\x35\x12\x31\n-INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID\x10\x36\x12\x19\n\x15INVALID_TEMPLATE_DATA\x10\x37\x12\'\n#INVALID_TEMPLATE_ELEMENT_FIELD_TYPE\x10\x38\x12\x17\n\x13INVALID_TEMPLATE_ID\x10\x39\x12\x11\n\rLINE_TOO_WIDE\x10:\x12!\n\x1dMISSING_AD_CUSTOMIZER_MAPPING\x10;\x12\x1d\n\x19MISSING_ADDRESS_COMPONENT\x10<\x12\x1e\n\x1aMISSING_ADVERTISEMENT_NAME\x10=\x12\x19\n\x15MISSING_BUSINESS_NAME\x10>\x12\x18\n\x14MISSING_DESCRIPTION1\x10?\x12\x18\n\x14MISSING_DESCRIPTION2\x10@\x12\x1f\n\x1bMISSING_DESTINATION_URL_TAG\x10\x41\x12 \n\x1cMISSING_LANDING_PAGE_URL_TAG\x10\x42\x12\x15\n\x11MISSING_DIMENSION\x10\x43\x12\x17\n\x13MISSING_DISPLAY_URL\x10\x44\x12\x14\n\x10MISSING_HEADLINE\x10\x45\x12\x12\n\x0eMISSING_HEIGHT\x10\x46\x12\x11\n\rMISSING_IMAGE\x10G\x12-\n)MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS\x10H\x12\x1c\n\x18MISSING_MARKUP_LANGUAGES\x10I\x12\x1a\n\x16MISSING_MOBILE_CARRIER\x10J\x12\x11\n\rMISSING_PHONE\x10K\x12$\n MISSING_REQUIRED_TEMPLATE_FIELDS\x10L\x12 \n\x1cMISSING_TEMPLATE_FIELD_VALUE\x10M\x12\x10\n\x0cMISSING_TEXT\x10N\x12\x17\n\x13MISSING_VISIBLE_URL\x10O\x12\x11\n\rMISSING_WIDTH\x10P\x12\'\n#MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED\x10Q\x12$\n MUST_USE_TEMP_AD_UNION_ID_ON_ADD\x10R\x12\x0c\n\x08TOO_LONG\x10S\x12\r\n\tTOO_SHORT\x10T\x12\"\n\x1eUNION_DIMENSIONS_CANNOT_CHANGE\x10U\x12\x1d\n\x19UNKNOWN_ADDRESS_COMPONENT\x10V\x12\x16\n\x12UNKNOWN_FIELD_NAME\x10W\x12\x17\n\x13UNKNOWN_UNIQUE_NAME\x10X\x12\x1a\n\x16UNSUPPORTED_DIMENSIONS\x10Y\x12\x16\n\x12URL_INVALID_SCHEME\x10Z\x12 \n\x1cURL_INVALID_TOP_LEVEL_DOMAIN\x10[\x12\x11\n\rURL_MALFORMED\x10\\\x12\x0f\n\x0bURL_NO_HOST\x10]\x12\x16\n\x12URL_NOT_EQUIVALENT\x10^\x12\x1a\n\x16URL_HOST_NAME_TOO_LONG\x10_\x12\x11\n\rURL_NO_SCHEME\x10`\x12\x1b\n\x17URL_NO_TOP_LEVEL_DOMAIN\x10\x61\x12\x18\n\x14URL_PATH_NOT_ALLOWED\x10\x62\x12\x18\n\x14URL_PORT_NOT_ALLOWED\x10\x63\x12\x19\n\x15URL_QUERY_NOT_ALLOWED\x10\x64\x12\x34\n0URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG\x10\x66\x12)\n%USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE\x10g\x12$\n INCONSISTENT_EXPANDABLE_SETTINGS\x10h\x12\x12\n\x0eINVALID_FORMAT\x10i\x12\x16\n\x12INVALID_FIELD_TEXT\x10j\x12\x17\n\x13\x45LEMENT_NOT_PRESENT\x10k\x12\x0f\n\x0bIMAGE_ERROR\x10l\x12\x16\n\x12VALUE_NOT_IN_RANGE\x10m\x12\x15\n\x11\x46IELD_NOT_PRESENT\x10n\x12\x18\n\x14\x41\x44\x44RESS_NOT_COMPLETE\x10o\x12\x13\n\x0f\x41\x44\x44RESS_INVALID\x10p\x12\x19\n\x15VIDEO_RETRIEVAL_ERROR\x10q\x12\x0f\n\x0b\x41UDIO_ERROR\x10r\x12\x1f\n\x1bINVALID_YOUTUBE_DISPLAY_URL\x10s\x12\x1b\n\x17TOO_MANY_PRODUCT_IMAGES\x10t\x12\x1b\n\x17TOO_MANY_PRODUCT_VIDEOS\x10u\x12.\n*INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE\x10v\x12*\n&CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10w\x12-\n)CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED\x10x\x12\x1a\n\x16\x44ISALLOWED_NUMBER_TYPE\x10y\x12*\n&PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY\x10z\x12<\n8PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY\x10{\x12#\n\x1fPREMIUM_RATE_NUMBER_NOT_ALLOWED\x10|\x12#\n\x1fVANITY_PHONE_NUMBER_NOT_ALLOWED\x10}\x12#\n\x1fINVALID_CALL_CONVERSION_TYPE_ID\x10~\x12=\n9CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID\x10\x7f\x12#\n\x1e\x43\x41NNOT_SET_PATH2_WITHOUT_PATH1\x10\x80\x01\x12\x33\n.MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME\x10\x81\x01\x12\'\n\"INCOMPATIBLE_WITH_RESTRICTION_TYPE\x10\x82\x01\x12\x31\n,CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED\x10\x83\x01\x12\"\n\x1dMISSING_IMAGE_OR_MEDIA_BUNDLE\x10\x84\x01\x12\x30\n+PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN\x10\x85\x01\x12\x30\n+PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE\x10\x86\x01\x12=\n8PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE\x10\x87\x01\x12&\n!PLACEHOLDER_DEFAULT_VALUE_MISSING\x10\x88\x01\x12)\n$UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE\x10\x89\x01\x12\'\n\"AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT\x10\x8a\x01\x12,\n\'UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION\x10\x8b\x01\x12\x1c\n\x17TOO_MANY_AD_CUSTOMIZERS\x10\x8d\x01\x12!\n\x1cINVALID_AD_CUSTOMIZER_FORMAT\x10\x8e\x01\x12 \n\x1bNESTED_AD_CUSTOMIZER_SYNTAX\x10\x8f\x01\x12%\n UNSUPPORTED_AD_CUSTOMIZER_SYNTAX\x10\x90\x01\x12(\n#UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG\x10\x91\x01\x12,\n\'MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS\x10\x92\x01\x12*\n%DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID\x10\x93\x01\x12\'\n\"DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST\x10\x94\x01\x12)\n$UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND\x10\x95\x01\x42\xe7\x01\n\"com.google.ads.googleads.v5.errorsB\x0c\x41\x64\x45rrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADERRORENUM_ADERROR = _descriptor.EnumDescriptor( + name='AdError', + full_name='google.ads.googleads.v5.errors.AdErrorEnum.AdError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROXIMATELY_TOO_LONG', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APPROXIMATELY_TOO_SHORT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_SNIPPET', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_AD', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BUSINESS_NAME_IF_URL_SET', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_URL', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITHOUT_FINAL_URLS', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_FINAL_URLS', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_URL_DATA', index=16, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_MOBILEADS', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS', index=19, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS', index=20, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ELIGIBLE', index=21, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL', index=22, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DIMENSION_ALREADY_IN_UNION', index=23, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DIMENSION_MUST_BE_SET', index=24, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DIMENSION_NOT_IN_UNION', index=25, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISPLAY_URL_CANNOT_BE_SPECIFIED', index=26, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DOMESTIC_PHONE_NUMBER_FORMAT', index=27, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMERGENCY_PHONE_NUMBER', index=28, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMPTY_FIELD', index=29, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID', index=30, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH', index=31, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_AD_CUSTOMIZER_TAG_USE', index=32, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_TAG_USE', index=33, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_DIMENSIONS', index=34, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_STATUS_IN_TEMPLATE_UNION', index=35, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCORRECT_LENGTH', index=36, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INELIGIBLE_FOR_UPGRADE', index=37, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_ADDRESS_CAMPAIGN_TARGET', index=38, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_TYPE', index=39, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE', index=40, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTES_FOR_MOBILE_TEXT', index=41, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_TO_ACTION_TEXT', index=42, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTER_FOR_URL', index=43, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=44, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG', index=45, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=46, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MARKUP_LANGUAGE', index=47, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_CARRIER', index=48, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_CARRIER_TARGET', index=49, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NUMBER_OF_ELEMENTS', index=50, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PHONE_NUMBER_FORMAT', index=51, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID', index=52, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_DATA', index=53, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_ELEMENT_FIELD_TYPE', index=54, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_ID', index=55, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LINE_TOO_WIDE', index=56, number=58, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_AD_CUSTOMIZER_MAPPING', index=57, number=59, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_ADDRESS_COMPONENT', index=58, number=60, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_ADVERTISEMENT_NAME', index=59, number=61, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_BUSINESS_NAME', index=60, number=62, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DESCRIPTION1', index=61, number=63, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DESCRIPTION2', index=62, number=64, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DESTINATION_URL_TAG', index=63, number=65, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_LANDING_PAGE_URL_TAG', index=64, number=66, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DIMENSION', index=65, number=67, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DISPLAY_URL', index=66, number=68, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HEADLINE', index=67, number=69, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HEIGHT', index=68, number=70, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_IMAGE', index=69, number=71, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS', index=70, number=72, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_MARKUP_LANGUAGES', index=71, number=73, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_MOBILE_CARRIER', index=72, number=74, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PHONE', index=73, number=75, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_REQUIRED_TEMPLATE_FIELDS', index=74, number=76, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_TEMPLATE_FIELD_VALUE', index=75, number=77, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_TEXT', index=76, number=78, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_VISIBLE_URL', index=77, number=79, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_WIDTH', index=78, number=80, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED', index=79, number=81, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MUST_USE_TEMP_AD_UNION_ID_ON_ADD', index=80, number=82, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=81, number=83, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_SHORT', index=82, number=84, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNION_DIMENSIONS_CANNOT_CHANGE', index=83, number=85, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_ADDRESS_COMPONENT', index=84, number=86, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_FIELD_NAME', index=85, number=87, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_UNIQUE_NAME', index=86, number=88, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_DIMENSIONS', index=87, number=89, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_INVALID_SCHEME', index=88, number=90, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_INVALID_TOP_LEVEL_DOMAIN', index=89, number=91, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_MALFORMED', index=90, number=92, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_NO_HOST', index=91, number=93, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_NOT_EQUIVALENT', index=92, number=94, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_HOST_NAME_TOO_LONG', index=93, number=95, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_NO_SCHEME', index=94, number=96, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_NO_TOP_LEVEL_DOMAIN', index=95, number=97, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_PATH_NOT_ALLOWED', index=96, number=98, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_PORT_NOT_ALLOWED', index=97, number=99, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_QUERY_NOT_ALLOWED', index=98, number=100, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG', index=99, number=102, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE', index=100, number=103, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_EXPANDABLE_SETTINGS', index=101, number=104, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT', index=102, number=105, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_TEXT', index=103, number=106, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ELEMENT_NOT_PRESENT', index=104, number=107, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_ERROR', index=105, number=108, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_NOT_IN_RANGE', index=106, number=109, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_PRESENT', index=107, number=110, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS_NOT_COMPLETE', index=108, number=111, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS_INVALID', index=109, number=112, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_RETRIEVAL_ERROR', index=110, number=113, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUDIO_ERROR', index=111, number=114, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_DISPLAY_URL', index=112, number=115, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_PRODUCT_IMAGES', index=113, number=116, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_PRODUCT_VIDEOS', index=114, number=117, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE', index=115, number=118, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=116, number=119, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED', index=117, number=120, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_NUMBER_TYPE', index=118, number=121, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY', index=119, number=122, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY', index=120, number=123, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PREMIUM_RATE_NUMBER_NOT_ALLOWED', index=121, number=124, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VANITY_PHONE_NUMBER_NOT_ALLOWED', index=122, number=125, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_CONVERSION_TYPE_ID', index=123, number=126, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID', index=124, number=127, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_PATH2_WITHOUT_PATH1', index=125, number=128, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME', index=126, number=129, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_WITH_RESTRICTION_TYPE', index=127, number=130, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED', index=128, number=131, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_IMAGE_OR_MEDIA_BUNDLE', index=129, number=132, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN', index=130, number=133, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE', index=131, number=134, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE', index=132, number=135, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEHOLDER_DEFAULT_VALUE_MISSING', index=133, number=136, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE', index=134, number=137, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT', index=135, number=138, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION', index=136, number=139, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_AD_CUSTOMIZERS', index=137, number=141, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_CUSTOMIZER_FORMAT', index=138, number=142, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NESTED_AD_CUSTOMIZER_SYNTAX', index=139, number=143, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_AD_CUSTOMIZER_SYNTAX', index=140, number=144, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG', index=141, number=145, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS', index=142, number=146, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID', index=143, number=147, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST', index=144, number=148, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND', index=145, number=149, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=134, + serialized_end=4963, +) +_sym_db.RegisterEnumDescriptor(_ADERRORENUM_ADERROR) + + +_ADERRORENUM = _descriptor.Descriptor( + name='AdErrorEnum', + full_name='google.ads.googleads.v5.errors.AdErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADERRORENUM_ADERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=4963, +) + +_ADERRORENUM_ADERROR.containing_type = _ADERRORENUM +DESCRIPTOR.message_types_by_name['AdErrorEnum'] = _ADERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdErrorEnum = _reflection.GeneratedProtocolMessageType('AdErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_error_pb2' + , + '__doc__': """Container for enum describing possible ad errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdErrorEnum) + }) +_sym_db.RegisterMessage(AdErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/ad_group_ad_error_pb2.py b/google/ads/google_ads/v5/proto/errors/ad_group_ad_error_pb2.py new file mode 100644 index 000000000..b3a05bd73 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_group_ad_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/ad_group_ad_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/ad_group_ad_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023AdGroupAdErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING\x10\x0e\x12\x37\n3PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER\x10\x0f\x42\xec\x01\n\"com.google.ads.googleads.v5.errorsB\x11\x41\x64GroupErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADGROUPERRORENUM_ADGROUPERROR = _descriptor.EnumDescriptor( + name='AdGroupError', + full_name='google.ads.googleads.v5.errors.AdGroupErrorEnum.AdGroupError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ADGROUP_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ADGROUP_NAME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADVERTISER_NOT_ON_CONTENT_NETWORK', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_BIG', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_ADGROUP_NAME', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADGROUP_LABEL_DOES_NOT_EXIST', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADGROUP_LABEL_ALREADY_EXISTS', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONTENT_BID_CRITERION_TYPE_GROUP', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=145, + serialized_end=725, +) +_sym_db.RegisterEnumDescriptor(_ADGROUPERRORENUM_ADGROUPERROR) + + +_ADGROUPERRORENUM = _descriptor.Descriptor( + name='AdGroupErrorEnum', + full_name='google.ads.googleads.v5.errors.AdGroupErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADGROUPERRORENUM_ADGROUPERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=725, +) + +_ADGROUPERRORENUM_ADGROUPERROR.containing_type = _ADGROUPERRORENUM +DESCRIPTOR.message_types_by_name['AdGroupErrorEnum'] = _ADGROUPERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupErrorEnum = _reflection.GeneratedProtocolMessageType('AdGroupErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_group_error_pb2' + , + '__doc__': """Container for enum describing possible ad group errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdGroupErrorEnum) + }) +_sym_db.RegisterMessage(AdGroupErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_group_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_group_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_group_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2.py b/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2.py new file mode 100644 index 000000000..bf6d73325 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/ad_group_feed_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/ad_group_feed_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025AdGroupFeedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/ad_group_feed_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xdc\x02\n\x14\x41\x64GroupFeedErrorEnum\"\xc3\x02\n\x10\x41\x64GroupFeedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x02\x12\"\n\x1e\x43\x41NNOT_CREATE_FOR_REMOVED_FEED\x10\x03\x12\x1f\n\x1b\x41\x44GROUP_FEED_ALREADY_EXISTS\x10\x04\x12*\n&CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED\x10\x05\x12\x1c\n\x18INVALID_PLACEHOLDER_TYPE\x10\x06\x12,\n(MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE\x10\x07\x12&\n\"NO_EXISTING_LOCATION_CUSTOMER_FEED\x10\x08\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15\x41\x64GroupFeedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADGROUPFEEDERRORENUM_ADGROUPFEEDERROR = _descriptor.EnumDescriptor( + name='AdGroupFeedError', + full_name='google.ads.googleads.v5.errors.AdGroupFeedErrorEnum.AdGroupFeedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_FOR_REMOVED_FEED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADGROUP_FEED_ALREADY_EXISTS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_EXISTING_LOCATION_CUSTOMER_FEED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=477, +) +_sym_db.RegisterEnumDescriptor(_ADGROUPFEEDERRORENUM_ADGROUPFEEDERROR) + + +_ADGROUPFEEDERRORENUM = _descriptor.Descriptor( + name='AdGroupFeedErrorEnum', + full_name='google.ads.googleads.v5.errors.AdGroupFeedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADGROUPFEEDERRORENUM_ADGROUPFEEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=477, +) + +_ADGROUPFEEDERRORENUM_ADGROUPFEEDERROR.containing_type = _ADGROUPFEEDERRORENUM +DESCRIPTOR.message_types_by_name['AdGroupFeedErrorEnum'] = _ADGROUPFEEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupFeedErrorEnum = _reflection.GeneratedProtocolMessageType('AdGroupFeedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPFEEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_group_feed_error_pb2' + , + '__doc__': """Container for enum describing possible ad group feed errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdGroupFeedErrorEnum) + }) +_sym_db.RegisterMessage(AdGroupFeedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_group_feed_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2.py b/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2.py new file mode 100644 index 000000000..cf4e7e75f --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/ad_parameter_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/ad_parameter_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025AdParameterErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/ad_parameter_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x93\x01\n\x14\x41\x64ParameterErrorEnum\"{\n\x10\x41\x64ParameterError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12&\n\"AD_GROUP_CRITERION_MUST_BE_KEYWORD\x10\x02\x12!\n\x1dINVALID_INSERTION_TEXT_FORMAT\x10\x03\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15\x41\x64ParameterErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADPARAMETERERRORENUM_ADPARAMETERERROR = _descriptor.EnumDescriptor( + name='AdParameterError', + full_name='google.ads.googleads.v5.errors.AdParameterErrorEnum.AdParameterError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_CRITERION_MUST_BE_KEYWORD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_INSERTION_TEXT_FORMAT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=152, + serialized_end=275, +) +_sym_db.RegisterEnumDescriptor(_ADPARAMETERERRORENUM_ADPARAMETERERROR) + + +_ADPARAMETERERRORENUM = _descriptor.Descriptor( + name='AdParameterErrorEnum', + full_name='google.ads.googleads.v5.errors.AdParameterErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADPARAMETERERRORENUM_ADPARAMETERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=275, +) + +_ADPARAMETERERRORENUM_ADPARAMETERERROR.containing_type = _ADPARAMETERERRORENUM +DESCRIPTOR.message_types_by_name['AdParameterErrorEnum'] = _ADPARAMETERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdParameterErrorEnum = _reflection.GeneratedProtocolMessageType('AdParameterErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADPARAMETERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_parameter_error_pb2' + , + '__doc__': """Container for enum describing possible ad parameter errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdParameterErrorEnum) + }) +_sym_db.RegisterMessage(AdParameterErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_parameter_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2.py b/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2.py new file mode 100644 index 000000000..27201b1d1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/ad_sharing_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/ad_sharing_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023AdSharingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/ad_sharing_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xa9\x01\n\x12\x41\x64SharingErrorEnum\"\x92\x01\n\x0e\x41\x64SharingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1c\x41\x44_GROUP_ALREADY_CONTAINS_AD\x10\x02\x12\"\n\x1eINCOMPATIBLE_AD_UNDER_AD_GROUP\x10\x03\x12\x1c\n\x18\x43\x41NNOT_SHARE_INACTIVE_AD\x10\x04\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13\x41\x64SharingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADSHARINGERRORENUM_ADSHARINGERROR = _descriptor.EnumDescriptor( + name='AdSharingError', + full_name='google.ads.googleads.v5.errors.AdSharingErrorEnum.AdSharingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_ALREADY_CONTAINS_AD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_AD_UNDER_AD_GROUP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SHARE_INACTIVE_AD', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=295, +) +_sym_db.RegisterEnumDescriptor(_ADSHARINGERRORENUM_ADSHARINGERROR) + + +_ADSHARINGERRORENUM = _descriptor.Descriptor( + name='AdSharingErrorEnum', + full_name='google.ads.googleads.v5.errors.AdSharingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADSHARINGERRORENUM_ADSHARINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=295, +) + +_ADSHARINGERRORENUM_ADSHARINGERROR.containing_type = _ADSHARINGERRORENUM +DESCRIPTOR.message_types_by_name['AdSharingErrorEnum'] = _ADSHARINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdSharingErrorEnum = _reflection.GeneratedProtocolMessageType('AdSharingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADSHARINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.ad_sharing_error_pb2' + , + '__doc__': """Container for enum describing possible ad sharing errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdSharingErrorEnum) + }) +_sym_db.RegisterMessage(AdSharingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/ad_sharing_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/adx_error_pb2.py b/google/ads/google_ads/v5/proto/errors/adx_error_pb2.py new file mode 100644 index 000000000..44296457c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/adx_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/adx_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/adx_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\rAdxErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n4google/ads/googleads_v5/proto/errors/adx_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"Q\n\x0c\x41\x64xErrorEnum\"A\n\x08\x41\x64xError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13UNSUPPORTED_FEATURE\x10\x02\x42\xe8\x01\n\"com.google.ads.googleads.v5.errorsB\rAdxErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ADXERRORENUM_ADXERROR = _descriptor.EnumDescriptor( + name='AdxError', + full_name='google.ads.googleads.v5.errors.AdxErrorEnum.AdxError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_FEATURE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=134, + serialized_end=199, +) +_sym_db.RegisterEnumDescriptor(_ADXERRORENUM_ADXERROR) + + +_ADXERRORENUM = _descriptor.Descriptor( + name='AdxErrorEnum', + full_name='google.ads.googleads.v5.errors.AdxErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADXERRORENUM_ADXERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=199, +) + +_ADXERRORENUM_ADXERROR.containing_type = _ADXERRORENUM +DESCRIPTOR.message_types_by_name['AdxErrorEnum'] = _ADXERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdxErrorEnum = _reflection.GeneratedProtocolMessageType('AdxErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ADXERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.adx_error_pb2' + , + '__doc__': """Container for enum describing possible adx errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AdxErrorEnum) + }) +_sym_db.RegisterMessage(AdxErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/adx_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/adx_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/adx_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/asset_error_pb2.py b/google/ads/google_ads/v5/proto/errors/asset_error_pb2.py new file mode 100644 index 000000000..e5519f468 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/asset_error_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/asset_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/asset_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017AssetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/asset_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd3\x01\n\x0e\x41ssetErrorEnum\"\xc0\x01\n\nAssetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE\x10\r\x12\x13\n\x0f\x44UPLICATE_ASSET\x10\x03\x12\x18\n\x14\x44UPLICATE_ASSET_NAME\x10\x04\x12\x19\n\x15\x41SSET_DATA_IS_MISSING\x10\x05\x12\x1c\n\x18\x43\x41NNOT_MODIFY_ASSET_NAME\x10\x06\x42\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0f\x41ssetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ASSETERRORENUM_ASSETERROR = _descriptor.EnumDescriptor( + name='AssetError', + full_name='google.ads.googleads.v5.errors.AssetErrorEnum.AssetError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE', index=2, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ASSET', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ASSET_NAME', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ASSET_DATA_IS_MISSING', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_ASSET_NAME', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=332, +) +_sym_db.RegisterEnumDescriptor(_ASSETERRORENUM_ASSETERROR) + + +_ASSETERRORENUM = _descriptor.Descriptor( + name='AssetErrorEnum', + full_name='google.ads.googleads.v5.errors.AssetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ASSETERRORENUM_ASSETERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=332, +) + +_ASSETERRORENUM_ASSETERROR.containing_type = _ASSETERRORENUM +DESCRIPTOR.message_types_by_name['AssetErrorEnum'] = _ASSETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AssetErrorEnum = _reflection.GeneratedProtocolMessageType('AssetErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ASSETERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.asset_error_pb2' + , + '__doc__': """Container for enum describing possible asset errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AssetErrorEnum) + }) +_sym_db.RegisterMessage(AssetErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/asset_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/asset_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/asset_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2.py b/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2.py new file mode 100644 index 000000000..e2c12f388 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/asset_link_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/asset_link_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023AssetLinkErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/asset_link_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd7\x01\n\x12\x41ssetLinkErrorEnum\"\xc0\x01\n\x0e\x41ssetLinkError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13PINNING_UNSUPPORTED\x10\x02\x12\x1a\n\x16UNSUPPORTED_FIELD_TYPE\x10\x03\x12+\n\'FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE\x10\x04\x12.\n*FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE\x10\x05\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13\x41ssetLinkErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ASSETLINKERRORENUM_ASSETLINKERROR = _descriptor.EnumDescriptor( + name='AssetLinkError', + full_name='google.ads.googleads.v5.errors.AssetLinkErrorEnum.AssetLinkError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PINNING_UNSUPPORTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_FIELD_TYPE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=341, +) +_sym_db.RegisterEnumDescriptor(_ASSETLINKERRORENUM_ASSETLINKERROR) + + +_ASSETLINKERRORENUM = _descriptor.Descriptor( + name='AssetLinkErrorEnum', + full_name='google.ads.googleads.v5.errors.AssetLinkErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ASSETLINKERRORENUM_ASSETLINKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=341, +) + +_ASSETLINKERRORENUM_ASSETLINKERROR.containing_type = _ASSETLINKERRORENUM +DESCRIPTOR.message_types_by_name['AssetLinkErrorEnum'] = _ASSETLINKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AssetLinkErrorEnum = _reflection.GeneratedProtocolMessageType('AssetLinkErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ASSETLINKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.asset_link_error_pb2' + , + '__doc__': """Container for enum describing possible asset link errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AssetLinkErrorEnum) + }) +_sym_db.RegisterMessage(AssetLinkErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/asset_link_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/authentication_error_pb2.py b/google/ads/google_ads/v5/proto/errors/authentication_error_pb2.py new file mode 100644 index 000000000..580b133e9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/authentication_error_pb2.py @@ -0,0 +1,185 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/authentication_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/authentication_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030AuthenticationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/errors/authentication_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xe8\x04\n\x17\x41uthenticationErrorEnum\"\xcc\x04\n\x13\x41uthenticationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14\x41UTHENTICATION_ERROR\x10\x02\x12\x1e\n\x1a\x43LIENT_CUSTOMER_ID_INVALID\x10\x05\x12\x16\n\x12\x43USTOMER_NOT_FOUND\x10\x08\x12\x1a\n\x16GOOGLE_ACCOUNT_DELETED\x10\t\x12!\n\x1dGOOGLE_ACCOUNT_COOKIE_INVALID\x10\n\x12(\n$GOOGLE_ACCOUNT_AUTHENTICATION_FAILED\x10\x19\x12-\n)GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH\x10\x0c\x12\x19\n\x15LOGIN_COOKIE_REQUIRED\x10\r\x12\x10\n\x0cNOT_ADS_USER\x10\x0e\x12\x17\n\x13OAUTH_TOKEN_INVALID\x10\x0f\x12\x17\n\x13OAUTH_TOKEN_EXPIRED\x10\x10\x12\x18\n\x14OAUTH_TOKEN_DISABLED\x10\x11\x12\x17\n\x13OAUTH_TOKEN_REVOKED\x10\x12\x12\x1e\n\x1aOAUTH_TOKEN_HEADER_INVALID\x10\x13\x12\x18\n\x14LOGIN_COOKIE_INVALID\x10\x14\x12\x13\n\x0fUSER_ID_INVALID\x10\x16\x12&\n\"TWO_STEP_VERIFICATION_NOT_ENROLLED\x10\x17\x12$\n ADVANCED_PROTECTION_NOT_ENROLLED\x10\x18\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18\x41uthenticationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR = _descriptor.EnumDescriptor( + name='AuthenticationError', + full_name='google.ads.googleads.v5.errors.AuthenticationErrorEnum.AuthenticationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUTHENTICATION_ERROR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_CUSTOMER_ID_INVALID', index=3, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_FOUND', index=4, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_DELETED', index=5, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_COOKIE_INVALID', index=6, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_AUTHENTICATION_FAILED', index=7, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH', index=8, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOGIN_COOKIE_REQUIRED', index=9, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ADS_USER', index=10, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_INVALID', index=11, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_EXPIRED', index=12, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_DISABLED', index=13, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_REVOKED', index=14, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_HEADER_INVALID', index=15, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOGIN_COOKIE_INVALID', index=16, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER_ID_INVALID', index=17, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWO_STEP_VERIFICATION_NOT_ENROLLED', index=18, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADVANCED_PROTECTION_NOT_ENROLLED', index=19, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=158, + serialized_end=746, +) +_sym_db.RegisterEnumDescriptor(_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR) + + +_AUTHENTICATIONERRORENUM = _descriptor.Descriptor( + name='AuthenticationErrorEnum', + full_name='google.ads.googleads.v5.errors.AuthenticationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=746, +) + +_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR.containing_type = _AUTHENTICATIONERRORENUM +DESCRIPTOR.message_types_by_name['AuthenticationErrorEnum'] = _AUTHENTICATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AuthenticationErrorEnum = _reflection.GeneratedProtocolMessageType('AuthenticationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _AUTHENTICATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.authentication_error_pb2' + , + '__doc__': """Container for enum describing possible authentication errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AuthenticationErrorEnum) + }) +_sym_db.RegisterMessage(AuthenticationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/authentication_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/authentication_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/authentication_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/authorization_error_pb2.py b/google/ads/google_ads/v5/proto/errors/authorization_error_pb2.py new file mode 100644 index 000000000..be4dea436 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/authorization_error_pb2.py @@ -0,0 +1,155 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/authorization_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/authorization_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\027AuthorizationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/authorization_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb6\x03\n\x16\x41uthorizationErrorEnum\"\x9b\x03\n\x12\x41uthorizationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16USER_PERMISSION_DENIED\x10\x02\x12$\n DEVELOPER_TOKEN_NOT_ON_ALLOWLIST\x10\r\x12\x1e\n\x1a\x44\x45VELOPER_TOKEN_PROHIBITED\x10\x04\x12\x14\n\x10PROJECT_DISABLED\x10\x05\x12\x17\n\x13\x41UTHORIZATION_ERROR\x10\x06\x12\x18\n\x14\x41\x43TION_NOT_PERMITTED\x10\x07\x12\x15\n\x11INCOMPLETE_SIGNUP\x10\x08\x12\x18\n\x14\x43USTOMER_NOT_ENABLED\x10\x18\x12\x0f\n\x0bMISSING_TOS\x10\t\x12 \n\x1c\x44\x45VELOPER_TOKEN_NOT_APPROVED\x10\n\x12=\n9INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION\x10\x0b\x12\x19\n\x15SERVICE_ACCESS_DENIED\x10\x0c\x42\xf2\x01\n\"com.google.ads.googleads.v5.errorsB\x17\x41uthorizationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR = _descriptor.EnumDescriptor( + name='AuthorizationError', + full_name='google.ads.googleads.v5.errors.AuthorizationErrorEnum.AuthorizationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER_PERMISSION_DENIED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVELOPER_TOKEN_NOT_ON_ALLOWLIST', index=3, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVELOPER_TOKEN_PROHIBITED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROJECT_DISABLED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUTHORIZATION_ERROR', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACTION_NOT_PERMITTED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPLETE_SIGNUP', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ENABLED', index=9, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_TOS', index=10, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVELOPER_TOKEN_NOT_APPROVED', index=11, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION', index=12, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVICE_ACCESS_DENIED', index=13, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=156, + serialized_end=567, +) +_sym_db.RegisterEnumDescriptor(_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR) + + +_AUTHORIZATIONERRORENUM = _descriptor.Descriptor( + name='AuthorizationErrorEnum', + full_name='google.ads.googleads.v5.errors.AuthorizationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=567, +) + +_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR.containing_type = _AUTHORIZATIONERRORENUM +DESCRIPTOR.message_types_by_name['AuthorizationErrorEnum'] = _AUTHORIZATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AuthorizationErrorEnum = _reflection.GeneratedProtocolMessageType('AuthorizationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _AUTHORIZATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.authorization_error_pb2' + , + '__doc__': """Container for enum describing possible authorization errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.AuthorizationErrorEnum) + }) +_sym_db.RegisterMessage(AuthorizationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/authorization_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/authorization_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/authorization_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2.py b/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2.py new file mode 100644 index 000000000..1bd3272ba --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/batch_job_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/batch_job_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022BatchJobErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/batch_job_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xf4\x01\n\x11\x42\x61tchJobErrorEnum\"\xde\x01\n\rBatchJobError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12.\n*CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING\x10\x02\x12\x14\n\x10\x45MPTY_OPERATIONS\x10\x03\x12\x1a\n\x16INVALID_SEQUENCE_TOKEN\x10\x04\x12\x15\n\x11RESULTS_NOT_READY\x10\x05\x12\x15\n\x11INVALID_PAGE_SIZE\x10\x06\x12\x1f\n\x1b\x43\x41N_ONLY_REMOVE_PENDING_JOB\x10\x07\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x42\x61tchJobErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BATCHJOBERRORENUM_BATCHJOBERROR = _descriptor.EnumDescriptor( + name='BatchJobError', + full_name='google.ads.googleads.v5.errors.BatchJobErrorEnum.BatchJobError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMPTY_OPERATIONS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SEQUENCE_TOKEN', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESULTS_NOT_READY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PAGE_SIZE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAN_ONLY_REMOVE_PENDING_JOB', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=369, +) +_sym_db.RegisterEnumDescriptor(_BATCHJOBERRORENUM_BATCHJOBERROR) + + +_BATCHJOBERRORENUM = _descriptor.Descriptor( + name='BatchJobErrorEnum', + full_name='google.ads.googleads.v5.errors.BatchJobErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BATCHJOBERRORENUM_BATCHJOBERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=369, +) + +_BATCHJOBERRORENUM_BATCHJOBERROR.containing_type = _BATCHJOBERRORENUM +DESCRIPTOR.message_types_by_name['BatchJobErrorEnum'] = _BATCHJOBERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BatchJobErrorEnum = _reflection.GeneratedProtocolMessageType('BatchJobErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _BATCHJOBERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.batch_job_error_pb2' + , + '__doc__': """Container for enum describing possible batch job errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.BatchJobErrorEnum) + }) +_sym_db.RegisterMessage(BatchJobErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/batch_job_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/bidding_error_pb2.py b/google/ads/google_ads/v5/proto/errors/bidding_error_pb2.py new file mode 100644 index 000000000..9266d003a --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/bidding_error_pb2.py @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/bidding_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/bidding_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\021BiddingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/errors/bidding_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xee\x08\n\x10\x42iddingErrorEnum\"\xd9\x08\n\x0c\x42iddingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12+\n\'BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED\x10\x02\x12.\n*CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN\x10\x07\x12+\n\'INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE\x10\n\x12!\n\x1dINVALID_BIDDING_STRATEGY_TYPE\x10\x0e\x12\x0f\n\x0bINVALID_BID\x10\x11\x12\x33\n/BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE\x10\x12\x12#\n\x1f\x43ONVERSION_TRACKING_NOT_ENABLED\x10\x13\x12\x1a\n\x16NOT_ENOUGH_CONVERSIONS\x10\x14\x12\x30\n,CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY\x10\x15\x12O\nKCANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY\x10\x17\x12\x33\n/BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE\x10\x18\x12\x31\n-PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER\x10\x19\x12\x32\n.PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA\x10\x1a\x12:\n6BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS\x10\x1b\x12;\n7BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS\x10\x1c\x12I\nEBIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION\x10\x1d\x12\x11\n\rBID_TOO_SMALL\x10\x1e\x12\x0f\n\x0b\x42ID_TOO_BIG\x10\x1f\x12\"\n\x1e\x42ID_TOO_MANY_FRACTIONAL_DIGITS\x10 \x12\x17\n\x13INVALID_DOMAIN_NAME\x10!\x12$\n NOT_COMPATIBLE_WITH_PAYMENT_MODE\x10\"\x12#\n\x1fNOT_COMPATIBLE_WITH_BUDGET_TYPE\x10#\x12-\n)NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE\x10$\x12\x39\n5BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET\x10%B\xec\x01\n\"com.google.ads.googleads.v5.errorsB\x11\x42iddingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BIDDINGERRORENUM_BIDDINGERROR = _descriptor.EnumDescriptor( + name='BiddingError', + full_name='google.ads.googleads.v5.errors.BiddingErrorEnum.BiddingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN', index=3, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE', index=4, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_BIDDING_STRATEGY_TYPE', index=5, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_BID', index=6, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE', index=7, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TRACKING_NOT_ENABLED', index=8, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ENOUGH_CONVERSIONS', index=9, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY', index=10, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY', index=11, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE', index=12, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER', index=13, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA', index=14, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS', index=15, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS', index=16, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION', index=17, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_SMALL', index=18, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_BIG', index=19, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_MANY_FRACTIONAL_DIGITS', index=20, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DOMAIN_NAME', index=21, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_COMPATIBLE_WITH_PAYMENT_MODE', index=22, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_COMPATIBLE_WITH_BUDGET_TYPE', index=23, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE', index=24, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET', index=25, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=1257, +) +_sym_db.RegisterEnumDescriptor(_BIDDINGERRORENUM_BIDDINGERROR) + + +_BIDDINGERRORENUM = _descriptor.Descriptor( + name='BiddingErrorEnum', + full_name='google.ads.googleads.v5.errors.BiddingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BIDDINGERRORENUM_BIDDINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=1257, +) + +_BIDDINGERRORENUM_BIDDINGERROR.containing_type = _BIDDINGERRORENUM +DESCRIPTOR.message_types_by_name['BiddingErrorEnum'] = _BIDDINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BiddingErrorEnum = _reflection.GeneratedProtocolMessageType('BiddingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _BIDDINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.bidding_error_pb2' + , + '__doc__': """Container for enum describing possible bidding errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.BiddingErrorEnum) + }) +_sym_db.RegisterMessage(BiddingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/bidding_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/bidding_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/bidding_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/bidding_strategy_error_pb2.py b/google/ads/google_ads/v5/proto/errors/bidding_strategy_error_pb2.py new file mode 100644 index 000000000..ab9a0ce59 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/bidding_strategy_error_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/bidding_strategy_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/bidding_strategy_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031BiddingStrategyErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/bidding_strategy_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x9b\x02\n\x18\x42iddingStrategyErrorEnum\"\xfe\x01\n\x14\x42iddingStrategyError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x02\x12\'\n#CANNOT_CHANGE_BIDDING_STRATEGY_TYPE\x10\x03\x12%\n!CANNOT_REMOVE_ASSOCIATED_STRATEGY\x10\x04\x12\"\n\x1e\x42IDDING_STRATEGY_NOT_SUPPORTED\x10\x05\x12@\ngoogle/ads/googleads_v5/proto/errors/billing_setup_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd9\x05\n\x15\x42illingSetupErrorEnum\"\xbf\x05\n\x11\x42illingSetupError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\'\n#CANNOT_USE_EXISTING_AND_NEW_ACCOUNT\x10\x02\x12\'\n#CANNOT_REMOVE_STARTED_BILLING_SETUP\x10\x03\x12\x32\n.CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT\x10\x04\x12\x33\n/BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS\x10\x05\x12\x1c\n\x18INVALID_PAYMENTS_ACCOUNT\x10\x06\x12\x35\n1BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY\x10\x07\x12\x1b\n\x17INVALID_START_TIME_TYPE\x10\x08\x12#\n\x1fTHIRD_PARTY_ALREADY_HAS_BILLING\x10\t\x12\x1d\n\x19\x42ILLING_SETUP_IN_PROGRESS\x10\n\x12\x18\n\x14NO_SIGNUP_PERMISSION\x10\x0b\x12!\n\x1d\x43HANGE_OF_BILL_TO_IN_PROGRESS\x10\x0c\x12\x1e\n\x1aPAYMENTS_PROFILE_NOT_FOUND\x10\r\x12\x1e\n\x1aPAYMENTS_ACCOUNT_NOT_FOUND\x10\x0e\x12\x1f\n\x1bPAYMENTS_PROFILE_INELIGIBLE\x10\x0f\x12\x1f\n\x1bPAYMENTS_ACCOUNT_INELIGIBLE\x10\x10\x12$\n CUSTOMER_NEEDS_INTERNAL_APPROVAL\x10\x11\x12\x36\n2PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH\x10\x13\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x42illingSetupErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_BILLINGSETUPERRORENUM_BILLINGSETUPERROR = _descriptor.EnumDescriptor( + name='BillingSetupError', + full_name='google.ads.googleads.v5.errors.BillingSetupErrorEnum.BillingSetupError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_EXISTING_AND_NEW_ACCOUNT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_STARTED_BILLING_SETUP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PAYMENTS_ACCOUNT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_START_TIME_TYPE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THIRD_PARTY_ALREADY_HAS_BILLING', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BILLING_SETUP_IN_PROGRESS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_SIGNUP_PERMISSION', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CHANGE_OF_BILL_TO_IN_PROGRESS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAYMENTS_PROFILE_NOT_FOUND', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAYMENTS_ACCOUNT_NOT_FOUND', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAYMENTS_PROFILE_INELIGIBLE', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAYMENTS_ACCOUNT_INELIGIBLE', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NEEDS_INTERNAL_APPROVAL', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=858, +) +_sym_db.RegisterEnumDescriptor(_BILLINGSETUPERRORENUM_BILLINGSETUPERROR) + + +_BILLINGSETUPERRORENUM = _descriptor.Descriptor( + name='BillingSetupErrorEnum', + full_name='google.ads.googleads.v5.errors.BillingSetupErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BILLINGSETUPERRORENUM_BILLINGSETUPERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=858, +) + +_BILLINGSETUPERRORENUM_BILLINGSETUPERROR.containing_type = _BILLINGSETUPERRORENUM +DESCRIPTOR.message_types_by_name['BillingSetupErrorEnum'] = _BILLINGSETUPERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BillingSetupErrorEnum = _reflection.GeneratedProtocolMessageType('BillingSetupErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _BILLINGSETUPERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.billing_setup_error_pb2' + , + '__doc__': """Container for enum describing possible billing setup errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.BillingSetupErrorEnum) + }) +_sym_db.RegisterMessage(BillingSetupErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/billing_setup_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/billing_setup_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/billing_setup_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2.py new file mode 100644 index 000000000..32b8eaeda --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_budget_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_budget_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030CampaignBudgetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/errors/campaign_budget_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x9f\x06\n\x17\x43\x61mpaignBudgetErrorEnum\"\x83\x06\n\x13\x43\x61mpaignBudgetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12$\n CAMPAIGN_BUDGET_CANNOT_BE_SHARED\x10\x11\x12\x1b\n\x17\x43\x41MPAIGN_BUDGET_REMOVED\x10\x02\x12\x1a\n\x16\x43\x41MPAIGN_BUDGET_IN_USE\x10\x03\x12(\n$CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE\x10\x04\x12<\n8CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET\x10\x06\x12\x36\n2CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED\x10\x07\x12\x43\n?CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME\x10\x08\x12\x36\n2CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED\x10\t\x12H\nDCANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS\x10\n\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x0b\x12\"\n\x1eMONEY_AMOUNT_IN_WRONG_CURRENCY\x10\x0c\x12/\n+MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC\x10\r\x12\x1a\n\x16MONEY_AMOUNT_TOO_LARGE\x10\x0e\x12\x19\n\x15NEGATIVE_MONEY_AMOUNT\x10\x0f\x12)\n%NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT\x10\x10\x12=\n9TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY\x10\x12\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18\x43\x61mpaignBudgetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR = _descriptor.EnumDescriptor( + name='CampaignBudgetError', + full_name='google.ads.googleads.v5.errors.CampaignBudgetErrorEnum.CampaignBudgetError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_CANNOT_BE_SHARED', index=2, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_REMOVED', index=3, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_IN_USE', index=4, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE', index=5, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_IN_WRONG_CURRENCY', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_TOO_LARGE', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEGATIVE_MONEY_AMOUNT', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=930, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR) + + +_CAMPAIGNBUDGETERRORENUM = _descriptor.Descriptor( + name='CampaignBudgetErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignBudgetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=930, +) + +_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR.containing_type = _CAMPAIGNBUDGETERRORENUM +DESCRIPTOR.message_types_by_name['CampaignBudgetErrorEnum'] = _CAMPAIGNBUDGETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignBudgetErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignBudgetErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNBUDGETERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_budget_error_pb2' + , + '__doc__': """Container for enum describing possible campaign budget errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignBudgetErrorEnum) + }) +_sym_db.RegisterMessage(CampaignBudgetErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_budget_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2.py new file mode 100644 index 000000000..592e2387f --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_criterion_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_criterion_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\033CampaignCriterionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/errors/campaign_criterion_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xf5\x03\n\x1a\x43\x61mpaignCriterionErrorEnum\"\xd6\x03\n\x16\x43\x61mpaignCriterionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16\x43ONCRETE_TYPE_REQUIRED\x10\x02\x12\x19\n\x15INVALID_PLACEMENT_URL\x10\x03\x12 \n\x1c\x43\x41NNOT_EXCLUDE_CRITERIA_TYPE\x10\x04\x12\'\n#CANNOT_SET_STATUS_FOR_CRITERIA_TYPE\x10\x05\x12+\n\'CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA\x10\x06\x12\x1d\n\x19\x43\x41NNOT_TARGET_AND_EXCLUDE\x10\x07\x12\x17\n\x13TOO_MANY_OPERATIONS\x10\x08\x12-\n)OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE\x10\t\x12\x43\n?SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL\x10\n\x12\x1d\n\x19\x43\x41NNOT_ADD_EXISTING_FIELD\x10\x0b\x12$\n CANNOT_UPDATE_NEGATIVE_CRITERION\x10\x0c\x42\xf6\x01\n\"com.google.ads.googleads.v5.errorsB\x1b\x43\x61mpaignCriterionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR = _descriptor.EnumDescriptor( + name='CampaignCriterionError', + full_name='google.ads.googleads.v5.errors.CampaignCriterionErrorEnum.CampaignCriterionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONCRETE_TYPE_REQUIRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEMENT_URL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERIA_TYPE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_STATUS_FOR_CRITERIA_TYPE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_AND_EXCLUDE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_OPERATIONS', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_EXISTING_FIELD', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_NEGATIVE_CRITERION', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=165, + serialized_end=635, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR) + + +_CAMPAIGNCRITERIONERRORENUM = _descriptor.Descriptor( + name='CampaignCriterionErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignCriterionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=635, +) + +_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR.containing_type = _CAMPAIGNCRITERIONERRORENUM +DESCRIPTOR.message_types_by_name['CampaignCriterionErrorEnum'] = _CAMPAIGNCRITERIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterionErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignCriterionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNCRITERIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_criterion_error_pb2' + , + '__doc__': """Container for enum describing possible campaign criterion errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignCriterionErrorEnum) + }) +_sym_db.RegisterMessage(CampaignCriterionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_criterion_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2.py new file mode 100644 index 000000000..eabd84346 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_draft_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_draft_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\027CampaignDraftErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/errors/campaign_draft_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xc8\x03\n\x16\x43\x61mpaignDraftErrorEnum\"\xad\x03\n\x12\x43\x61mpaignDraftError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14\x44UPLICATE_DRAFT_NAME\x10\x02\x12*\n&INVALID_STATUS_TRANSITION_FROM_REMOVED\x10\x03\x12+\n\'INVALID_STATUS_TRANSITION_FROM_PROMOTED\x10\x04\x12\x31\n-INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED\x10\x05\x12 \n\x1c\x43USTOMER_CANNOT_CREATE_DRAFT\x10\x06\x12 \n\x1c\x43\x41MPAIGN_CANNOT_CREATE_DRAFT\x10\x07\x12\x18\n\x14INVALID_DRAFT_CHANGE\x10\x08\x12\x1d\n\x19INVALID_STATUS_TRANSITION\x10\t\x12-\n)MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED\x10\n\x12\'\n#LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY\x10\x0b\x42\xf2\x01\n\"com.google.ads.googleads.v5.errorsB\x17\x43\x61mpaignDraftErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNDRAFTERRORENUM_CAMPAIGNDRAFTERROR = _descriptor.EnumDescriptor( + name='CampaignDraftError', + full_name='google.ads.googleads.v5.errors.CampaignDraftErrorEnum.CampaignDraftError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_DRAFT_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STATUS_TRANSITION_FROM_REMOVED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STATUS_TRANSITION_FROM_PROMOTED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CANNOT_CREATE_DRAFT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_CANNOT_CREATE_DRAFT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DRAFT_CHANGE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STATUS_TRANSITION', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=586, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNDRAFTERRORENUM_CAMPAIGNDRAFTERROR) + + +_CAMPAIGNDRAFTERRORENUM = _descriptor.Descriptor( + name='CampaignDraftErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignDraftErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNDRAFTERRORENUM_CAMPAIGNDRAFTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=586, +) + +_CAMPAIGNDRAFTERRORENUM_CAMPAIGNDRAFTERROR.containing_type = _CAMPAIGNDRAFTERRORENUM +DESCRIPTOR.message_types_by_name['CampaignDraftErrorEnum'] = _CAMPAIGNDRAFTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignDraftErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignDraftErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNDRAFTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_draft_error_pb2' + , + '__doc__': """Container for enum describing possible campaign draft errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignDraftErrorEnum) + }) +_sym_db.RegisterMessage(CampaignDraftErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_draft_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_error_pb2.py new file mode 100644 index 000000000..92e4f898e --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_error_pb2.py @@ -0,0 +1,295 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022CampaignErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/campaign_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xae\r\n\x11\x43\x61mpaignErrorEnum\"\x98\r\n\rCampaignError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43\x41NNOT_TARGET_CONTENT_NETWORK\x10\x03\x12 \n\x1c\x43\x41NNOT_TARGET_SEARCH_NETWORK\x10\x04\x12\x36\n2CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH\x10\x05\x12\x30\n,CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN\x10\x06\x12-\n)CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK\x10\x07\x12(\n$CANNOT_TARGET_PARTNER_SEARCH_NETWORK\x10\x08\x12K\nGCANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY\x10\t\x12\x36\n2CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS\x10\n\x12$\n CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN\x10\x0b\x12\x1b\n\x17\x44UPLICATE_CAMPAIGN_NAME\x10\x0c\x12\x1f\n\x1bINCOMPATIBLE_CAMPAIGN_FIELD\x10\r\x12\x19\n\x15INVALID_CAMPAIGN_NAME\x10\x0e\x12*\n&INVALID_AD_SERVING_OPTIMIZATION_STATUS\x10\x0f\x12\x18\n\x14INVALID_TRACKING_URL\x10\x10\x12>\n:CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING\x10\x11\x12 \n\x1cMAX_IMPRESSIONS_NOT_IN_RANGE\x10\x12\x12\x1b\n\x17TIME_UNIT_NOT_SUPPORTED\x10\x13\x12\x31\n-INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED\x10\x14\x12\x1b\n\x17\x42UDGET_CANNOT_BE_SHARED\x10\x15\x12%\n!CAMPAIGN_CANNOT_USE_SHARED_BUDGET\x10\x16\x12\x30\n,CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS\x10\x17\x12!\n\x1d\x43\x41MPAIGN_LABEL_DOES_NOT_EXIST\x10\x18\x12!\n\x1d\x43\x41MPAIGN_LABEL_ALREADY_EXISTS\x10\x19\x12\x1c\n\x18MISSING_SHOPPING_SETTING\x10\x1a\x12\"\n\x1eINVALID_SHOPPING_SALES_COUNTRY\x10\x1b\x12;\n7ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE\x10\x1f\x12(\n$INVALID_ADVERTISING_CHANNEL_SUB_TYPE\x10 \x12,\n(AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED\x10!\x12\x1f\n\x1b\x43\x41NNOT_SET_AD_ROTATION_MODE\x10\"\x12/\n+CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED\x10#\x12\x1b\n\x17\x43\x41NNOT_SET_DATE_TO_PAST\x10$\x12\x1f\n\x1bMISSING_HOTEL_CUSTOMER_LINK\x10%\x12\x1f\n\x1bINVALID_HOTEL_CUSTOMER_LINK\x10&\x12\x19\n\x15MISSING_HOTEL_SETTING\x10\'\x12\x42\n>CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP\x10(\x12\x11\n\rAPP_NOT_FOUND\x10)\x12\x39\n5SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE\x10*\x12\x33\n/MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS\x10+\x12#\n\x1fINSUFFICIENT_APP_INSTALLS_COUNT\x10,\x12\x1a\n\x16SENSITIVE_CATEGORY_APP\x10-B\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x43\x61mpaignErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNERRORENUM_CAMPAIGNERROR = _descriptor.EnumDescriptor( + name='CampaignError', + full_name='google.ads.googleads.v5.errors.CampaignErrorEnum.CampaignError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CONTENT_NETWORK', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_SEARCH_NETWORK', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_PARTNER_SEARCH_NETWORK', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_CAMPAIGN_NAME', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_CAMPAIGN_FIELD', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CAMPAIGN_NAME', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_SERVING_OPTIMIZATION_STATUS', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TRACKING_URL', index=15, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING', index=16, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_IMPRESSIONS_NOT_IN_RANGE', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TIME_UNIT_NOT_SUPPORTED', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED', index=19, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BUDGET_CANNOT_BE_SHARED', index=20, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_CANNOT_USE_SHARED_BUDGET', index=21, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS', index=22, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_LABEL_DOES_NOT_EXIST', index=23, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_LABEL_ALREADY_EXISTS', index=24, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_SHOPPING_SETTING', index=25, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SHOPPING_SALES_COUNTRY', index=26, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE', index=27, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ADVERTISING_CHANNEL_SUB_TYPE', index=28, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED', index=29, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_AD_ROTATION_MODE', index=30, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED', index=31, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_DATE_TO_PAST', index=32, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOTEL_CUSTOMER_LINK', index=33, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_HOTEL_CUSTOMER_LINK', index=34, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOTEL_SETTING', index=35, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP', index=36, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP_NOT_FOUND', index=37, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE', index=38, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS', index=39, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INSUFFICIENT_APP_INSTALLS_COUNT', index=40, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SENSITIVE_CATEGORY_APP', index=41, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=1834, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNERRORENUM_CAMPAIGNERROR) + + +_CAMPAIGNERRORENUM = _descriptor.Descriptor( + name='CampaignErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNERRORENUM_CAMPAIGNERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=1834, +) + +_CAMPAIGNERRORENUM_CAMPAIGNERROR.containing_type = _CAMPAIGNERRORENUM +DESCRIPTOR.message_types_by_name['CampaignErrorEnum'] = _CAMPAIGNERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_error_pb2' + , + '__doc__': """Container for enum describing possible campaign errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignErrorEnum) + }) +_sym_db.RegisterMessage(CampaignErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2.py new file mode 100644 index 000000000..1a50d580c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_experiment_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_experiment_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\034CampaignExperimentErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/errors/campaign_experiment_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x80\x04\n\x1b\x43\x61mpaignExperimentErrorEnum\"\xe0\x03\n\x17\x43\x61mpaignExperimentError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x02\x12\x16\n\x12INVALID_TRANSITION\x10\x03\x12/\n+CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET\x10\x04\x12\x36\n2CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN\x10\x05\x12\x33\n/CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT\x10\x06\x12%\n!CUSTOMER_CANNOT_CREATE_EXPERIMENT\x10\x07\x12%\n!CAMPAIGN_CANNOT_CREATE_EXPERIMENT\x10\x08\x12)\n%EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP\x10\t\x12\x38\n4EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION\x10\n\x12*\n&CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS\x10\x0b\x42\xf7\x01\n\"com.google.ads.googleads.v5.errorsB\x1c\x43\x61mpaignExperimentErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNEXPERIMENTERRORENUM_CAMPAIGNEXPERIMENTERROR = _descriptor.EnumDescriptor( + name='CampaignExperimentError', + full_name='google.ads.googleads.v5.errors.CampaignExperimentErrorEnum.CampaignExperimentError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TRANSITION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CANNOT_CREATE_EXPERIMENT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_CANNOT_CREATE_EXPERIMENT', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=167, + serialized_end=647, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNEXPERIMENTERRORENUM_CAMPAIGNEXPERIMENTERROR) + + +_CAMPAIGNEXPERIMENTERRORENUM = _descriptor.Descriptor( + name='CampaignExperimentErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignExperimentErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNEXPERIMENTERRORENUM_CAMPAIGNEXPERIMENTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=647, +) + +_CAMPAIGNEXPERIMENTERRORENUM_CAMPAIGNEXPERIMENTERROR.containing_type = _CAMPAIGNEXPERIMENTERRORENUM +DESCRIPTOR.message_types_by_name['CampaignExperimentErrorEnum'] = _CAMPAIGNEXPERIMENTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExperimentErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignExperimentErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_experiment_error_pb2' + , + '__doc__': """Container for enum describing possible campaign experiment errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignExperimentErrorEnum) + }) +_sym_db.RegisterMessage(CampaignExperimentErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_experiment_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2.py new file mode 100644 index 000000000..c14470cbd --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_feed_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_feed_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026CampaignFeedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/campaign_feed_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xec\x02\n\x15\x43\x61mpaignFeedErrorEnum\"\xd2\x02\n\x11\x43\x61mpaignFeedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x02\x12\"\n\x1e\x43\x41NNOT_CREATE_FOR_REMOVED_FEED\x10\x04\x12\x30\n,CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED\x10\x05\x12\'\n#CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED\x10\x06\x12\x1c\n\x18INVALID_PLACEHOLDER_TYPE\x10\x07\x12,\n(MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE\x10\x08\x12&\n\"NO_EXISTING_LOCATION_CUSTOMER_FEED\x10\tB\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x43\x61mpaignFeedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNFEEDERRORENUM_CAMPAIGNFEEDERROR = _descriptor.EnumDescriptor( + name='CampaignFeedError', + full_name='google.ads.googleads.v5.errors.CampaignFeedErrorEnum.CampaignFeedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_FOR_REMOVED_FEED', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_EXISTING_LOCATION_CUSTOMER_FEED', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=493, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNFEEDERRORENUM_CAMPAIGNFEEDERROR) + + +_CAMPAIGNFEEDERRORENUM = _descriptor.Descriptor( + name='CampaignFeedErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignFeedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNFEEDERRORENUM_CAMPAIGNFEEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=493, +) + +_CAMPAIGNFEEDERRORENUM_CAMPAIGNFEEDERROR.containing_type = _CAMPAIGNFEEDERRORENUM +DESCRIPTOR.message_types_by_name['CampaignFeedErrorEnum'] = _CAMPAIGNFEEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignFeedErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignFeedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNFEEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_feed_error_pb2' + , + '__doc__': """Container for enum describing possible campaign feed errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignFeedErrorEnum) + }) +_sym_db.RegisterMessage(CampaignFeedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_feed_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2.py b/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2.py new file mode 100644 index 000000000..41f4e6b83 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/campaign_shared_set_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/campaign_shared_set_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\033CampaignSharedSetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/errors/campaign_shared_set_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"r\n\x1a\x43\x61mpaignSharedSetErrorEnum\"T\n\x16\x43\x61mpaignSharedSetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18SHARED_SET_ACCESS_DENIED\x10\x02\x42\xf6\x01\n\"com.google.ads.googleads.v5.errorsB\x1b\x43\x61mpaignSharedSetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CAMPAIGNSHAREDSETERRORENUM_CAMPAIGNSHAREDSETERROR = _descriptor.EnumDescriptor( + name='CampaignSharedSetError', + full_name='google.ads.googleads.v5.errors.CampaignSharedSetErrorEnum.CampaignSharedSetError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHARED_SET_ACCESS_DENIED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=164, + serialized_end=248, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNSHAREDSETERRORENUM_CAMPAIGNSHAREDSETERROR) + + +_CAMPAIGNSHAREDSETERRORENUM = _descriptor.Descriptor( + name='CampaignSharedSetErrorEnum', + full_name='google.ads.googleads.v5.errors.CampaignSharedSetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNSHAREDSETERRORENUM_CAMPAIGNSHAREDSETERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=134, + serialized_end=248, +) + +_CAMPAIGNSHAREDSETERRORENUM_CAMPAIGNSHAREDSETERROR.containing_type = _CAMPAIGNSHAREDSETERRORENUM +DESCRIPTOR.message_types_by_name['CampaignSharedSetErrorEnum'] = _CAMPAIGNSHAREDSETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignSharedSetErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignSharedSetErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSHAREDSETERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.campaign_shared_set_error_pb2' + , + '__doc__': """Container for enum describing possible campaign shared set errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CampaignSharedSetErrorEnum) + }) +_sym_db.RegisterMessage(CampaignSharedSetErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/campaign_shared_set_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/change_status_error_pb2.py b/google/ads/google_ads/v5/proto/errors/change_status_error_pb2.py new file mode 100644 index 000000000..6e86eb061 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/change_status_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/change_status_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/change_status_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026ChangeStatusErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/change_status_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"b\n\x15\x43hangeStatusErrorEnum\"I\n\x11\x43hangeStatusError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12START_DATE_TOO_OLD\x10\x03\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x43hangeStatusErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CHANGESTATUSERRORENUM_CHANGESTATUSERROR = _descriptor.EnumDescriptor( + name='ChangeStatusError', + full_name='google.ads.googleads.v5.errors.ChangeStatusErrorEnum.ChangeStatusError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='START_DATE_TOO_OLD', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=226, +) +_sym_db.RegisterEnumDescriptor(_CHANGESTATUSERRORENUM_CHANGESTATUSERROR) + + +_CHANGESTATUSERRORENUM = _descriptor.Descriptor( + name='ChangeStatusErrorEnum', + full_name='google.ads.googleads.v5.errors.ChangeStatusErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CHANGESTATUSERRORENUM_CHANGESTATUSERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=226, +) + +_CHANGESTATUSERRORENUM_CHANGESTATUSERROR.containing_type = _CHANGESTATUSERRORENUM +DESCRIPTOR.message_types_by_name['ChangeStatusErrorEnum'] = _CHANGESTATUSERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ChangeStatusErrorEnum = _reflection.GeneratedProtocolMessageType('ChangeStatusErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CHANGESTATUSERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.change_status_error_pb2' + , + '__doc__': """Container for enum describing possible change status errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ChangeStatusErrorEnum) + }) +_sym_db.RegisterMessage(ChangeStatusErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/change_status_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/change_status_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/change_status_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2.py b/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2.py new file mode 100644 index 000000000..0bfa4779a --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/collection_size_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/collection_size_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030CollectionSizeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/errors/collection_size_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"i\n\x17\x43ollectionSizeErrorEnum\"N\n\x13\x43ollectionSizeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07TOO_FEW\x10\x02\x12\x0c\n\x08TOO_MANY\x10\x03\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18\x43ollectionSizeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR = _descriptor.EnumDescriptor( + name='CollectionSizeError', + full_name='google.ads.googleads.v5.errors.CollectionSizeErrorEnum.CollectionSizeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_FEW', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=235, +) +_sym_db.RegisterEnumDescriptor(_COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR) + + +_COLLECTIONSIZEERRORENUM = _descriptor.Descriptor( + name='CollectionSizeErrorEnum', + full_name='google.ads.googleads.v5.errors.CollectionSizeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=235, +) + +_COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR.containing_type = _COLLECTIONSIZEERRORENUM +DESCRIPTOR.message_types_by_name['CollectionSizeErrorEnum'] = _COLLECTIONSIZEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CollectionSizeErrorEnum = _reflection.GeneratedProtocolMessageType('CollectionSizeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _COLLECTIONSIZEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.collection_size_error_pb2' + , + '__doc__': """Container for enum describing possible collection size errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CollectionSizeErrorEnum) + }) +_sym_db.RegisterMessage(CollectionSizeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/collection_size_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/context_error_pb2.py b/google/ads/google_ads/v5/proto/errors/context_error_pb2.py new file mode 100644 index 000000000..b620203e8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/context_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/context_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/context_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\021ContextErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/errors/context_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x9c\x01\n\x10\x43ontextErrorEnum\"\x87\x01\n\x0c\x43ontextError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\'\n#OPERATION_NOT_PERMITTED_FOR_CONTEXT\x10\x02\x12\x30\n,OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE\x10\x03\x42\xec\x01\n\"com.google.ads.googleads.v5.errorsB\x11\x43ontextErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CONTEXTERRORENUM_CONTEXTERROR = _descriptor.EnumDescriptor( + name='ContextError', + full_name='google.ads.googleads.v5.errors.ContextErrorEnum.ContextError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_CONTEXT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=279, +) +_sym_db.RegisterEnumDescriptor(_CONTEXTERRORENUM_CONTEXTERROR) + + +_CONTEXTERRORENUM = _descriptor.Descriptor( + name='ContextErrorEnum', + full_name='google.ads.googleads.v5.errors.ContextErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONTEXTERRORENUM_CONTEXTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=279, +) + +_CONTEXTERRORENUM_CONTEXTERROR.containing_type = _CONTEXTERRORENUM +DESCRIPTOR.message_types_by_name['ContextErrorEnum'] = _CONTEXTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ContextErrorEnum = _reflection.GeneratedProtocolMessageType('ContextErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CONTEXTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.context_error_pb2' + , + '__doc__': """Container for enum describing possible context errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ContextErrorEnum) + }) +_sym_db.RegisterMessage(ContextErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/context_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/context_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/context_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2.py b/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2.py new file mode 100644 index 000000000..1b62a653c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/conversion_action_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/conversion_action_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\032ConversionActionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/errors/conversion_action_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xa5\x03\n\x19\x43onversionActionErrorEnum\"\x87\x03\n\x15\x43onversionActionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x02\x12\x14\n\x10\x44UPLICATE_APP_ID\x10\x03\x12\x37\n3TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD\x10\x04\x12\x31\n-BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION\x10\x05\x12)\n%DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED\x10\x06\x12\x1d\n\x19\x44\x41TA_DRIVEN_MODEL_EXPIRED\x10\x07\x12\x1b\n\x17\x44\x41TA_DRIVEN_MODEL_STALE\x10\x08\x12\x1d\n\x19\x44\x41TA_DRIVEN_MODEL_UNKNOWN\x10\t\x12\x1a\n\x16\x43REATION_NOT_SUPPORTED\x10\n\x12\x18\n\x14UPDATE_NOT_SUPPORTED\x10\x0b\x42\xf5\x01\n\"com.google.ads.googleads.v5.errorsB\x1a\x43onversionActionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CONVERSIONACTIONERRORENUM_CONVERSIONACTIONERROR = _descriptor.EnumDescriptor( + name='ConversionActionError', + full_name='google.ads.googleads.v5.errors.ConversionActionErrorEnum.ConversionActionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_APP_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_DRIVEN_MODEL_EXPIRED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_DRIVEN_MODEL_STALE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_DRIVEN_MODEL_UNKNOWN', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CREATION_NOT_SUPPORTED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_NOT_SUPPORTED', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=554, +) +_sym_db.RegisterEnumDescriptor(_CONVERSIONACTIONERRORENUM_CONVERSIONACTIONERROR) + + +_CONVERSIONACTIONERRORENUM = _descriptor.Descriptor( + name='ConversionActionErrorEnum', + full_name='google.ads.googleads.v5.errors.ConversionActionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONVERSIONACTIONERRORENUM_CONVERSIONACTIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=554, +) + +_CONVERSIONACTIONERRORENUM_CONVERSIONACTIONERROR.containing_type = _CONVERSIONACTIONERRORENUM +DESCRIPTOR.message_types_by_name['ConversionActionErrorEnum'] = _CONVERSIONACTIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ConversionActionErrorEnum = _reflection.GeneratedProtocolMessageType('ConversionActionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.conversion_action_error_pb2' + , + '__doc__': """Container for enum describing possible conversion action errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ConversionActionErrorEnum) + }) +_sym_db.RegisterMessage(ConversionActionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_action_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2.py b/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2.py new file mode 100644 index 000000000..007810de0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/conversion_adjustment_upload_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/conversion_adjustment_upload_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB$ConversionAdjustmentUploadErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nMgoogle/ads/googleads_v5/proto/errors/conversion_adjustment_upload_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xed\x03\n#ConversionAdjustmentUploadErrorEnum\"\xc5\x03\n\x1f\x43onversionAdjustmentUploadError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1cTOO_RECENT_CONVERSION_ACTION\x10\x02\x12\x1d\n\x19INVALID_CONVERSION_ACTION\x10\x03\x12 \n\x1c\x43ONVERSION_ALREADY_RETRACTED\x10\x04\x12\x18\n\x14\x43ONVERSION_NOT_FOUND\x10\x05\x12\x16\n\x12\x43ONVERSION_EXPIRED\x10\x06\x12\"\n\x1e\x41\x44JUSTMENT_PRECEDES_CONVERSION\x10\x07\x12!\n\x1dMORE_RECENT_RESTATEMENT_FOUND\x10\x08\x12\x19\n\x15TOO_RECENT_CONVERSION\x10\t\x12N\nJCANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE\x10\n\x12#\n\x1fTOO_MANY_ADJUSTMENTS_IN_REQUEST\x10\x0b\x12\x18\n\x14TOO_MANY_ADJUSTMENTS\x10\x0c\x42\xff\x01\n\"com.google.ads.googleads.v5.errorsB$ConversionAdjustmentUploadErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CONVERSIONADJUSTMENTUPLOADERRORENUM_CONVERSIONADJUSTMENTUPLOADERROR = _descriptor.EnumDescriptor( + name='ConversionAdjustmentUploadError', + full_name='google.ads.googleads.v5.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_RECENT_CONVERSION_ACTION', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONVERSION_ACTION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_ALREADY_RETRACTED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_NOT_FOUND', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_EXPIRED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADJUSTMENT_PRECEDES_CONVERSION', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MORE_RECENT_RESTATEMENT_FOUND', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_RECENT_CONVERSION', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_ADJUSTMENTS_IN_REQUEST', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_ADJUSTMENTS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=184, + serialized_end=637, +) +_sym_db.RegisterEnumDescriptor(_CONVERSIONADJUSTMENTUPLOADERRORENUM_CONVERSIONADJUSTMENTUPLOADERROR) + + +_CONVERSIONADJUSTMENTUPLOADERRORENUM = _descriptor.Descriptor( + name='ConversionAdjustmentUploadErrorEnum', + full_name='google.ads.googleads.v5.errors.ConversionAdjustmentUploadErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONVERSIONADJUSTMENTUPLOADERRORENUM_CONVERSIONADJUSTMENTUPLOADERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=144, + serialized_end=637, +) + +_CONVERSIONADJUSTMENTUPLOADERRORENUM_CONVERSIONADJUSTMENTUPLOADERROR.containing_type = _CONVERSIONADJUSTMENTUPLOADERRORENUM +DESCRIPTOR.message_types_by_name['ConversionAdjustmentUploadErrorEnum'] = _CONVERSIONADJUSTMENTUPLOADERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ConversionAdjustmentUploadErrorEnum = _reflection.GeneratedProtocolMessageType('ConversionAdjustmentUploadErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONADJUSTMENTUPLOADERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.conversion_adjustment_upload_error_pb2' + , + '__doc__': """Container for enum describing possible conversion adjustment upload + errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ConversionAdjustmentUploadErrorEnum) + }) +_sym_db.RegisterMessage(ConversionAdjustmentUploadErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_adjustment_upload_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2.py b/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2.py new file mode 100644 index 000000000..f794f94ce --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/conversion_upload_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/conversion_upload_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\032ConversionUploadErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/errors/conversion_upload_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd4\x06\n\x19\x43onversionUploadErrorEnum\"\xb6\x06\n\x15\x43onversionUploadError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12#\n\x1fTOO_MANY_CONVERSIONS_IN_REQUEST\x10\x02\x12\x15\n\x11UNPARSEABLE_GCLID\x10\x03\x12\x1d\n\x19\x43ONVERSION_PRECEDES_GCLID\x10\x04\x12\x11\n\rEXPIRED_GCLID\x10\x05\x12\x14\n\x10TOO_RECENT_GCLID\x10\x06\x12\x13\n\x0fGCLID_NOT_FOUND\x10\x07\x12\x19\n\x15UNAUTHORIZED_CUSTOMER\x10\x08\x12\x1d\n\x19INVALID_CONVERSION_ACTION\x10\t\x12 \n\x1cTOO_RECENT_CONVERSION_ACTION\x10\n\x12\x36\n2CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME\x10\x0b\x12Q\nMEXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION\x10\x0c\x12Q\nMEXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION\x10\r\x12\x46\nBORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION\x10\x0e\x12\x1b\n\x17ORDER_ID_ALREADY_IN_USE\x10\x0f\x12\x16\n\x12\x44UPLICATE_ORDER_ID\x10\x10\x12\x13\n\x0fTOO_RECENT_CALL\x10\x11\x12\x10\n\x0c\x45XPIRED_CALL\x10\x12\x12\x12\n\x0e\x43\x41LL_NOT_FOUND\x10\x13\x12\x1c\n\x18\x43ONVERSION_PRECEDES_CALL\x10\x14\x12\x30\n,CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME\x10\x15\x12$\n UNPARSEABLE_CALLERS_PHONE_NUMBER\x10\x16\x42\xf5\x01\n\"com.google.ads.googleads.v5.errorsB\x1a\x43onversionUploadErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CONVERSIONUPLOADERRORENUM_CONVERSIONUPLOADERROR = _descriptor.EnumDescriptor( + name='ConversionUploadError', + full_name='google.ads.googleads.v5.errors.ConversionUploadErrorEnum.ConversionUploadError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_CONVERSIONS_IN_REQUEST', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNPARSEABLE_GCLID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_PRECEDES_GCLID', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPIRED_GCLID', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_RECENT_GCLID', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GCLID_NOT_FOUND', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNAUTHORIZED_CUSTOMER', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONVERSION_ACTION', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_RECENT_CONVERSION_ACTION', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORDER_ID_ALREADY_IN_USE', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ORDER_ID', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_RECENT_CALL', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPIRED_CALL', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALL_NOT_FOUND', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_PRECEDES_CALL', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNPARSEABLE_CALLERS_PHONE_NUMBER', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=985, +) +_sym_db.RegisterEnumDescriptor(_CONVERSIONUPLOADERRORENUM_CONVERSIONUPLOADERROR) + + +_CONVERSIONUPLOADERRORENUM = _descriptor.Descriptor( + name='ConversionUploadErrorEnum', + full_name='google.ads.googleads.v5.errors.ConversionUploadErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONVERSIONUPLOADERRORENUM_CONVERSIONUPLOADERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=985, +) + +_CONVERSIONUPLOADERRORENUM_CONVERSIONUPLOADERROR.containing_type = _CONVERSIONUPLOADERRORENUM +DESCRIPTOR.message_types_by_name['ConversionUploadErrorEnum'] = _CONVERSIONUPLOADERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ConversionUploadErrorEnum = _reflection.GeneratedProtocolMessageType('ConversionUploadErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONUPLOADERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.conversion_upload_error_pb2' + , + '__doc__': """Container for enum describing possible conversion upload errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ConversionUploadErrorEnum) + }) +_sym_db.RegisterMessage(ConversionUploadErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/conversion_upload_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/country_code_error_pb2.py b/google/ads/google_ads/v5/proto/errors/country_code_error_pb2.py new file mode 100644 index 000000000..b8f1b1409 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/country_code_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/country_code_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/country_code_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025CountryCodeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/country_code_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"b\n\x14\x43ountryCodeErrorEnum\"J\n\x10\x43ountryCodeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\x02\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15\x43ountryCodeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_COUNTRYCODEERRORENUM_COUNTRYCODEERROR = _descriptor.EnumDescriptor( + name='CountryCodeError', + full_name='google.ads.googleads.v5.errors.CountryCodeErrorEnum.CountryCodeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=151, + serialized_end=225, +) +_sym_db.RegisterEnumDescriptor(_COUNTRYCODEERRORENUM_COUNTRYCODEERROR) + + +_COUNTRYCODEERRORENUM = _descriptor.Descriptor( + name='CountryCodeErrorEnum', + full_name='google.ads.googleads.v5.errors.CountryCodeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _COUNTRYCODEERRORENUM_COUNTRYCODEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=225, +) + +_COUNTRYCODEERRORENUM_COUNTRYCODEERROR.containing_type = _COUNTRYCODEERRORENUM +DESCRIPTOR.message_types_by_name['CountryCodeErrorEnum'] = _COUNTRYCODEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CountryCodeErrorEnum = _reflection.GeneratedProtocolMessageType('CountryCodeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _COUNTRYCODEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.country_code_error_pb2' + , + '__doc__': """Container for enum describing country code errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CountryCodeErrorEnum) + }) +_sym_db.RegisterMessage(CountryCodeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/country_code_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/country_code_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/country_code_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/criterion_error_pb2.py b/google/ads/google_ads/v5/proto/errors/criterion_error_pb2.py new file mode 100644 index 000000000..b24e2904d --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/criterion_error_pb2.py @@ -0,0 +1,650 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/criterion_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/criterion_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023CriterionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/criterion_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x92\"\n\x12\x43riterionErrorEnum\"\xfb!\n\x0e\x43riterionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16\x43ONCRETE_TYPE_REQUIRED\x10\x02\x12\x1d\n\x19INVALID_EXCLUDED_CATEGORY\x10\x03\x12\x18\n\x14INVALID_KEYWORD_TEXT\x10\x04\x12\x19\n\x15KEYWORD_TEXT_TOO_LONG\x10\x05\x12\x1e\n\x1aKEYWORD_HAS_TOO_MANY_WORDS\x10\x06\x12\x1d\n\x19KEYWORD_HAS_INVALID_CHARS\x10\x07\x12\x19\n\x15INVALID_PLACEMENT_URL\x10\x08\x12\x15\n\x11INVALID_USER_LIST\x10\t\x12\x19\n\x15INVALID_USER_INTEREST\x10\n\x12$\n INVALID_FORMAT_FOR_PLACEMENT_URL\x10\x0b\x12\x1d\n\x19PLACEMENT_URL_IS_TOO_LONG\x10\x0c\x12\"\n\x1ePLACEMENT_URL_HAS_ILLEGAL_CHAR\x10\r\x12,\n(PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE\x10\x0e\x12\x39\n5PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION\x10\x0f\x12\x16\n\x12INVALID_TOPIC_PATH\x10\x10\x12\x1e\n\x1aINVALID_YOUTUBE_CHANNEL_ID\x10\x11\x12\x1c\n\x18INVALID_YOUTUBE_VIDEO_ID\x10\x12\x12\'\n#YOUTUBE_VERTICAL_CHANNEL_DEPRECATED\x10\x13\x12*\n&YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED\x10\x14\x12\x1b\n\x17YOUTUBE_URL_UNSUPPORTED\x10\x15\x12 \n\x1c\x43\x41NNOT_EXCLUDE_CRITERIA_TYPE\x10\x16\x12\x1c\n\x18\x43\x41NNOT_ADD_CRITERIA_TYPE\x10\x17\x12$\n CANNOT_EXCLUDE_SIMILAR_USER_LIST\x10\x1a\x12\x1f\n\x1b\x43\x41NNOT_ADD_CLOSED_USER_LIST\x10\x1b\x12:\n6CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS\x10\x1c\x12\x35\n1CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS\x10\x1d\x12\x37\n3CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS\x10\x1e\x12\x31\n-CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS\x10\x1f\x12\x39\n5CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS\x10 \x12\x37\n3CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE\x10!\x12\x1b\n\x17INVALID_CUSTOM_AFFINITY\x10`\x12\x19\n\x15INVALID_CUSTOM_INTENT\x10\x61\x12\x16\n\x12INVALID_IP_ADDRESS\x10\"\x12\x15\n\x11INVALID_IP_FORMAT\x10#\x12\x16\n\x12INVALID_MOBILE_APP\x10$\x12\x1f\n\x1bINVALID_MOBILE_APP_CATEGORY\x10%\x12\x18\n\x14INVALID_CRITERION_ID\x10&\x12\x1b\n\x17\x43\x41NNOT_TARGET_CRITERION\x10\'\x12$\n CANNOT_TARGET_OBSOLETE_CRITERION\x10(\x12\"\n\x1e\x43RITERION_ID_AND_TYPE_MISMATCH\x10)\x12\x1c\n\x18INVALID_PROXIMITY_RADIUS\x10*\x12\"\n\x1eINVALID_PROXIMITY_RADIUS_UNITS\x10+\x12 \n\x1cINVALID_STREETADDRESS_LENGTH\x10,\x12\x1b\n\x17INVALID_CITYNAME_LENGTH\x10-\x12\x1d\n\x19INVALID_REGIONCODE_LENGTH\x10.\x12\x1d\n\x19INVALID_REGIONNAME_LENGTH\x10/\x12\x1d\n\x19INVALID_POSTALCODE_LENGTH\x10\x30\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\x31\x12\x14\n\x10INVALID_LATITUDE\x10\x32\x12\x15\n\x11INVALID_LONGITUDE\x10\x33\x12\x36\n2PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL\x10\x34\x12\x1d\n\x19INVALID_PROXIMITY_ADDRESS\x10\x35\x12\x1c\n\x18INVALID_USER_DOMAIN_NAME\x10\x36\x12 \n\x1c\x43RITERION_PARAMETER_TOO_LONG\x10\x37\x12&\n\"AD_SCHEDULE_TIME_INTERVALS_OVERLAP\x10\x38\x12\x32\n.AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS\x10\x39\x12%\n!AD_SCHEDULE_INVALID_TIME_INTERVAL\x10:\x12\x30\n,AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT\x10;\x12/\n+AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS\x10<\x12$\n CANNOT_BID_MODIFY_CRITERION_TYPE\x10=\x12\x32\n.CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT\x10>\x12(\n$CANNOT_BID_MODIFY_NEGATIVE_CRITERION\x10?\x12\x1f\n\x1b\x42ID_MODIFIER_ALREADY_EXISTS\x10@\x12\x17\n\x13\x46\x45\x45\x44_ID_NOT_ALLOWED\x10\x41\x12(\n$ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE\x10\x42\x12.\n*CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY\x10\x43\x12\x1c\n\x18\x43\x41NNOT_EXCLUDE_CRITERION\x10\x44\x12\x1b\n\x17\x43\x41NNOT_REMOVE_CRITERION\x10\x45\x12$\n INVALID_PRODUCT_BIDDING_CATEGORY\x10L\x12\x1c\n\x18MISSING_SHOPPING_SETTING\x10M\x12\x1d\n\x19INVALID_MATCHING_FUNCTION\x10N\x12\x1f\n\x1bLOCATION_FILTER_NOT_ALLOWED\x10O\x12$\n INVALID_FEED_FOR_LOCATION_FILTER\x10\x62\x12\x1b\n\x17LOCATION_FILTER_INVALID\x10P\x12\x32\n.CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP\x10Q\x12\x39\n5HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION\x10R\x12\x41\n=HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION\x10S\x12.\n*FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING\x10T\x12\x1d\n\x19INVALID_WEBPAGE_CONDITION\x10U\x12!\n\x1dINVALID_WEBPAGE_CONDITION_URL\x10V\x12)\n%WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY\x10W\x12.\n*WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL\x10X\x12.\n*WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS\x10Y\x12\x45\nAWEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING\x10Z\x12\x31\n-WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX\x10[\x12/\n+WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX\x10\\\x12\x39\n5WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED\x10]\x12<\n8WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION\x10^\x12\x37\n3WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP\x10_\x12\x37\n3CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS\x10\x63\x12*\n&LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES\x10\x64\x12\'\n#LISTING_SCOPE_TOO_MANY_IN_OPERATORS\x10\x65\x12+\n\'LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED\x10\x66\x12$\n DUPLICATE_LISTING_DIMENSION_TYPE\x10g\x12%\n!DUPLICATE_LISTING_DIMENSION_VALUE\x10h\x12\x30\n,CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION\x10i\x12#\n\x1fINVALID_LISTING_GROUP_HIERARCHY\x10j\x12+\n\'LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN\x10k\x12\x32\n.LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE\x10l\x12:\n6LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS\x10m\x12 \n\x1cLISTING_GROUP_ALREADY_EXISTS\x10n\x12 \n\x1cLISTING_GROUP_DOES_NOT_EXIST\x10o\x12#\n\x1fLISTING_GROUP_CANNOT_BE_REMOVED\x10p\x12\x1e\n\x1aINVALID_LISTING_GROUP_TYPE\x10q\x12*\n&LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID\x10r\x12\x1a\n\x16LISTING_SCOPE_TOO_LONG\x10s\x12%\n!LISTING_SCOPE_TOO_MANY_DIMENSIONS\x10t\x12\x1a\n\x16LISTING_GROUP_TOO_LONG\x10u\x12\x1f\n\x1bLISTING_GROUP_TREE_TOO_DEEP\x10v\x12\x1d\n\x19INVALID_LISTING_DIMENSION\x10w\x12\"\n\x1eINVALID_LISTING_DIMENSION_TYPE\x10xB\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13\x43riterionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CRITERIONERRORENUM_CRITERIONERROR = _descriptor.EnumDescriptor( + name='CriterionError', + full_name='google.ads.googleads.v5.errors.CriterionErrorEnum.CriterionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONCRETE_TYPE_REQUIRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_EXCLUDED_CATEGORY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_KEYWORD_TEXT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_TEXT_TOO_LONG', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_TOO_MANY_WORDS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_INVALID_CHARS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEMENT_URL', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_LIST', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_INTEREST', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT_FOR_PLACEMENT_URL', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_IS_TOO_LONG', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_HAS_ILLEGAL_CHAR', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TOPIC_PATH', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_CHANNEL_ID', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_VIDEO_ID', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_VERTICAL_CHANNEL_DEPRECATED', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_URL_UNSUPPORTED', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERIA_TYPE', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_CRITERIA_TYPE', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_SIMILAR_USER_LIST', index=24, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_CLOSED_USER_LIST', index=25, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS', index=26, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS', index=27, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS', index=28, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS', index=29, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS', index=30, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE', index=31, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CUSTOM_AFFINITY', index=32, number=96, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CUSTOM_INTENT', index=33, number=97, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_IP_ADDRESS', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_IP_FORMAT', index=35, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_APP', index=36, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_APP_CATEGORY', index=37, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CRITERION_ID', index=38, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CRITERION', index=39, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_OBSOLETE_CRITERION', index=40, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRITERION_ID_AND_TYPE_MISMATCH', index=41, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_RADIUS', index=42, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_RADIUS_UNITS', index=43, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STREETADDRESS_LENGTH', index=44, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CITYNAME_LENGTH', index=45, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_REGIONCODE_LENGTH', index=46, number=46, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_REGIONNAME_LENGTH', index=47, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_POSTALCODE_LENGTH', index=48, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=49, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LATITUDE', index=50, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LONGITUDE', index=51, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL', index=52, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_ADDRESS', index=53, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_DOMAIN_NAME', index=54, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRITERION_PARAMETER_TOO_LONG', index=55, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_TIME_INTERVALS_OVERLAP', index=56, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS', index=57, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_INVALID_TIME_INTERVAL', index=58, number=58, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT', index=59, number=59, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS', index=60, number=60, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_CRITERION_TYPE', index=61, number=61, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT', index=62, number=62, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_NEGATIVE_CRITERION', index=63, number=63, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_MODIFIER_ALREADY_EXISTS', index=64, number=64, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ID_NOT_ALLOWED', index=65, number=65, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE', index=66, number=66, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY', index=67, number=67, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERION', index=68, number=68, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_CRITERION', index=69, number=69, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PRODUCT_BIDDING_CATEGORY', index=70, number=76, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_SHOPPING_SETTING', index=71, number=77, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MATCHING_FUNCTION', index=72, number=78, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FILTER_NOT_ALLOWED', index=73, number=79, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_FOR_LOCATION_FILTER', index=74, number=98, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_FILTER_INVALID', index=75, number=80, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP', index=76, number=81, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION', index=77, number=82, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION', index=78, number=83, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING', index=79, number=84, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_WEBPAGE_CONDITION', index=80, number=85, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_WEBPAGE_CONDITION_URL', index=81, number=86, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY', index=82, number=87, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL', index=83, number=88, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS', index=84, number=89, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING', index=85, number=90, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX', index=86, number=91, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX', index=87, number=92, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED', index=88, number=93, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION', index=89, number=94, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP', index=90, number=95, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS', index=91, number=99, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES', index=92, number=100, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_SCOPE_TOO_MANY_IN_OPERATORS', index=93, number=101, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED', index=94, number=102, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_LISTING_DIMENSION_TYPE', index=95, number=103, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_LISTING_DIMENSION_VALUE', index=96, number=104, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION', index=97, number=105, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LISTING_GROUP_HIERARCHY', index=98, number=106, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN', index=99, number=107, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE', index=100, number=108, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS', index=101, number=109, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_ALREADY_EXISTS', index=102, number=110, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_DOES_NOT_EXIST', index=103, number=111, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_CANNOT_BE_REMOVED', index=104, number=112, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LISTING_GROUP_TYPE', index=105, number=113, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID', index=106, number=114, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_SCOPE_TOO_LONG', index=107, number=115, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_SCOPE_TOO_MANY_DIMENSIONS', index=108, number=116, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_TOO_LONG', index=109, number=117, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LISTING_GROUP_TREE_TOO_DEEP', index=110, number=118, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LISTING_DIMENSION', index=111, number=119, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LISTING_DIMENSION_TYPE', index=112, number=120, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=148, + serialized_end=4495, +) +_sym_db.RegisterEnumDescriptor(_CRITERIONERRORENUM_CRITERIONERROR) + + +_CRITERIONERRORENUM = _descriptor.Descriptor( + name='CriterionErrorEnum', + full_name='google.ads.googleads.v5.errors.CriterionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CRITERIONERRORENUM_CRITERIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=4495, +) + +_CRITERIONERRORENUM_CRITERIONERROR.containing_type = _CRITERIONERRORENUM +DESCRIPTOR.message_types_by_name['CriterionErrorEnum'] = _CRITERIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CriterionErrorEnum = _reflection.GeneratedProtocolMessageType('CriterionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CRITERIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.criterion_error_pb2' + , + '__doc__': """Container for enum describing possible criterion errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CriterionErrorEnum) + }) +_sym_db.RegisterMessage(CriterionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/criterion_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/criterion_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/criterion_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2.py b/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2.py new file mode 100644 index 000000000..801ee4774 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/currency_code_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/currency_code_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026CurrencyCodeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/currency_code_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"[\n\x15\x43urrencyCodeErrorEnum\"B\n\x11\x43urrencyCodeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bUNSUPPORTED\x10\x02\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x43urrencyCodeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CURRENCYCODEERRORENUM_CURRENCYCODEERROR = _descriptor.EnumDescriptor( + name='CurrencyCodeError', + full_name='google.ads.googleads.v5.errors.CurrencyCodeErrorEnum.CurrencyCodeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=219, +) +_sym_db.RegisterEnumDescriptor(_CURRENCYCODEERRORENUM_CURRENCYCODEERROR) + + +_CURRENCYCODEERRORENUM = _descriptor.Descriptor( + name='CurrencyCodeErrorEnum', + full_name='google.ads.googleads.v5.errors.CurrencyCodeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CURRENCYCODEERRORENUM_CURRENCYCODEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=219, +) + +_CURRENCYCODEERRORENUM_CURRENCYCODEERROR.containing_type = _CURRENCYCODEERRORENUM +DESCRIPTOR.message_types_by_name['CurrencyCodeErrorEnum'] = _CURRENCYCODEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CurrencyCodeErrorEnum = _reflection.GeneratedProtocolMessageType('CurrencyCodeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CURRENCYCODEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.currency_code_error_pb2' + , + '__doc__': """Container for enum describing possible currency code errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CurrencyCodeErrorEnum) + }) +_sym_db.RegisterMessage(CurrencyCodeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/currency_code_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2.py b/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2.py new file mode 100644 index 000000000..9ef0ccb05 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/custom_interest_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/custom_interest_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030CustomInterestErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/errors/custom_interest_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd9\x02\n\x17\x43ustomInterestErrorEnum\"\xbd\x02\n\x13\x43ustomInterestError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11NAME_ALREADY_USED\x10\x02\x12\x46\nBCUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE\x10\x03\x12 \n\x1cTYPE_AND_PARAMETER_NOT_FOUND\x10\x04\x12&\n\"TYPE_AND_PARAMETER_ALREADY_EXISTED\x10\x05\x12\'\n#INVALID_CUSTOM_INTEREST_MEMBER_TYPE\x10\x06\x12\x1e\n\x1a\x43\x41NNOT_REMOVE_WHILE_IN_USE\x10\x07\x12\x16\n\x12\x43\x41NNOT_CHANGE_TYPE\x10\x08\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18\x43ustomInterestErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMINTERESTERRORENUM_CUSTOMINTERESTERROR = _descriptor.EnumDescriptor( + name='CustomInterestError', + full_name='google.ads.googleads.v5.errors.CustomInterestErrorEnum.CustomInterestError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAME_ALREADY_USED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TYPE_AND_PARAMETER_NOT_FOUND', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TYPE_AND_PARAMETER_ALREADY_EXISTED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CUSTOM_INTEREST_MEMBER_TYPE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_WHILE_IN_USE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_TYPE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=476, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMINTERESTERRORENUM_CUSTOMINTERESTERROR) + + +_CUSTOMINTERESTERRORENUM = _descriptor.Descriptor( + name='CustomInterestErrorEnum', + full_name='google.ads.googleads.v5.errors.CustomInterestErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMINTERESTERRORENUM_CUSTOMINTERESTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=476, +) + +_CUSTOMINTERESTERRORENUM_CUSTOMINTERESTERROR.containing_type = _CUSTOMINTERESTERRORENUM +DESCRIPTOR.message_types_by_name['CustomInterestErrorEnum'] = _CUSTOMINTERESTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomInterestErrorEnum = _reflection.GeneratedProtocolMessageType('CustomInterestErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTERESTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.custom_interest_error_pb2' + , + '__doc__': """Container for enum describing possible custom interest errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CustomInterestErrorEnum) + }) +_sym_db.RegisterMessage(CustomInterestErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/custom_interest_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2.py b/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2.py new file mode 100644 index 000000000..120224fe6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/customer_client_link_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/customer_client_link_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\034CustomerClientLinkErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/errors/customer_client_link_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x8f\x03\n\x1b\x43ustomerClientLinkErrorEnum\"\xef\x02\n\x17\x43ustomerClientLinkError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12*\n&CLIENT_ALREADY_INVITED_BY_THIS_MANAGER\x10\x02\x12\'\n#CLIENT_ALREADY_MANAGED_IN_HIERARCHY\x10\x03\x12\x1b\n\x17\x43YCLIC_LINK_NOT_ALLOWED\x10\x04\x12\"\n\x1e\x43USTOMER_HAS_TOO_MANY_ACCOUNTS\x10\x05\x12#\n\x1f\x43LIENT_HAS_TOO_MANY_INVITATIONS\x10\x06\x12*\n&CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS\x10\x07\x12-\n)CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER\x10\x08\x12 \n\x1c\x43LIENT_HAS_TOO_MANY_MANAGERS\x10\tB\xf7\x01\n\"com.google.ads.googleads.v5.errorsB\x1c\x43ustomerClientLinkErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERCLIENTLINKERRORENUM_CUSTOMERCLIENTLINKERROR = _descriptor.EnumDescriptor( + name='CustomerClientLinkError', + full_name='google.ads.googleads.v5.errors.CustomerClientLinkErrorEnum.CustomerClientLinkError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_ALREADY_INVITED_BY_THIS_MANAGER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_ALREADY_MANAGED_IN_HIERARCHY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CYCLIC_LINK_NOT_ALLOWED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_HAS_TOO_MANY_ACCOUNTS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_HAS_TOO_MANY_INVITATIONS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_HAS_TOO_MANY_MANAGERS', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=168, + serialized_end=535, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERCLIENTLINKERRORENUM_CUSTOMERCLIENTLINKERROR) + + +_CUSTOMERCLIENTLINKERRORENUM = _descriptor.Descriptor( + name='CustomerClientLinkErrorEnum', + full_name='google.ads.googleads.v5.errors.CustomerClientLinkErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERCLIENTLINKERRORENUM_CUSTOMERCLIENTLINKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=136, + serialized_end=535, +) + +_CUSTOMERCLIENTLINKERRORENUM_CUSTOMERCLIENTLINKERROR.containing_type = _CUSTOMERCLIENTLINKERRORENUM +DESCRIPTOR.message_types_by_name['CustomerClientLinkErrorEnum'] = _CUSTOMERCLIENTLINKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerClientLinkErrorEnum = _reflection.GeneratedProtocolMessageType('CustomerClientLinkErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERCLIENTLINKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.customer_client_link_error_pb2' + , + '__doc__': """Container for enum describing possible CustomeClientLink errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CustomerClientLinkErrorEnum) + }) +_sym_db.RegisterMessage(CustomerClientLinkErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_client_link_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/customer_error_pb2.py b/google/ads/google_ads/v5/proto/errors/customer_error_pb2.py new file mode 100644 index 000000000..b2e052508 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/customer_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/customer_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022CustomerErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/customer_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"x\n\x11\x43ustomerErrorEnum\"c\n\rCustomerError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18STATUS_CHANGE_DISALLOWED\x10\x02\x12\x16\n\x12\x41\x43\x43OUNT_NOT_SET_UP\x10\x03\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x43ustomerErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERERRORENUM_CUSTOMERERROR = _descriptor.EnumDescriptor( + name='CustomerError', + full_name='google.ads.googleads.v5.errors.CustomerErrorEnum.CustomerError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STATUS_CHANGE_DISALLOWED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCOUNT_NOT_SET_UP', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=243, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERERRORENUM_CUSTOMERERROR) + + +_CUSTOMERERRORENUM = _descriptor.Descriptor( + name='CustomerErrorEnum', + full_name='google.ads.googleads.v5.errors.CustomerErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERERRORENUM_CUSTOMERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=243, +) + +_CUSTOMERERRORENUM_CUSTOMERERROR.containing_type = _CUSTOMERERRORENUM +DESCRIPTOR.message_types_by_name['CustomerErrorEnum'] = _CUSTOMERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerErrorEnum = _reflection.GeneratedProtocolMessageType('CustomerErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.customer_error_pb2' + , + '__doc__': """Container for enum describing possible customer errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CustomerErrorEnum) + }) +_sym_db.RegisterMessage(CustomerErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/customer_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/customer_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2.py b/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2.py new file mode 100644 index 000000000..faf1cdf02 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/customer_feed_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/customer_feed_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026CustomerFeedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/customer_feed_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xf7\x02\n\x15\x43ustomerFeedErrorEnum\"\xdd\x02\n\x11\x43ustomerFeedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x02\x12\"\n\x1e\x43\x41NNOT_CREATE_FOR_REMOVED_FEED\x10\x03\x12\x30\n,CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED\x10\x04\x12\'\n#CANNOT_MODIFY_REMOVED_CUSTOMER_FEED\x10\x05\x12\x1c\n\x18INVALID_PLACEHOLDER_TYPE\x10\x06\x12,\n(MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE\x10\x07\x12\x31\n-PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED\x10\x08\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16\x43ustomerFeedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERFEEDERRORENUM_CUSTOMERFEEDERROR = _descriptor.EnumDescriptor( + name='CustomerFeedError', + full_name='google.ads.googleads.v5.errors.CustomerFeedErrorEnum.CustomerFeedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_FOR_REMOVED_FEED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_REMOVED_CUSTOMER_FEED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=504, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERFEEDERRORENUM_CUSTOMERFEEDERROR) + + +_CUSTOMERFEEDERRORENUM = _descriptor.Descriptor( + name='CustomerFeedErrorEnum', + full_name='google.ads.googleads.v5.errors.CustomerFeedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERFEEDERRORENUM_CUSTOMERFEEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=504, +) + +_CUSTOMERFEEDERRORENUM_CUSTOMERFEEDERROR.containing_type = _CUSTOMERFEEDERRORENUM +DESCRIPTOR.message_types_by_name['CustomerFeedErrorEnum'] = _CUSTOMERFEEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerFeedErrorEnum = _reflection.GeneratedProtocolMessageType('CustomerFeedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERFEEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.customer_feed_error_pb2' + , + '__doc__': """Container for enum describing possible customer feed errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CustomerFeedErrorEnum) + }) +_sym_db.RegisterMessage(CustomerFeedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_feed_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2.py b/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2.py new file mode 100644 index 000000000..9d2a6327e --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/customer_manager_link_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/customer_manager_link_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\035CustomerManagerLinkErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/errors/customer_manager_link_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd0\x03\n\x1c\x43ustomerManagerLinkErrorEnum\"\xaf\x03\n\x18\x43ustomerManagerLinkError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11NO_PENDING_INVITE\x10\x02\x12\'\n#SAME_CLIENT_MORE_THAN_ONCE_PER_CALL\x10\x03\x12-\n)MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS\x10\x04\x12-\n)CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER\x10\x05\x12+\n\'CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER\x10\x06\x12+\n\'CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER\x10\x07\x12\x32\n.CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT\x10\x08\x12\x19\n\x15\x44UPLICATE_CHILD_FOUND\x10\t\x12.\n*TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS\x10\nB\xf8\x01\n\"com.google.ads.googleads.v5.errorsB\x1d\x43ustomerManagerLinkErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_CUSTOMERMANAGERLINKERRORENUM_CUSTOMERMANAGERLINKERROR = _descriptor.EnumDescriptor( + name='CustomerManagerLinkError', + full_name='google.ads.googleads.v5.errors.CustomerManagerLinkErrorEnum.CustomerManagerLinkError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_PENDING_INVITE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SAME_CLIENT_MORE_THAN_ONCE_PER_CALL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_CHILD_FOUND', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=170, + serialized_end=601, +) +_sym_db.RegisterEnumDescriptor(_CUSTOMERMANAGERLINKERRORENUM_CUSTOMERMANAGERLINKERROR) + + +_CUSTOMERMANAGERLINKERRORENUM = _descriptor.Descriptor( + name='CustomerManagerLinkErrorEnum', + full_name='google.ads.googleads.v5.errors.CustomerManagerLinkErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CUSTOMERMANAGERLINKERRORENUM_CUSTOMERMANAGERLINKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=601, +) + +_CUSTOMERMANAGERLINKERRORENUM_CUSTOMERMANAGERLINKERROR.containing_type = _CUSTOMERMANAGERLINKERRORENUM +DESCRIPTOR.message_types_by_name['CustomerManagerLinkErrorEnum'] = _CUSTOMERMANAGERLINKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerManagerLinkErrorEnum = _reflection.GeneratedProtocolMessageType('CustomerManagerLinkErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERMANAGERLINKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.customer_manager_link_error_pb2' + , + '__doc__': """Container for enum describing possible CustomerManagerLink errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.CustomerManagerLinkErrorEnum) + }) +_sym_db.RegisterMessage(CustomerManagerLinkErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/customer_manager_link_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/database_error_pb2.py b/google/ads/google_ads/v5/proto/errors/database_error_pb2.py new file mode 100644 index 000000000..273510a5f --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/database_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/database_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/database_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022DatabaseErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/database_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x96\x01\n\x11\x44\x61tabaseErrorEnum\"\x80\x01\n\rDatabaseError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17\x43ONCURRENT_MODIFICATION\x10\x02\x12\x1d\n\x19\x44\x41TA_CONSTRAINT_VIOLATION\x10\x03\x12\x15\n\x11REQUEST_TOO_LARGE\x10\x04\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x44\x61tabaseErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DATABASEERRORENUM_DATABASEERROR = _descriptor.EnumDescriptor( + name='DatabaseError', + full_name='google.ads.googleads.v5.errors.DatabaseErrorEnum.DatabaseError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONCURRENT_MODIFICATION', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_CONSTRAINT_VIOLATION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUEST_TOO_LARGE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=274, +) +_sym_db.RegisterEnumDescriptor(_DATABASEERRORENUM_DATABASEERROR) + + +_DATABASEERRORENUM = _descriptor.Descriptor( + name='DatabaseErrorEnum', + full_name='google.ads.googleads.v5.errors.DatabaseErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATABASEERRORENUM_DATABASEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=274, +) + +_DATABASEERRORENUM_DATABASEERROR.containing_type = _DATABASEERRORENUM +DESCRIPTOR.message_types_by_name['DatabaseErrorEnum'] = _DATABASEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DatabaseErrorEnum = _reflection.GeneratedProtocolMessageType('DatabaseErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _DATABASEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.database_error_pb2' + , + '__doc__': """Container for enum describing possible database errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.DatabaseErrorEnum) + }) +_sym_db.RegisterMessage(DatabaseErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/database_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/database_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/database_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/date_error_pb2.py b/google/ads/google_ads/v5/proto/errors/date_error_pb2.py new file mode 100644 index 000000000..828a821d1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/date_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/date_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/date_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\016DateErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/errors/date_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xbf\x03\n\rDateErrorEnum\"\xad\x03\n\tDateError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1cINVALID_FIELD_VALUES_IN_DATE\x10\x02\x12%\n!INVALID_FIELD_VALUES_IN_DATE_TIME\x10\x03\x12\x17\n\x13INVALID_STRING_DATE\x10\x04\x12#\n\x1fINVALID_STRING_DATE_TIME_MICROS\x10\x06\x12$\n INVALID_STRING_DATE_TIME_SECONDS\x10\x0b\x12\x30\n,INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET\x10\x0c\x12\x1d\n\x19\x45\x41RLIER_THAN_MINIMUM_DATE\x10\x07\x12\x1b\n\x17LATER_THAN_MAXIMUM_DATE\x10\x08\x12\x33\n/DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE\x10\t\x12\x32\n.DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL\x10\nB\xe9\x01\n\"com.google.ads.googleads.v5.errorsB\x0e\x44\x61teErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DATEERRORENUM_DATEERROR = _descriptor.EnumDescriptor( + name='DateError', + full_name='google.ads.googleads.v5.errors.DateErrorEnum.DateError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_VALUES_IN_DATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_VALUES_IN_DATE_TIME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE_TIME_MICROS', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE_TIME_SECONDS', index=6, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET', index=7, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EARLIER_THAN_MINIMUM_DATE', index=8, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LATER_THAN_MAXIMUM_DATE', index=9, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE', index=10, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL', index=11, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=138, + serialized_end=567, +) +_sym_db.RegisterEnumDescriptor(_DATEERRORENUM_DATEERROR) + + +_DATEERRORENUM = _descriptor.Descriptor( + name='DateErrorEnum', + full_name='google.ads.googleads.v5.errors.DateErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATEERRORENUM_DATEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=567, +) + +_DATEERRORENUM_DATEERROR.containing_type = _DATEERRORENUM +DESCRIPTOR.message_types_by_name['DateErrorEnum'] = _DATEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DateErrorEnum = _reflection.GeneratedProtocolMessageType('DateErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _DATEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.date_error_pb2' + , + '__doc__': """Container for enum describing possible date errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.DateErrorEnum) + }) +_sym_db.RegisterMessage(DateErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/date_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/date_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/date_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/date_range_error_pb2.py b/google/ads/google_ads/v5/proto/errors/date_range_error_pb2.py new file mode 100644 index 000000000..27aa46256 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/date_range_error_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/date_range_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/date_range_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023DateRangeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/date_range_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xe6\x01\n\x12\x44\x61teRangeErrorEnum\"\xcf\x01\n\x0e\x44\x61teRangeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cINVALID_DATE\x10\x02\x12\x1d\n\x19START_DATE_AFTER_END_DATE\x10\x03\x12\x1b\n\x17\x43\x41NNOT_SET_DATE_TO_PAST\x10\x04\x12 \n\x1c\x41\x46TER_MAXIMUM_ALLOWABLE_DATE\x10\x05\x12/\n+CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED\x10\x06\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13\x44\x61teRangeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DATERANGEERRORENUM_DATERANGEERROR = _descriptor.EnumDescriptor( + name='DateRangeError', + full_name='google.ads.googleads.v5.errors.DateRangeErrorEnum.DateRangeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='START_DATE_AFTER_END_DATE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_DATE_TO_PAST', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AFTER_MAXIMUM_ALLOWABLE_DATE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=356, +) +_sym_db.RegisterEnumDescriptor(_DATERANGEERRORENUM_DATERANGEERROR) + + +_DATERANGEERRORENUM = _descriptor.Descriptor( + name='DateRangeErrorEnum', + full_name='google.ads.googleads.v5.errors.DateRangeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATERANGEERRORENUM_DATERANGEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=356, +) + +_DATERANGEERRORENUM_DATERANGEERROR.containing_type = _DATERANGEERRORENUM +DESCRIPTOR.message_types_by_name['DateRangeErrorEnum'] = _DATERANGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DateRangeErrorEnum = _reflection.GeneratedProtocolMessageType('DateRangeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _DATERANGEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.date_range_error_pb2' + , + '__doc__': """Container for enum describing possible date range errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.DateRangeErrorEnum) + }) +_sym_db.RegisterMessage(DateRangeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/date_range_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/date_range_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/date_range_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/distinct_error_pb2.py b/google/ads/google_ads/v5/proto/errors/distinct_error_pb2.py new file mode 100644 index 000000000..3bf7421ea --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/distinct_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/distinct_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/distinct_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022DistinctErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/distinct_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"m\n\x11\x44istinctErrorEnum\"X\n\rDistinctError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11\x44UPLICATE_ELEMENT\x10\x02\x12\x12\n\x0e\x44UPLICATE_TYPE\x10\x03\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x44istinctErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_DISTINCTERRORENUM_DISTINCTERROR = _descriptor.EnumDescriptor( + name='DistinctError', + full_name='google.ads.googleads.v5.errors.DistinctErrorEnum.DistinctError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ELEMENT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_TYPE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=232, +) +_sym_db.RegisterEnumDescriptor(_DISTINCTERRORENUM_DISTINCTERROR) + + +_DISTINCTERRORENUM = _descriptor.Descriptor( + name='DistinctErrorEnum', + full_name='google.ads.googleads.v5.errors.DistinctErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DISTINCTERRORENUM_DISTINCTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=232, +) + +_DISTINCTERRORENUM_DISTINCTERROR.containing_type = _DISTINCTERRORENUM +DESCRIPTOR.message_types_by_name['DistinctErrorEnum'] = _DISTINCTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DistinctErrorEnum = _reflection.GeneratedProtocolMessageType('DistinctErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _DISTINCTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.distinct_error_pb2' + , + '__doc__': """Container for enum describing possible distinct errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.DistinctErrorEnum) + }) +_sym_db.RegisterMessage(DistinctErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/distinct_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/distinct_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/distinct_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/enum_error_pb2.py b/google/ads/google_ads/v5/proto/errors/enum_error_pb2.py new file mode 100644 index 000000000..8d025157a --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/enum_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/enum_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/enum_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\016EnumErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/errors/enum_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"X\n\rEnumErrorEnum\"G\n\tEnumError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18\x45NUM_VALUE_NOT_PERMITTED\x10\x03\x42\xe9\x01\n\"com.google.ads.googleads.v5.errorsB\x0e\x45numErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_ENUMERRORENUM_ENUMERROR = _descriptor.EnumDescriptor( + name='EnumError', + full_name='google.ads.googleads.v5.errors.EnumErrorEnum.EnumError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENUM_VALUE_NOT_PERMITTED', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=207, +) +_sym_db.RegisterEnumDescriptor(_ENUMERRORENUM_ENUMERROR) + + +_ENUMERRORENUM = _descriptor.Descriptor( + name='EnumErrorEnum', + full_name='google.ads.googleads.v5.errors.EnumErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ENUMERRORENUM_ENUMERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=207, +) + +_ENUMERRORENUM_ENUMERROR.containing_type = _ENUMERRORENUM +DESCRIPTOR.message_types_by_name['EnumErrorEnum'] = _ENUMERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +EnumErrorEnum = _reflection.GeneratedProtocolMessageType('EnumErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _ENUMERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.enum_error_pb2' + , + '__doc__': """Container for enum describing possible enum errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.EnumErrorEnum) + }) +_sym_db.RegisterMessage(EnumErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/enum_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/enum_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/enum_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/errors_pb2.py b/google/ads/google_ads/v5/proto/errors/errors_pb2.py new file mode 100644 index 000000000..8873bd52e --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/errors_pb2.py @@ -0,0 +1,2224 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/errors.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v5.proto.common import value_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_value__pb2 +from google.ads.google_ads.v5.proto.errors import access_invitation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_access__invitation__error__pb2 +from google.ads.google_ads.v5.proto.errors import account_budget_proposal_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__budget__proposal__error__pb2 +from google.ads.google_ads.v5.proto.errors import account_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_customizer_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__customizer__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_group_ad_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__ad__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_group_bid_modifier_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_group_criterion_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_group_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_group_feed_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__feed__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_parameter_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__parameter__error__pb2 +from google.ads.google_ads.v5.proto.errors import ad_sharing_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__sharing__error__pb2 +from google.ads.google_ads.v5.proto.errors import adx_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_adx__error__pb2 +from google.ads.google_ads.v5.proto.errors import asset_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__error__pb2 +from google.ads.google_ads.v5.proto.errors import asset_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import authentication_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authentication__error__pb2 +from google.ads.google_ads.v5.proto.errors import authorization_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authorization__error__pb2 +from google.ads.google_ads.v5.proto.errors import batch_job_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_batch__job__error__pb2 +from google.ads.google_ads.v5.proto.errors import bidding_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__error__pb2 +from google.ads.google_ads.v5.proto.errors import bidding_strategy_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__strategy__error__pb2 +from google.ads.google_ads.v5.proto.errors import billing_setup_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_billing__setup__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_budget_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__budget__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_criterion_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__criterion__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_draft_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__draft__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_experiment_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__experiment__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_feed_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__feed__error__pb2 +from google.ads.google_ads.v5.proto.errors import campaign_shared_set_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__shared__set__error__pb2 +from google.ads.google_ads.v5.proto.errors import change_status_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_change__status__error__pb2 +from google.ads.google_ads.v5.proto.errors import collection_size_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_collection__size__error__pb2 +from google.ads.google_ads.v5.proto.errors import context_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_context__error__pb2 +from google.ads.google_ads.v5.proto.errors import conversion_action_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__action__error__pb2 +from google.ads.google_ads.v5.proto.errors import conversion_adjustment_upload_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__adjustment__upload__error__pb2 +from google.ads.google_ads.v5.proto.errors import conversion_upload_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__upload__error__pb2 +from google.ads.google_ads.v5.proto.errors import country_code_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_country__code__error__pb2 +from google.ads.google_ads.v5.proto.errors import criterion_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_criterion__error__pb2 +from google.ads.google_ads.v5.proto.errors import currency_code_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_currency__code__error__pb2 +from google.ads.google_ads.v5.proto.errors import custom_interest_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_custom__interest__error__pb2 +from google.ads.google_ads.v5.proto.errors import customer_client_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__client__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import customer_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__error__pb2 +from google.ads.google_ads.v5.proto.errors import customer_feed_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__feed__error__pb2 +from google.ads.google_ads.v5.proto.errors import customer_manager_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__manager__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import database_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_database__error__pb2 +from google.ads.google_ads.v5.proto.errors import date_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__error__pb2 +from google.ads.google_ads.v5.proto.errors import date_range_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__range__error__pb2 +from google.ads.google_ads.v5.proto.errors import distinct_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_distinct__error__pb2 +from google.ads.google_ads.v5.proto.errors import enum_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_enum__error__pb2 +from google.ads.google_ads.v5.proto.errors import extension_feed_item_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__feed__item__error__pb2 +from google.ads.google_ads.v5.proto.errors import extension_setting_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__setting__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_attribute_reference_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_item_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_item_target_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__target__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_item_validation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2 +from google.ads.google_ads.v5.proto.errors import feed_mapping_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__mapping__error__pb2 +from google.ads.google_ads.v5.proto.errors import field_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__error__pb2 +from google.ads.google_ads.v5.proto.errors import field_mask_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__mask__error__pb2 +from google.ads.google_ads.v5.proto.errors import function_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__error__pb2 +from google.ads.google_ads.v5.proto.errors import function_parsing_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__parsing__error__pb2 +from google.ads.google_ads.v5.proto.errors import geo_target_constant_suggestion_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_geo__target__constant__suggestion__error__pb2 +from google.ads.google_ads.v5.proto.errors import header_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_header__error__pb2 +from google.ads.google_ads.v5.proto.errors import id_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_id__error__pb2 +from google.ads.google_ads.v5.proto.errors import image_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_image__error__pb2 +from google.ads.google_ads.v5.proto.errors import internal_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_internal__error__pb2 +from google.ads.google_ads.v5.proto.errors import invoice_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_invoice__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_ad_group_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_ad_group_keyword_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__keyword__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_campaign_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_campaign_keyword_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__keyword__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__error__pb2 +from google.ads.google_ads.v5.proto.errors import keyword_plan_idea_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__idea__error__pb2 +from google.ads.google_ads.v5.proto.errors import label_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_label__error__pb2 +from google.ads.google_ads.v5.proto.errors import language_code_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_language__code__error__pb2 +from google.ads.google_ads.v5.proto.errors import list_operation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_list__operation__error__pb2 +from google.ads.google_ads.v5.proto.errors import manager_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_manager__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import media_bundle_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__bundle__error__pb2 +from google.ads.google_ads.v5.proto.errors import media_file_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__file__error__pb2 +from google.ads.google_ads.v5.proto.errors import media_upload_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__upload__error__pb2 +from google.ads.google_ads.v5.proto.errors import multiplier_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_multiplier__error__pb2 +from google.ads.google_ads.v5.proto.errors import mutate_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_mutate__error__pb2 +from google.ads.google_ads.v5.proto.errors import new_resource_creation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_new__resource__creation__error__pb2 +from google.ads.google_ads.v5.proto.errors import not_allowlisted_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__allowlisted__error__pb2 +from google.ads.google_ads.v5.proto.errors import not_empty_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__empty__error__pb2 +from google.ads.google_ads.v5.proto.errors import null_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_null__error__pb2 +from google.ads.google_ads.v5.proto.errors import offline_user_data_job_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_offline__user__data__job__error__pb2 +from google.ads.google_ads.v5.proto.errors import operation_access_denied_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operation__access__denied__error__pb2 +from google.ads.google_ads.v5.proto.errors import operator_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operator__error__pb2 +from google.ads.google_ads.v5.proto.errors import partial_failure_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_partial__failure__error__pb2 +from google.ads.google_ads.v5.proto.errors import payments_account_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_payments__account__error__pb2 +from google.ads.google_ads.v5.proto.errors import policy_finding_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__finding__error__pb2 +from google.ads.google_ads.v5.proto.errors import policy_validation_parameter_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__validation__parameter__error__pb2 +from google.ads.google_ads.v5.proto.errors import policy_violation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__violation__error__pb2 +from google.ads.google_ads.v5.proto.errors import query_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_query__error__pb2 +from google.ads.google_ads.v5.proto.errors import quota_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_quota__error__pb2 +from google.ads.google_ads.v5.proto.errors import range_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_range__error__pb2 +from google.ads.google_ads.v5.proto.errors import reach_plan_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_reach__plan__error__pb2 +from google.ads.google_ads.v5.proto.errors import recommendation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_recommendation__error__pb2 +from google.ads.google_ads.v5.proto.errors import region_code_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_region__code__error__pb2 +from google.ads.google_ads.v5.proto.errors import request_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_request__error__pb2 +from google.ads.google_ads.v5.proto.errors import resource_access_denied_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__access__denied__error__pb2 +from google.ads.google_ads.v5.proto.errors import resource_count_limit_exceeded_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2 +from google.ads.google_ads.v5.proto.errors import setting_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_setting__error__pb2 +from google.ads.google_ads.v5.proto.errors import shared_criterion_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__criterion__error__pb2 +from google.ads.google_ads.v5.proto.errors import shared_set_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__set__error__pb2 +from google.ads.google_ads.v5.proto.errors import size_limit_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_size__limit__error__pb2 +from google.ads.google_ads.v5.proto.errors import string_format_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__format__error__pb2 +from google.ads.google_ads.v5.proto.errors import string_length_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__length__error__pb2 +from google.ads.google_ads.v5.proto.errors import third_party_app_analytics_link_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_third__party__app__analytics__link__error__pb2 +from google.ads.google_ads.v5.proto.errors import time_zone_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_time__zone__error__pb2 +from google.ads.google_ads.v5.proto.errors import url_field_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_url__field__error__pb2 +from google.ads.google_ads.v5.proto.errors import user_data_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__data__error__pb2 +from google.ads.google_ads.v5.proto.errors import user_list_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__list__error__pb2 +from google.ads.google_ads.v5.proto.errors import youtube_video_registration_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_youtube__video__registration__error__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/errors.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\013ErrorsProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n1google/ads/googleads_v5/proto/errors/errors.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x31google/ads/googleads_v5/proto/common/policy.proto\x1a\x30google/ads/googleads_v5/proto/common/value.proto\x1a\x42google/ads/googleads_v5/proto/errors/access_invitation_error.proto\x1aHgoogle/ads/googleads_v5/proto/errors/account_budget_proposal_error.proto\x1a=google/ads/googleads_v5/proto/errors/account_link_error.proto\x1a>google/ads/googleads_v5/proto/errors/ad_customizer_error.proto\x1a\x33google/ads/googleads_v5/proto/errors/ad_error.proto\x1agoogle/ads/googleads_v5/proto/errors/ad_group_feed_error.proto\x1a=google/ads/googleads_v5/proto/errors/ad_parameter_error.proto\x1a;google/ads/googleads_v5/proto/errors/ad_sharing_error.proto\x1a\x34google/ads/googleads_v5/proto/errors/adx_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/asset_error.proto\x1a;google/ads/googleads_v5/proto/errors/asset_link_error.proto\x1a?google/ads/googleads_v5/proto/errors/authentication_error.proto\x1a>google/ads/googleads_v5/proto/errors/authorization_error.proto\x1a:google/ads/googleads_v5/proto/errors/batch_job_error.proto\x1a\x38google/ads/googleads_v5/proto/errors/bidding_error.proto\x1a\x41google/ads/googleads_v5/proto/errors/bidding_strategy_error.proto\x1a>google/ads/googleads_v5/proto/errors/billing_setup_error.proto\x1a@google/ads/googleads_v5/proto/errors/campaign_budget_error.proto\x1a\x43google/ads/googleads_v5/proto/errors/campaign_criterion_error.proto\x1a?google/ads/googleads_v5/proto/errors/campaign_draft_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/campaign_error.proto\x1a\x44google/ads/googleads_v5/proto/errors/campaign_experiment_error.proto\x1a>google/ads/googleads_v5/proto/errors/campaign_feed_error.proto\x1a\x44google/ads/googleads_v5/proto/errors/campaign_shared_set_error.proto\x1a>google/ads/googleads_v5/proto/errors/change_status_error.proto\x1a@google/ads/googleads_v5/proto/errors/collection_size_error.proto\x1a\x38google/ads/googleads_v5/proto/errors/context_error.proto\x1a\x42google/ads/googleads_v5/proto/errors/conversion_action_error.proto\x1aMgoogle/ads/googleads_v5/proto/errors/conversion_adjustment_upload_error.proto\x1a\x42google/ads/googleads_v5/proto/errors/conversion_upload_error.proto\x1a=google/ads/googleads_v5/proto/errors/country_code_error.proto\x1a:google/ads/googleads_v5/proto/errors/criterion_error.proto\x1a>google/ads/googleads_v5/proto/errors/currency_code_error.proto\x1a@google/ads/googleads_v5/proto/errors/custom_interest_error.proto\x1a\x45google/ads/googleads_v5/proto/errors/customer_client_link_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/customer_error.proto\x1a>google/ads/googleads_v5/proto/errors/customer_feed_error.proto\x1a\x46google/ads/googleads_v5/proto/errors/customer_manager_link_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/database_error.proto\x1a\x35google/ads/googleads_v5/proto/errors/date_error.proto\x1a;google/ads/googleads_v5/proto/errors/date_range_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/distinct_error.proto\x1a\x35google/ads/googleads_v5/proto/errors/enum_error.proto\x1a\x44google/ads/googleads_v5/proto/errors/extension_feed_item_error.proto\x1a\x42google/ads/googleads_v5/proto/errors/extension_setting_error.proto\x1aIgoogle/ads/googleads_v5/proto/errors/feed_attribute_reference_error.proto\x1a\x35google/ads/googleads_v5/proto/errors/feed_error.proto\x1a:google/ads/googleads_v5/proto/errors/feed_item_error.proto\x1a\x41google/ads/googleads_v5/proto/errors/feed_item_target_error.proto\x1a\x45google/ads/googleads_v5/proto/errors/feed_item_validation_error.proto\x1a=google/ads/googleads_v5/proto/errors/feed_mapping_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/field_error.proto\x1a;google/ads/googleads_v5/proto/errors/field_mask_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/function_error.proto\x1a\x41google/ads/googleads_v5/proto/errors/function_parsing_error.proto\x1aOgoogle/ads/googleads_v5/proto/errors/geo_target_constant_suggestion_error.proto\x1a\x37google/ads/googleads_v5/proto/errors/header_error.proto\x1a\x33google/ads/googleads_v5/proto/errors/id_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/image_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/internal_error.proto\x1a\x38google/ads/googleads_v5/proto/errors/invoice_error.proto\x1a\x46google/ads/googleads_v5/proto/errors/keyword_plan_ad_group_error.proto\x1aNgoogle/ads/googleads_v5/proto/errors/keyword_plan_ad_group_keyword_error.proto\x1a\x46google/ads/googleads_v5/proto/errors/keyword_plan_campaign_error.proto\x1aNgoogle/ads/googleads_v5/proto/errors/keyword_plan_campaign_keyword_error.proto\x1a=google/ads/googleads_v5/proto/errors/keyword_plan_error.proto\x1a\x42google/ads/googleads_v5/proto/errors/keyword_plan_idea_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/label_error.proto\x1a>google/ads/googleads_v5/proto/errors/language_code_error.proto\x1a?google/ads/googleads_v5/proto/errors/list_operation_error.proto\x1a=google/ads/googleads_v5/proto/errors/manager_link_error.proto\x1a=google/ads/googleads_v5/proto/errors/media_bundle_error.proto\x1a;google/ads/googleads_v5/proto/errors/media_file_error.proto\x1a=google/ads/googleads_v5/proto/errors/media_upload_error.proto\x1a;google/ads/googleads_v5/proto/errors/multiplier_error.proto\x1a\x37google/ads/googleads_v5/proto/errors/mutate_error.proto\x1a\x46google/ads/googleads_v5/proto/errors/new_resource_creation_error.proto\x1a@google/ads/googleads_v5/proto/errors/not_allowlisted_error.proto\x1a:google/ads/googleads_v5/proto/errors/not_empty_error.proto\x1a\x35google/ads/googleads_v5/proto/errors/null_error.proto\x1a\x46google/ads/googleads_v5/proto/errors/offline_user_data_job_error.proto\x1aHgoogle/ads/googleads_v5/proto/errors/operation_access_denied_error.proto\x1a\x39google/ads/googleads_v5/proto/errors/operator_error.proto\x1a@google/ads/googleads_v5/proto/errors/partial_failure_error.proto\x1a\x41google/ads/googleads_v5/proto/errors/payments_account_error.proto\x1a?google/ads/googleads_v5/proto/errors/policy_finding_error.proto\x1aLgoogle/ads/googleads_v5/proto/errors/policy_validation_parameter_error.proto\x1a\x41google/ads/googleads_v5/proto/errors/policy_violation_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/query_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/quota_error.proto\x1a\x36google/ads/googleads_v5/proto/errors/range_error.proto\x1a;google/ads/googleads_v5/proto/errors/reach_plan_error.proto\x1a?google/ads/googleads_v5/proto/errors/recommendation_error.proto\x1agoogle/ads/googleads_v5/proto/errors/string_format_error.proto\x1a>google/ads/googleads_v5/proto/errors/string_length_error.proto\x1aOgoogle/ads/googleads_v5/proto/errors/third_party_app_analytics_link_error.proto\x1a:google/ads/googleads_v5/proto/errors/time_zone_error.proto\x1a:google/ads/googleads_v5/proto/errors/url_field_error.proto\x1a:google/ads/googleads_v5/proto/errors/user_data_error.proto\x1a:google/ads/googleads_v5/proto/errors/user_list_error.proto\x1aKgoogle/ads/googleads_v5/proto/errors/youtube_video_registration_error.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"R\n\x10GoogleAdsFailure\x12>\n\x06\x65rrors\x18\x01 \x03(\x0b\x32..google.ads.googleads.v5.errors.GoogleAdsError\"\x98\x02\n\x0eGoogleAdsError\x12=\n\nerror_code\x18\x01 \x01(\x0b\x32).google.ads.googleads.v5.errors.ErrorCode\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x36\n\x07trigger\x18\x03 \x01(\x0b\x32%.google.ads.googleads.v5.common.Value\x12?\n\x08location\x18\x04 \x01(\x0b\x32-.google.ads.googleads.v5.errors.ErrorLocation\x12=\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32,.google.ads.googleads.v5.errors.ErrorDetails\"\xe1\\\n\tErrorCode\x12V\n\rrequest_error\x18\x01 \x01(\x0e\x32=.google.ads.googleads.v5.errors.RequestErrorEnum.RequestErrorH\x00\x12o\n\x16\x62idding_strategy_error\x18\x02 \x01(\x0e\x32M.google.ads.googleads.v5.errors.BiddingStrategyErrorEnum.BiddingStrategyErrorH\x00\x12Z\n\x0furl_field_error\x18\x03 \x01(\x0e\x32?.google.ads.googleads.v5.errors.UrlFieldErrorEnum.UrlFieldErrorH\x00\x12i\n\x14list_operation_error\x18\x04 \x01(\x0e\x32I.google.ads.googleads.v5.errors.ListOperationErrorEnum.ListOperationErrorH\x00\x12P\n\x0bquery_error\x18\x05 \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.QueryErrorEnum.QueryErrorH\x00\x12S\n\x0cmutate_error\x18\x07 \x01(\x0e\x32;.google.ads.googleads.v5.errors.MutateErrorEnum.MutateErrorH\x00\x12]\n\x10\x66ield_mask_error\x18\x08 \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.FieldMaskErrorEnum.FieldMaskErrorH\x00\x12h\n\x13\x61uthorization_error\x18\t \x01(\x0e\x32I.google.ads.googleads.v5.errors.AuthorizationErrorEnum.AuthorizationErrorH\x00\x12Y\n\x0einternal_error\x18\n \x01(\x0e\x32?.google.ads.googleads.v5.errors.InternalErrorEnum.InternalErrorH\x00\x12P\n\x0bquota_error\x18\x0b \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.QuotaErrorEnum.QuotaErrorH\x00\x12G\n\x08\x61\x64_error\x18\x0c \x01(\x0e\x32\x33.google.ads.googleads.v5.errors.AdErrorEnum.AdErrorH\x00\x12W\n\x0e\x61\x64_group_error\x18\r \x01(\x0e\x32=.google.ads.googleads.v5.errors.AdGroupErrorEnum.AdGroupErrorH\x00\x12l\n\x15\x63\x61mpaign_budget_error\x18\x0e \x01(\x0e\x32K.google.ads.googleads.v5.errors.CampaignBudgetErrorEnum.CampaignBudgetErrorH\x00\x12Y\n\x0e\x63\x61mpaign_error\x18\x0f \x01(\x0e\x32?.google.ads.googleads.v5.errors.CampaignErrorEnum.CampaignErrorH\x00\x12k\n\x14\x61uthentication_error\x18\x11 \x01(\x0e\x32K.google.ads.googleads.v5.errors.AuthenticationErrorEnum.AuthenticationErrorH\x00\x12s\n\x18\x61\x64_group_criterion_error\x18\x12 \x01(\x0e\x32O.google.ads.googleads.v5.errors.AdGroupCriterionErrorEnum.AdGroupCriterionErrorH\x00\x12\x66\n\x13\x61\x64_customizer_error\x18\x13 \x01(\x0e\x32G.google.ads.googleads.v5.errors.AdCustomizerErrorEnum.AdCustomizerErrorH\x00\x12^\n\x11\x61\x64_group_ad_error\x18\x15 \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.AdGroupAdErrorEnum.AdGroupAdErrorH\x00\x12]\n\x10\x61\x64_sharing_error\x18\x18 \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.AdSharingErrorEnum.AdSharingErrorH\x00\x12J\n\tadx_error\x18\x19 \x01(\x0e\x32\x35.google.ads.googleads.v5.errors.AdxErrorEnum.AdxErrorH\x00\x12P\n\x0b\x61sset_error\x18k \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.AssetErrorEnum.AssetErrorH\x00\x12V\n\rbidding_error\x18\x1a \x01(\x0e\x32=.google.ads.googleads.v5.errors.BiddingErrorEnum.BiddingErrorH\x00\x12u\n\x18\x63\x61mpaign_criterion_error\x18\x1d \x01(\x0e\x32Q.google.ads.googleads.v5.errors.CampaignCriterionErrorEnum.CampaignCriterionErrorH\x00\x12l\n\x15\x63ollection_size_error\x18\x1f \x01(\x0e\x32K.google.ads.googleads.v5.errors.CollectionSizeErrorEnum.CollectionSizeErrorH\x00\x12\x63\n\x12\x63ountry_code_error\x18m \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.CountryCodeErrorEnum.CountryCodeErrorH\x00\x12\\\n\x0f\x63riterion_error\x18 \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.CriterionErrorEnum.CriterionErrorH\x00\x12Y\n\x0e\x63ustomer_error\x18Z \x01(\x0e\x32?.google.ads.googleads.v5.errors.CustomerErrorEnum.CustomerErrorH\x00\x12M\n\ndate_error\x18! \x01(\x0e\x32\x37.google.ads.googleads.v5.errors.DateErrorEnum.DateErrorH\x00\x12]\n\x10\x64\x61te_range_error\x18\" \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.DateRangeErrorEnum.DateRangeErrorH\x00\x12Y\n\x0e\x64istinct_error\x18# \x01(\x0e\x32?.google.ads.googleads.v5.errors.DistinctErrorEnum.DistinctErrorH\x00\x12\x85\x01\n\x1e\x66\x65\x65\x64_attribute_reference_error\x18$ \x01(\x0e\x32[.google.ads.googleads.v5.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceErrorH\x00\x12Y\n\x0e\x66unction_error\x18% \x01(\x0e\x32?.google.ads.googleads.v5.errors.FunctionErrorEnum.FunctionErrorH\x00\x12o\n\x16\x66unction_parsing_error\x18& \x01(\x0e\x32M.google.ads.googleads.v5.errors.FunctionParsingErrorEnum.FunctionParsingErrorH\x00\x12G\n\x08id_error\x18\' \x01(\x0e\x32\x33.google.ads.googleads.v5.errors.IdErrorEnum.IdErrorH\x00\x12P\n\x0bimage_error\x18( \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.ImageErrorEnum.ImageErrorH\x00\x12\x66\n\x13language_code_error\x18n \x01(\x0e\x32G.google.ads.googleads.v5.errors.LanguageCodeErrorEnum.LanguageCodeErrorH\x00\x12\x63\n\x12media_bundle_error\x18* \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.MediaBundleErrorEnum.MediaBundleErrorH\x00\x12\x63\n\x12media_upload_error\x18t \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.MediaUploadErrorEnum.MediaUploadErrorH\x00\x12]\n\x10media_file_error\x18V \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.MediaFileErrorEnum.MediaFileErrorH\x00\x12_\n\x10multiplier_error\x18, \x01(\x0e\x32\x43.google.ads.googleads.v5.errors.MultiplierErrorEnum.MultiplierErrorH\x00\x12|\n\x1bnew_resource_creation_error\x18- \x01(\x0e\x32U.google.ads.googleads.v5.errors.NewResourceCreationErrorEnum.NewResourceCreationErrorH\x00\x12Z\n\x0fnot_empty_error\x18. \x01(\x0e\x32?.google.ads.googleads.v5.errors.NotEmptyErrorEnum.NotEmptyErrorH\x00\x12M\n\nnull_error\x18/ \x01(\x0e\x32\x37.google.ads.googleads.v5.errors.NullErrorEnum.NullErrorH\x00\x12Y\n\x0eoperator_error\x18\x30 \x01(\x0e\x32?.google.ads.googleads.v5.errors.OperatorErrorEnum.OperatorErrorH\x00\x12P\n\x0brange_error\x18\x31 \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.RangeErrorEnum.RangeErrorH\x00\x12k\n\x14recommendation_error\x18: \x01(\x0e\x32K.google.ads.googleads.v5.errors.RecommendationErrorEnum.RecommendationErrorH\x00\x12`\n\x11region_code_error\x18\x33 \x01(\x0e\x32\x43.google.ads.googleads.v5.errors.RegionCodeErrorEnum.RegionCodeErrorH\x00\x12V\n\rsetting_error\x18\x34 \x01(\x0e\x32=.google.ads.googleads.v5.errors.SettingErrorEnum.SettingErrorH\x00\x12\x66\n\x13string_format_error\x18\x35 \x01(\x0e\x32G.google.ads.googleads.v5.errors.StringFormatErrorEnum.StringFormatErrorH\x00\x12\x66\n\x13string_length_error\x18\x36 \x01(\x0e\x32G.google.ads.googleads.v5.errors.StringLengthErrorEnum.StringLengthErrorH\x00\x12\x82\x01\n\x1doperation_access_denied_error\x18\x37 \x01(\x0e\x32Y.google.ads.googleads.v5.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedErrorH\x00\x12\x7f\n\x1cresource_access_denied_error\x18\x38 \x01(\x0e\x32W.google.ads.googleads.v5.errors.ResourceAccessDeniedErrorEnum.ResourceAccessDeniedErrorH\x00\x12\x92\x01\n#resource_count_limit_exceeded_error\x18\x39 \x01(\x0e\x32\x63.google.ads.googleads.v5.errors.ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededErrorH\x00\x12\x8b\x01\n youtube_video_registration_error\x18u \x01(\x0e\x32_.google.ads.googleads.v5.errors.YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationErrorH\x00\x12z\n\x1b\x61\x64_group_bid_modifier_error\x18; \x01(\x0e\x32S.google.ads.googleads.v5.errors.AdGroupBidModifierErrorEnum.AdGroupBidModifierErrorH\x00\x12V\n\rcontext_error\x18< \x01(\x0e\x32=.google.ads.googleads.v5.errors.ContextErrorEnum.ContextErrorH\x00\x12P\n\x0b\x66ield_error\x18= \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.FieldErrorEnum.FieldErrorH\x00\x12]\n\x10shared_set_error\x18> \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.SharedSetErrorEnum.SharedSetErrorH\x00\x12o\n\x16shared_criterion_error\x18? \x01(\x0e\x32M.google.ads.googleads.v5.errors.SharedCriterionErrorEnum.SharedCriterionErrorH\x00\x12v\n\x19\x63\x61mpaign_shared_set_error\x18@ \x01(\x0e\x32Q.google.ads.googleads.v5.errors.CampaignSharedSetErrorEnum.CampaignSharedSetErrorH\x00\x12r\n\x17\x63onversion_action_error\x18\x41 \x01(\x0e\x32O.google.ads.googleads.v5.errors.ConversionActionErrorEnum.ConversionActionErrorH\x00\x12\x91\x01\n\"conversion_adjustment_upload_error\x18s \x01(\x0e\x32\x63.google.ads.googleads.v5.errors.ConversionAdjustmentUploadErrorEnum.ConversionAdjustmentUploadErrorH\x00\x12r\n\x17\x63onversion_upload_error\x18o \x01(\x0e\x32O.google.ads.googleads.v5.errors.ConversionUploadErrorEnum.ConversionUploadErrorH\x00\x12S\n\x0cheader_error\x18\x42 \x01(\x0e\x32;.google.ads.googleads.v5.errors.HeaderErrorEnum.HeaderErrorH\x00\x12Y\n\x0e\x64\x61tabase_error\x18\x43 \x01(\x0e\x32?.google.ads.googleads.v5.errors.DatabaseErrorEnum.DatabaseErrorH\x00\x12i\n\x14policy_finding_error\x18\x44 \x01(\x0e\x32I.google.ads.googleads.v5.errors.PolicyFindingErrorEnum.PolicyFindingErrorH\x00\x12M\n\nenum_error\x18\x46 \x01(\x0e\x32\x37.google.ads.googleads.v5.errors.EnumErrorEnum.EnumErrorH\x00\x12\x63\n\x12keyword_plan_error\x18G \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.KeywordPlanErrorEnum.KeywordPlanErrorH\x00\x12|\n\x1bkeyword_plan_campaign_error\x18H \x01(\x0e\x32U.google.ads.googleads.v5.errors.KeywordPlanCampaignErrorEnum.KeywordPlanCampaignErrorH\x00\x12\x93\x01\n#keyword_plan_campaign_keyword_error\x18\x84\x01 \x01(\x0e\x32\x63.google.ads.googleads.v5.errors.KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordErrorH\x00\x12z\n\x1bkeyword_plan_ad_group_error\x18J \x01(\x0e\x32S.google.ads.googleads.v5.errors.KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupErrorH\x00\x12\x91\x01\n#keyword_plan_ad_group_keyword_error\x18\x85\x01 \x01(\x0e\x32\x61.google.ads.googleads.v5.errors.KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordErrorH\x00\x12p\n\x17keyword_plan_idea_error\x18L \x01(\x0e\x32M.google.ads.googleads.v5.errors.KeywordPlanIdeaErrorEnum.KeywordPlanIdeaErrorH\x00\x12\x82\x01\n\x1d\x61\x63\x63ount_budget_proposal_error\x18M \x01(\x0e\x32Y.google.ads.googleads.v5.errors.AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorH\x00\x12Z\n\x0fuser_list_error\x18N \x01(\x0e\x32?.google.ads.googleads.v5.errors.UserListErrorEnum.UserListErrorH\x00\x12\x66\n\x13\x63hange_status_error\x18O \x01(\x0e\x32G.google.ads.googleads.v5.errors.ChangeStatusErrorEnum.ChangeStatusErrorH\x00\x12M\n\nfeed_error\x18P \x01(\x0e\x32\x37.google.ads.googleads.v5.errors.FeedErrorEnum.FeedErrorH\x00\x12\x95\x01\n$geo_target_constant_suggestion_error\x18Q \x01(\x0e\x32\x65.google.ads.googleads.v5.errors.GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionErrorH\x00\x12i\n\x14\x63\x61mpaign_draft_error\x18R \x01(\x0e\x32I.google.ads.googleads.v5.errors.CampaignDraftErrorEnum.CampaignDraftErrorH\x00\x12Z\n\x0f\x66\x65\x65\x64_item_error\x18S \x01(\x0e\x32?.google.ads.googleads.v5.errors.FeedItemErrorEnum.FeedItemErrorH\x00\x12P\n\x0blabel_error\x18T \x01(\x0e\x32\x39.google.ads.googleads.v5.errors.LabelErrorEnum.LabelErrorH\x00\x12\x66\n\x13\x62illing_setup_error\x18W \x01(\x0e\x32G.google.ads.googleads.v5.errors.BillingSetupErrorEnum.BillingSetupErrorH\x00\x12y\n\x1a\x63ustomer_client_link_error\x18X \x01(\x0e\x32S.google.ads.googleads.v5.errors.CustomerClientLinkErrorEnum.CustomerClientLinkErrorH\x00\x12|\n\x1b\x63ustomer_manager_link_error\x18[ \x01(\x0e\x32U.google.ads.googleads.v5.errors.CustomerManagerLinkErrorEnum.CustomerManagerLinkErrorH\x00\x12\x63\n\x12\x66\x65\x65\x64_mapping_error\x18\\ \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.FeedMappingErrorEnum.FeedMappingErrorH\x00\x12\x66\n\x13\x63ustomer_feed_error\x18] \x01(\x0e\x32G.google.ads.googleads.v5.errors.CustomerFeedErrorEnum.CustomerFeedErrorH\x00\x12\x64\n\x13\x61\x64_group_feed_error\x18^ \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.AdGroupFeedErrorEnum.AdGroupFeedErrorH\x00\x12\x66\n\x13\x63\x61mpaign_feed_error\x18` \x01(\x0e\x32G.google.ads.googleads.v5.errors.CampaignFeedErrorEnum.CampaignFeedErrorH\x00\x12l\n\x15\x63ustom_interest_error\x18\x61 \x01(\x0e\x32K.google.ads.googleads.v5.errors.CustomInterestErrorEnum.CustomInterestErrorH\x00\x12x\n\x19\x63\x61mpaign_experiment_error\x18\x62 \x01(\x0e\x32S.google.ads.googleads.v5.errors.CampaignExperimentErrorEnum.CampaignExperimentErrorH\x00\x12v\n\x19\x65xtension_feed_item_error\x18\x64 \x01(\x0e\x32Q.google.ads.googleads.v5.errors.ExtensionFeedItemErrorEnum.ExtensionFeedItemErrorH\x00\x12\x63\n\x12\x61\x64_parameter_error\x18\x65 \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.AdParameterErrorEnum.AdParameterErrorH\x00\x12y\n\x1a\x66\x65\x65\x64_item_validation_error\x18\x66 \x01(\x0e\x32S.google.ads.googleads.v5.errors.FeedItemValidationErrorEnum.FeedItemValidationErrorH\x00\x12r\n\x17\x65xtension_setting_error\x18g \x01(\x0e\x32O.google.ads.googleads.v5.errors.ExtensionSettingErrorEnum.ExtensionSettingErrorH\x00\x12m\n\x16\x66\x65\x65\x64_item_target_error\x18h \x01(\x0e\x32K.google.ads.googleads.v5.errors.FeedItemTargetErrorEnum.FeedItemTargetErrorH\x00\x12o\n\x16policy_violation_error\x18i \x01(\x0e\x32M.google.ads.googleads.v5.errors.PolicyViolationErrorEnum.PolicyViolationErrorH\x00\x12l\n\x15partial_failure_error\x18p \x01(\x0e\x32K.google.ads.googleads.v5.errors.PartialFailureErrorEnum.PartialFailureErrorH\x00\x12\x8e\x01\n!policy_validation_parameter_error\x18r \x01(\x0e\x32\x61.google.ads.googleads.v5.errors.PolicyValidationParameterErrorEnum.PolicyValidationParameterErrorH\x00\x12]\n\x10size_limit_error\x18v \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.SizeLimitErrorEnum.SizeLimitErrorH\x00\x12z\n\x1boffline_user_data_job_error\x18w \x01(\x0e\x32S.google.ads.googleads.v5.errors.OfflineUserDataJobErrorEnum.OfflineUserDataJobErrorH\x00\x12m\n\x15not_allowlisted_error\x18\x89\x01 \x01(\x0e\x32K.google.ads.googleads.v5.errors.NotAllowlistedErrorEnum.NotAllowlistedErrorH\x00\x12\x63\n\x12manager_link_error\x18y \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.ManagerLinkErrorEnum.ManagerLinkErrorH\x00\x12\x66\n\x13\x63urrency_code_error\x18z \x01(\x0e\x32G.google.ads.googleads.v5.errors.CurrencyCodeErrorEnum.CurrencyCodeErrorH\x00\x12r\n\x17\x61\x63\x63\x65ss_invitation_error\x18| \x01(\x0e\x32O.google.ads.googleads.v5.errors.AccessInvitationErrorEnum.AccessInvitationErrorH\x00\x12]\n\x10reach_plan_error\x18} \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.ReachPlanErrorEnum.ReachPlanErrorH\x00\x12V\n\rinvoice_error\x18~ \x01(\x0e\x32=.google.ads.googleads.v5.errors.InvoiceErrorEnum.InvoiceErrorH\x00\x12o\n\x16payments_account_error\x18\x7f \x01(\x0e\x32M.google.ads.googleads.v5.errors.PaymentsAccountErrorEnum.PaymentsAccountErrorH\x00\x12[\n\x0ftime_zone_error\x18\x80\x01 \x01(\x0e\x32?.google.ads.googleads.v5.errors.TimeZoneErrorEnum.TimeZoneErrorH\x00\x12^\n\x10\x61sset_link_error\x18\x81\x01 \x01(\x0e\x32\x41.google.ads.googleads.v5.errors.AssetLinkErrorEnum.AssetLinkErrorH\x00\x12[\n\x0fuser_data_error\x18\x82\x01 \x01(\x0e\x32?.google.ads.googleads.v5.errors.UserDataErrorEnum.UserDataErrorH\x00\x12[\n\x0f\x62\x61tch_job_error\x18\x83\x01 \x01(\x0e\x32?.google.ads.googleads.v5.errors.BatchJobErrorEnum.BatchJobErrorH\x00\x12\x64\n\x12\x61\x63\x63ount_link_error\x18\x86\x01 \x01(\x0e\x32\x45.google.ads.googleads.v5.errors.AccountLinkErrorEnum.AccountLinkErrorH\x00\x12\x94\x01\n$third_party_app_analytics_link_error\x18\x87\x01 \x01(\x0e\x32\x63.google.ads.googleads.v5.errors.ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkErrorH\x00\x42\x0c\n\nerror_code\"\xc0\x01\n\rErrorLocation\x12[\n\x13\x66ield_path_elements\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.errors.ErrorLocation.FieldPathElement\x1aR\n\x10\x46ieldPathElement\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12*\n\x05index\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xae\x02\n\x0c\x45rrorDetails\x12\x1e\n\x16unpublished_error_code\x18\x01 \x01(\t\x12X\n\x18policy_violation_details\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v5.errors.PolicyViolationDetails\x12T\n\x16policy_finding_details\x18\x03 \x01(\x0b\x32\x34.google.ads.googleads.v5.errors.PolicyFindingDetails\x12N\n\x13quota_error_details\x18\x04 \x01(\x0b\x32\x31.google.ads.googleads.v5.errors.QuotaErrorDetails\"\xb3\x01\n\x16PolicyViolationDetails\x12#\n\x1b\x65xternal_policy_description\x18\x02 \x01(\t\x12?\n\x03key\x18\x04 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.PolicyViolationKey\x12\x1c\n\x14\x65xternal_policy_name\x18\x05 \x01(\t\x12\x15\n\ris_exemptible\x18\x06 \x01(\x08\"f\n\x14PolicyFindingDetails\x12N\n\x14policy_topic_entries\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.PolicyTopicEntry\"\xf8\x01\n\x11QuotaErrorDetails\x12T\n\nrate_scope\x18\x01 \x01(\x0e\x32@.google.ads.googleads.v5.errors.QuotaErrorDetails.QuotaRateScope\x12\x11\n\trate_name\x18\x02 \x01(\t\x12.\n\x0bretry_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\"J\n\x0eQuotaRateScope\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07\x41\x43\x43OUNT\x10\x02\x12\r\n\tDEVELOPER\x10\x03\x42\xe6\x01\n\"com.google.ads.googleads.v5.errorsB\x0b\x45rrorsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_value__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_access__invitation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__budget__proposal__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__customizer__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__ad__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__feed__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__parameter__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__sharing__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_adx__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authentication__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authorization__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_batch__job__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__strategy__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_billing__setup__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__budget__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__draft__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__experiment__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__feed__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__shared__set__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_change__status__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_collection__size__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_context__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__action__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__adjustment__upload__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__upload__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_country__code__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_currency__code__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_custom__interest__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__client__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__feed__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__manager__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_database__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__range__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_distinct__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_enum__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__feed__item__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__setting__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__target__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__mapping__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__mask__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__parsing__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_geo__target__constant__suggestion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_header__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_id__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_image__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_internal__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_invoice__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__keyword__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__keyword__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__idea__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_label__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_language__code__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_list__operation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_manager__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__bundle__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__file__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__upload__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_multiplier__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_mutate__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_new__resource__creation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__allowlisted__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__empty__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_null__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_offline__user__data__job__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operation__access__denied__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operator__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_partial__failure__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_payments__account__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__finding__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__validation__parameter__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__violation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_query__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_quota__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_range__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_reach__plan__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_recommendation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_region__code__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_request__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__access__denied__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_setting__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__set__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_size__limit__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__format__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__length__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_third__party__app__analytics__link__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_time__zone__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_url__field__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__data__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__list__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_youtube__video__registration__error__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_QUOTAERRORDETAILS_QUOTARATESCOPE = _descriptor.EnumDescriptor( + name='QuotaRateScope', + full_name='google.ads.googleads.v5.errors.QuotaErrorDetails.QuotaRateScope', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCOUNT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVELOPER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=20744, + serialized_end=20818, +) +_sym_db.RegisterEnumDescriptor(_QUOTAERRORDETAILS_QUOTARATESCOPE) + + +_GOOGLEADSFAILURE = _descriptor.Descriptor( + name='GoogleAdsFailure', + full_name='google.ads.googleads.v5.errors.GoogleAdsFailure', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='errors', full_name='google.ads.googleads.v5.errors.GoogleAdsFailure.errors', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7540, + serialized_end=7622, +) + + +_GOOGLEADSERROR = _descriptor.Descriptor( + name='GoogleAdsError', + full_name='google.ads.googleads.v5.errors.GoogleAdsError', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='error_code', full_name='google.ads.googleads.v5.errors.GoogleAdsError.error_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='message', full_name='google.ads.googleads.v5.errors.GoogleAdsError.message', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='trigger', full_name='google.ads.googleads.v5.errors.GoogleAdsError.trigger', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location', full_name='google.ads.googleads.v5.errors.GoogleAdsError.location', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='details', full_name='google.ads.googleads.v5.errors.GoogleAdsError.details', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7625, + serialized_end=7905, +) + + +_ERRORCODE = _descriptor.Descriptor( + name='ErrorCode', + full_name='google.ads.googleads.v5.errors.ErrorCode', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='request_error', full_name='google.ads.googleads.v5.errors.ErrorCode.request_error', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy_error', full_name='google.ads.googleads.v5.errors.ErrorCode.bidding_strategy_error', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_field_error', full_name='google.ads.googleads.v5.errors.ErrorCode.url_field_error', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='list_operation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.list_operation_error', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='query_error', full_name='google.ads.googleads.v5.errors.ErrorCode.query_error', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mutate_error', full_name='google.ads.googleads.v5.errors.ErrorCode.mutate_error', index=5, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_mask_error', full_name='google.ads.googleads.v5.errors.ErrorCode.field_mask_error', index=6, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='authorization_error', full_name='google.ads.googleads.v5.errors.ErrorCode.authorization_error', index=7, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='internal_error', full_name='google.ads.googleads.v5.errors.ErrorCode.internal_error', index=8, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quota_error', full_name='google.ads.googleads.v5.errors.ErrorCode.quota_error', index=9, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_error', index=10, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_group_error', index=11, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_budget_error', index=12, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_error', index=13, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='authentication_error', full_name='google.ads.googleads.v5.errors.ErrorCode.authentication_error', index=14, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_group_criterion_error', index=15, + number=18, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_customizer_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_customizer_error', index=16, + number=19, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_group_ad_error', index=17, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_sharing_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_sharing_error', index=18, + number=24, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='adx_error', full_name='google.ads.googleads.v5.errors.ErrorCode.adx_error', index=19, + number=25, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_error', full_name='google.ads.googleads.v5.errors.ErrorCode.asset_error', index=20, + number=107, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_error', full_name='google.ads.googleads.v5.errors.ErrorCode.bidding_error', index=21, + number=26, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_criterion_error', index=22, + number=29, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='collection_size_error', full_name='google.ads.googleads.v5.errors.ErrorCode.collection_size_error', index=23, + number=31, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code_error', full_name='google.ads.googleads.v5.errors.ErrorCode.country_code_error', index=24, + number=109, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_error', full_name='google.ads.googleads.v5.errors.ErrorCode.criterion_error', index=25, + number=32, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_error', full_name='google.ads.googleads.v5.errors.ErrorCode.customer_error', index=26, + number=90, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date_error', full_name='google.ads.googleads.v5.errors.ErrorCode.date_error', index=27, + number=33, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date_range_error', full_name='google.ads.googleads.v5.errors.ErrorCode.date_range_error', index=28, + number=34, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='distinct_error', full_name='google.ads.googleads.v5.errors.ErrorCode.distinct_error', index=29, + number=35, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_attribute_reference_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_attribute_reference_error', index=30, + number=36, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='function_error', full_name='google.ads.googleads.v5.errors.ErrorCode.function_error', index=31, + number=37, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='function_parsing_error', full_name='google.ads.googleads.v5.errors.ErrorCode.function_parsing_error', index=32, + number=38, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id_error', full_name='google.ads.googleads.v5.errors.ErrorCode.id_error', index=33, + number=39, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='image_error', full_name='google.ads.googleads.v5.errors.ErrorCode.image_error', index=34, + number=40, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code_error', full_name='google.ads.googleads.v5.errors.ErrorCode.language_code_error', index=35, + number=110, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_bundle_error', full_name='google.ads.googleads.v5.errors.ErrorCode.media_bundle_error', index=36, + number=42, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_upload_error', full_name='google.ads.googleads.v5.errors.ErrorCode.media_upload_error', index=37, + number=116, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file_error', full_name='google.ads.googleads.v5.errors.ErrorCode.media_file_error', index=38, + number=86, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='multiplier_error', full_name='google.ads.googleads.v5.errors.ErrorCode.multiplier_error', index=39, + number=44, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='new_resource_creation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.new_resource_creation_error', index=40, + number=45, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='not_empty_error', full_name='google.ads.googleads.v5.errors.ErrorCode.not_empty_error', index=41, + number=46, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='null_error', full_name='google.ads.googleads.v5.errors.ErrorCode.null_error', index=42, + number=47, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operator_error', full_name='google.ads.googleads.v5.errors.ErrorCode.operator_error', index=43, + number=48, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='range_error', full_name='google.ads.googleads.v5.errors.ErrorCode.range_error', index=44, + number=49, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommendation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.recommendation_error', index=45, + number=58, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='region_code_error', full_name='google.ads.googleads.v5.errors.ErrorCode.region_code_error', index=46, + number=51, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='setting_error', full_name='google.ads.googleads.v5.errors.ErrorCode.setting_error', index=47, + number=52, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_format_error', full_name='google.ads.googleads.v5.errors.ErrorCode.string_format_error', index=48, + number=53, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_length_error', full_name='google.ads.googleads.v5.errors.ErrorCode.string_length_error', index=49, + number=54, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation_access_denied_error', full_name='google.ads.googleads.v5.errors.ErrorCode.operation_access_denied_error', index=50, + number=55, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_access_denied_error', full_name='google.ads.googleads.v5.errors.ErrorCode.resource_access_denied_error', index=51, + number=56, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_count_limit_exceeded_error', full_name='google.ads.googleads.v5.errors.ErrorCode.resource_count_limit_exceeded_error', index=52, + number=57, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video_registration_error', full_name='google.ads.googleads.v5.errors.ErrorCode.youtube_video_registration_error', index=53, + number=117, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_group_bid_modifier_error', index=54, + number=59, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='context_error', full_name='google.ads.googleads.v5.errors.ErrorCode.context_error', index=55, + number=60, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_error', full_name='google.ads.googleads.v5.errors.ErrorCode.field_error', index=56, + number=61, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set_error', full_name='google.ads.googleads.v5.errors.ErrorCode.shared_set_error', index=57, + number=62, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_criterion_error', full_name='google.ads.googleads.v5.errors.ErrorCode.shared_criterion_error', index=58, + number=63, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_shared_set_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_shared_set_error', index=59, + number=64, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action_error', full_name='google.ads.googleads.v5.errors.ErrorCode.conversion_action_error', index=60, + number=65, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_adjustment_upload_error', full_name='google.ads.googleads.v5.errors.ErrorCode.conversion_adjustment_upload_error', index=61, + number=115, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_upload_error', full_name='google.ads.googleads.v5.errors.ErrorCode.conversion_upload_error', index=62, + number=111, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='header_error', full_name='google.ads.googleads.v5.errors.ErrorCode.header_error', index=63, + number=66, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='database_error', full_name='google.ads.googleads.v5.errors.ErrorCode.database_error', index=64, + number=67, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_finding_error', full_name='google.ads.googleads.v5.errors.ErrorCode.policy_finding_error', index=65, + number=68, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enum_error', full_name='google.ads.googleads.v5.errors.ErrorCode.enum_error', index=66, + number=70, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_error', index=67, + number=71, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_campaign_error', index=68, + number=72, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_keyword_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_campaign_keyword_error', index=69, + number=132, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_ad_group_error', index=70, + number=74, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_keyword_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_ad_group_keyword_error', index=71, + number=133, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_idea_error', full_name='google.ads.googleads.v5.errors.ErrorCode.keyword_plan_idea_error', index=72, + number=76, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_budget_proposal_error', full_name='google.ads.googleads.v5.errors.ErrorCode.account_budget_proposal_error', index=73, + number=77, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list_error', full_name='google.ads.googleads.v5.errors.ErrorCode.user_list_error', index=74, + number=78, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='change_status_error', full_name='google.ads.googleads.v5.errors.ErrorCode.change_status_error', index=75, + number=79, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_error', index=76, + number=80, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constant_suggestion_error', full_name='google.ads.googleads.v5.errors.ErrorCode.geo_target_constant_suggestion_error', index=77, + number=81, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_draft_error', index=78, + number=82, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_item_error', index=79, + number=83, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label_error', full_name='google.ads.googleads.v5.errors.ErrorCode.label_error', index=80, + number=84, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='billing_setup_error', full_name='google.ads.googleads.v5.errors.ErrorCode.billing_setup_error', index=81, + number=87, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_client_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.customer_client_link_error', index=82, + number=88, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_manager_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.customer_manager_link_error', index=83, + number=91, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_mapping_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_mapping_error', index=84, + number=92, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_feed_error', full_name='google.ads.googleads.v5.errors.ErrorCode.customer_feed_error', index=85, + number=93, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_group_feed_error', index=86, + number=94, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_feed_error', index=87, + number=96, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_interest_error', full_name='google.ads.googleads.v5.errors.ErrorCode.custom_interest_error', index=88, + number=97, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment_error', full_name='google.ads.googleads.v5.errors.ErrorCode.campaign_experiment_error', index=89, + number=98, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_item_error', full_name='google.ads.googleads.v5.errors.ErrorCode.extension_feed_item_error', index=90, + number=100, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_parameter_error', full_name='google.ads.googleads.v5.errors.ErrorCode.ad_parameter_error', index=91, + number=101, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_validation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_item_validation_error', index=92, + number=102, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_setting_error', full_name='google.ads.googleads.v5.errors.ErrorCode.extension_setting_error', index=93, + number=103, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target_error', full_name='google.ads.googleads.v5.errors.ErrorCode.feed_item_target_error', index=94, + number=104, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_violation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.policy_violation_error', index=95, + number=105, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.errors.ErrorCode.partial_failure_error', index=96, + number=112, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_validation_parameter_error', full_name='google.ads.googleads.v5.errors.ErrorCode.policy_validation_parameter_error', index=97, + number=114, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size_limit_error', full_name='google.ads.googleads.v5.errors.ErrorCode.size_limit_error', index=98, + number=118, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='offline_user_data_job_error', full_name='google.ads.googleads.v5.errors.ErrorCode.offline_user_data_job_error', index=99, + number=119, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='not_allowlisted_error', full_name='google.ads.googleads.v5.errors.ErrorCode.not_allowlisted_error', index=100, + number=137, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manager_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.manager_link_error', index=101, + number=121, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code_error', full_name='google.ads.googleads.v5.errors.ErrorCode.currency_code_error', index=102, + number=122, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='access_invitation_error', full_name='google.ads.googleads.v5.errors.ErrorCode.access_invitation_error', index=103, + number=124, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reach_plan_error', full_name='google.ads.googleads.v5.errors.ErrorCode.reach_plan_error', index=104, + number=125, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='invoice_error', full_name='google.ads.googleads.v5.errors.ErrorCode.invoice_error', index=105, + number=126, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account_error', full_name='google.ads.googleads.v5.errors.ErrorCode.payments_account_error', index=106, + number=127, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_zone_error', full_name='google.ads.googleads.v5.errors.ErrorCode.time_zone_error', index=107, + number=128, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.asset_link_error', index=108, + number=129, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_data_error', full_name='google.ads.googleads.v5.errors.ErrorCode.user_data_error', index=109, + number=130, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='batch_job_error', full_name='google.ads.googleads.v5.errors.ErrorCode.batch_job_error', index=110, + number=131, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.account_link_error', index=111, + number=134, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='third_party_app_analytics_link_error', full_name='google.ads.googleads.v5.errors.ErrorCode.third_party_app_analytics_link_error', index=112, + number=135, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='error_code', full_name='google.ads.googleads.v5.errors.ErrorCode.error_code', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7908, + serialized_end=19781, +) + + +_ERRORLOCATION_FIELDPATHELEMENT = _descriptor.Descriptor( + name='FieldPathElement', + full_name='google.ads.googleads.v5.errors.ErrorLocation.FieldPathElement', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='field_name', full_name='google.ads.googleads.v5.errors.ErrorLocation.FieldPathElement.field_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='index', full_name='google.ads.googleads.v5.errors.ErrorLocation.FieldPathElement.index', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=19894, + serialized_end=19976, +) + +_ERRORLOCATION = _descriptor.Descriptor( + name='ErrorLocation', + full_name='google.ads.googleads.v5.errors.ErrorLocation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='field_path_elements', full_name='google.ads.googleads.v5.errors.ErrorLocation.field_path_elements', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_ERRORLOCATION_FIELDPATHELEMENT, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=19784, + serialized_end=19976, +) + + +_ERRORDETAILS = _descriptor.Descriptor( + name='ErrorDetails', + full_name='google.ads.googleads.v5.errors.ErrorDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='unpublished_error_code', full_name='google.ads.googleads.v5.errors.ErrorDetails.unpublished_error_code', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_violation_details', full_name='google.ads.googleads.v5.errors.ErrorDetails.policy_violation_details', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_finding_details', full_name='google.ads.googleads.v5.errors.ErrorDetails.policy_finding_details', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quota_error_details', full_name='google.ads.googleads.v5.errors.ErrorDetails.quota_error_details', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=19979, + serialized_end=20281, +) + + +_POLICYVIOLATIONDETAILS = _descriptor.Descriptor( + name='PolicyViolationDetails', + full_name='google.ads.googleads.v5.errors.PolicyViolationDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='external_policy_description', full_name='google.ads.googleads.v5.errors.PolicyViolationDetails.external_policy_description', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='key', full_name='google.ads.googleads.v5.errors.PolicyViolationDetails.key', index=1, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='external_policy_name', full_name='google.ads.googleads.v5.errors.PolicyViolationDetails.external_policy_name', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_exemptible', full_name='google.ads.googleads.v5.errors.PolicyViolationDetails.is_exemptible', index=3, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=20284, + serialized_end=20463, +) + + +_POLICYFINDINGDETAILS = _descriptor.Descriptor( + name='PolicyFindingDetails', + full_name='google.ads.googleads.v5.errors.PolicyFindingDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='policy_topic_entries', full_name='google.ads.googleads.v5.errors.PolicyFindingDetails.policy_topic_entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=20465, + serialized_end=20567, +) + + +_QUOTAERRORDETAILS = _descriptor.Descriptor( + name='QuotaErrorDetails', + full_name='google.ads.googleads.v5.errors.QuotaErrorDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='rate_scope', full_name='google.ads.googleads.v5.errors.QuotaErrorDetails.rate_scope', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='rate_name', full_name='google.ads.googleads.v5.errors.QuotaErrorDetails.rate_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='retry_delay', full_name='google.ads.googleads.v5.errors.QuotaErrorDetails.retry_delay', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUOTAERRORDETAILS_QUOTARATESCOPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=20570, + serialized_end=20818, +) + +_GOOGLEADSFAILURE.fields_by_name['errors'].message_type = _GOOGLEADSERROR +_GOOGLEADSERROR.fields_by_name['error_code'].message_type = _ERRORCODE +_GOOGLEADSERROR.fields_by_name['trigger'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_value__pb2._VALUE +_GOOGLEADSERROR.fields_by_name['location'].message_type = _ERRORLOCATION +_GOOGLEADSERROR.fields_by_name['details'].message_type = _ERRORDETAILS +_ERRORCODE.fields_by_name['request_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_request__error__pb2._REQUESTERRORENUM_REQUESTERROR +_ERRORCODE.fields_by_name['bidding_strategy_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__strategy__error__pb2._BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR +_ERRORCODE.fields_by_name['url_field_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_url__field__error__pb2._URLFIELDERRORENUM_URLFIELDERROR +_ERRORCODE.fields_by_name['list_operation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_list__operation__error__pb2._LISTOPERATIONERRORENUM_LISTOPERATIONERROR +_ERRORCODE.fields_by_name['query_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_query__error__pb2._QUERYERRORENUM_QUERYERROR +_ERRORCODE.fields_by_name['mutate_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_mutate__error__pb2._MUTATEERRORENUM_MUTATEERROR +_ERRORCODE.fields_by_name['field_mask_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__mask__error__pb2._FIELDMASKERRORENUM_FIELDMASKERROR +_ERRORCODE.fields_by_name['authorization_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authorization__error__pb2._AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR +_ERRORCODE.fields_by_name['internal_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_internal__error__pb2._INTERNALERRORENUM_INTERNALERROR +_ERRORCODE.fields_by_name['quota_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_quota__error__pb2._QUOTAERRORENUM_QUOTAERROR +_ERRORCODE.fields_by_name['ad_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__error__pb2._ADERRORENUM_ADERROR +_ERRORCODE.fields_by_name['ad_group_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__error__pb2._ADGROUPERRORENUM_ADGROUPERROR +_ERRORCODE.fields_by_name['campaign_budget_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__budget__error__pb2._CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR +_ERRORCODE.fields_by_name['campaign_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__error__pb2._CAMPAIGNERRORENUM_CAMPAIGNERROR +_ERRORCODE.fields_by_name['authentication_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_authentication__error__pb2._AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR +_ERRORCODE.fields_by_name['ad_group_criterion_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2._ADGROUPCRITERIONERRORENUM_ADGROUPCRITERIONERROR +_ERRORCODE.fields_by_name['ad_customizer_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__customizer__error__pb2._ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR +_ERRORCODE.fields_by_name['ad_group_ad_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__ad__error__pb2._ADGROUPADERRORENUM_ADGROUPADERROR +_ERRORCODE.fields_by_name['ad_sharing_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__sharing__error__pb2._ADSHARINGERRORENUM_ADSHARINGERROR +_ERRORCODE.fields_by_name['adx_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_adx__error__pb2._ADXERRORENUM_ADXERROR +_ERRORCODE.fields_by_name['asset_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__error__pb2._ASSETERRORENUM_ASSETERROR +_ERRORCODE.fields_by_name['bidding_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_bidding__error__pb2._BIDDINGERRORENUM_BIDDINGERROR +_ERRORCODE.fields_by_name['campaign_criterion_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__criterion__error__pb2._CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR +_ERRORCODE.fields_by_name['collection_size_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_collection__size__error__pb2._COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR +_ERRORCODE.fields_by_name['country_code_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_country__code__error__pb2._COUNTRYCODEERRORENUM_COUNTRYCODEERROR +_ERRORCODE.fields_by_name['criterion_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_criterion__error__pb2._CRITERIONERRORENUM_CRITERIONERROR +_ERRORCODE.fields_by_name['customer_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__error__pb2._CUSTOMERERRORENUM_CUSTOMERERROR +_ERRORCODE.fields_by_name['date_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__error__pb2._DATEERRORENUM_DATEERROR +_ERRORCODE.fields_by_name['date_range_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_date__range__error__pb2._DATERANGEERRORENUM_DATERANGEERROR +_ERRORCODE.fields_by_name['distinct_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_distinct__error__pb2._DISTINCTERRORENUM_DISTINCTERROR +_ERRORCODE.fields_by_name['feed_attribute_reference_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2._FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR +_ERRORCODE.fields_by_name['function_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__error__pb2._FUNCTIONERRORENUM_FUNCTIONERROR +_ERRORCODE.fields_by_name['function_parsing_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_function__parsing__error__pb2._FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR +_ERRORCODE.fields_by_name['id_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_id__error__pb2._IDERRORENUM_IDERROR +_ERRORCODE.fields_by_name['image_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_image__error__pb2._IMAGEERRORENUM_IMAGEERROR +_ERRORCODE.fields_by_name['language_code_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_language__code__error__pb2._LANGUAGECODEERRORENUM_LANGUAGECODEERROR +_ERRORCODE.fields_by_name['media_bundle_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__bundle__error__pb2._MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR +_ERRORCODE.fields_by_name['media_upload_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__upload__error__pb2._MEDIAUPLOADERRORENUM_MEDIAUPLOADERROR +_ERRORCODE.fields_by_name['media_file_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_media__file__error__pb2._MEDIAFILEERRORENUM_MEDIAFILEERROR +_ERRORCODE.fields_by_name['multiplier_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_multiplier__error__pb2._MULTIPLIERERRORENUM_MULTIPLIERERROR +_ERRORCODE.fields_by_name['new_resource_creation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_new__resource__creation__error__pb2._NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR +_ERRORCODE.fields_by_name['not_empty_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__empty__error__pb2._NOTEMPTYERRORENUM_NOTEMPTYERROR +_ERRORCODE.fields_by_name['null_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_null__error__pb2._NULLERRORENUM_NULLERROR +_ERRORCODE.fields_by_name['operator_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operator__error__pb2._OPERATORERRORENUM_OPERATORERROR +_ERRORCODE.fields_by_name['range_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_range__error__pb2._RANGEERRORENUM_RANGEERROR +_ERRORCODE.fields_by_name['recommendation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_recommendation__error__pb2._RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR +_ERRORCODE.fields_by_name['region_code_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_region__code__error__pb2._REGIONCODEERRORENUM_REGIONCODEERROR +_ERRORCODE.fields_by_name['setting_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_setting__error__pb2._SETTINGERRORENUM_SETTINGERROR +_ERRORCODE.fields_by_name['string_format_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__format__error__pb2._STRINGFORMATERRORENUM_STRINGFORMATERROR +_ERRORCODE.fields_by_name['string_length_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_string__length__error__pb2._STRINGLENGTHERRORENUM_STRINGLENGTHERROR +_ERRORCODE.fields_by_name['operation_access_denied_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_operation__access__denied__error__pb2._OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR +_ERRORCODE.fields_by_name['resource_access_denied_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__access__denied__error__pb2._RESOURCEACCESSDENIEDERRORENUM_RESOURCEACCESSDENIEDERROR +_ERRORCODE.fields_by_name['resource_count_limit_exceeded_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2._RESOURCECOUNTLIMITEXCEEDEDERRORENUM_RESOURCECOUNTLIMITEXCEEDEDERROR +_ERRORCODE.fields_by_name['youtube_video_registration_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_youtube__video__registration__error__pb2._YOUTUBEVIDEOREGISTRATIONERRORENUM_YOUTUBEVIDEOREGISTRATIONERROR +_ERRORCODE.fields_by_name['ad_group_bid_modifier_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2._ADGROUPBIDMODIFIERERRORENUM_ADGROUPBIDMODIFIERERROR +_ERRORCODE.fields_by_name['context_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_context__error__pb2._CONTEXTERRORENUM_CONTEXTERROR +_ERRORCODE.fields_by_name['field_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_field__error__pb2._FIELDERRORENUM_FIELDERROR +_ERRORCODE.fields_by_name['shared_set_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__set__error__pb2._SHAREDSETERRORENUM_SHAREDSETERROR +_ERRORCODE.fields_by_name['shared_criterion_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_shared__criterion__error__pb2._SHAREDCRITERIONERRORENUM_SHAREDCRITERIONERROR +_ERRORCODE.fields_by_name['campaign_shared_set_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__shared__set__error__pb2._CAMPAIGNSHAREDSETERRORENUM_CAMPAIGNSHAREDSETERROR +_ERRORCODE.fields_by_name['conversion_action_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__action__error__pb2._CONVERSIONACTIONERRORENUM_CONVERSIONACTIONERROR +_ERRORCODE.fields_by_name['conversion_adjustment_upload_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__adjustment__upload__error__pb2._CONVERSIONADJUSTMENTUPLOADERRORENUM_CONVERSIONADJUSTMENTUPLOADERROR +_ERRORCODE.fields_by_name['conversion_upload_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_conversion__upload__error__pb2._CONVERSIONUPLOADERRORENUM_CONVERSIONUPLOADERROR +_ERRORCODE.fields_by_name['header_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_header__error__pb2._HEADERERRORENUM_HEADERERROR +_ERRORCODE.fields_by_name['database_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_database__error__pb2._DATABASEERRORENUM_DATABASEERROR +_ERRORCODE.fields_by_name['policy_finding_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__finding__error__pb2._POLICYFINDINGERRORENUM_POLICYFINDINGERROR +_ERRORCODE.fields_by_name['enum_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_enum__error__pb2._ENUMERRORENUM_ENUMERROR +_ERRORCODE.fields_by_name['keyword_plan_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__error__pb2._KEYWORDPLANERRORENUM_KEYWORDPLANERROR +_ERRORCODE.fields_by_name['keyword_plan_campaign_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__error__pb2._KEYWORDPLANCAMPAIGNERRORENUM_KEYWORDPLANCAMPAIGNERROR +_ERRORCODE.fields_by_name['keyword_plan_campaign_keyword_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__campaign__keyword__error__pb2._KEYWORDPLANCAMPAIGNKEYWORDERRORENUM_KEYWORDPLANCAMPAIGNKEYWORDERROR +_ERRORCODE.fields_by_name['keyword_plan_ad_group_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__error__pb2._KEYWORDPLANADGROUPERRORENUM_KEYWORDPLANADGROUPERROR +_ERRORCODE.fields_by_name['keyword_plan_ad_group_keyword_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__ad__group__keyword__error__pb2._KEYWORDPLANADGROUPKEYWORDERRORENUM_KEYWORDPLANADGROUPKEYWORDERROR +_ERRORCODE.fields_by_name['keyword_plan_idea_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_keyword__plan__idea__error__pb2._KEYWORDPLANIDEAERRORENUM_KEYWORDPLANIDEAERROR +_ERRORCODE.fields_by_name['account_budget_proposal_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__budget__proposal__error__pb2._ACCOUNTBUDGETPROPOSALERRORENUM_ACCOUNTBUDGETPROPOSALERROR +_ERRORCODE.fields_by_name['user_list_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__list__error__pb2._USERLISTERRORENUM_USERLISTERROR +_ERRORCODE.fields_by_name['change_status_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_change__status__error__pb2._CHANGESTATUSERRORENUM_CHANGESTATUSERROR +_ERRORCODE.fields_by_name['feed_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__error__pb2._FEEDERRORENUM_FEEDERROR +_ERRORCODE.fields_by_name['geo_target_constant_suggestion_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_geo__target__constant__suggestion__error__pb2._GEOTARGETCONSTANTSUGGESTIONERRORENUM_GEOTARGETCONSTANTSUGGESTIONERROR +_ERRORCODE.fields_by_name['campaign_draft_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__draft__error__pb2._CAMPAIGNDRAFTERRORENUM_CAMPAIGNDRAFTERROR +_ERRORCODE.fields_by_name['feed_item_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__error__pb2._FEEDITEMERRORENUM_FEEDITEMERROR +_ERRORCODE.fields_by_name['label_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_label__error__pb2._LABELERRORENUM_LABELERROR +_ERRORCODE.fields_by_name['billing_setup_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_billing__setup__error__pb2._BILLINGSETUPERRORENUM_BILLINGSETUPERROR +_ERRORCODE.fields_by_name['customer_client_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__client__link__error__pb2._CUSTOMERCLIENTLINKERRORENUM_CUSTOMERCLIENTLINKERROR +_ERRORCODE.fields_by_name['customer_manager_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__manager__link__error__pb2._CUSTOMERMANAGERLINKERRORENUM_CUSTOMERMANAGERLINKERROR +_ERRORCODE.fields_by_name['feed_mapping_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__mapping__error__pb2._FEEDMAPPINGERRORENUM_FEEDMAPPINGERROR +_ERRORCODE.fields_by_name['customer_feed_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_customer__feed__error__pb2._CUSTOMERFEEDERRORENUM_CUSTOMERFEEDERROR +_ERRORCODE.fields_by_name['ad_group_feed_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__group__feed__error__pb2._ADGROUPFEEDERRORENUM_ADGROUPFEEDERROR +_ERRORCODE.fields_by_name['campaign_feed_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__feed__error__pb2._CAMPAIGNFEEDERRORENUM_CAMPAIGNFEEDERROR +_ERRORCODE.fields_by_name['custom_interest_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_custom__interest__error__pb2._CUSTOMINTERESTERRORENUM_CUSTOMINTERESTERROR +_ERRORCODE.fields_by_name['campaign_experiment_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_campaign__experiment__error__pb2._CAMPAIGNEXPERIMENTERRORENUM_CAMPAIGNEXPERIMENTERROR +_ERRORCODE.fields_by_name['extension_feed_item_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__feed__item__error__pb2._EXTENSIONFEEDITEMERRORENUM_EXTENSIONFEEDITEMERROR +_ERRORCODE.fields_by_name['ad_parameter_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_ad__parameter__error__pb2._ADPARAMETERERRORENUM_ADPARAMETERERROR +_ERRORCODE.fields_by_name['feed_item_validation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2._FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR +_ERRORCODE.fields_by_name['extension_setting_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_extension__setting__error__pb2._EXTENSIONSETTINGERRORENUM_EXTENSIONSETTINGERROR +_ERRORCODE.fields_by_name['feed_item_target_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__target__error__pb2._FEEDITEMTARGETERRORENUM_FEEDITEMTARGETERROR +_ERRORCODE.fields_by_name['policy_violation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__violation__error__pb2._POLICYVIOLATIONERRORENUM_POLICYVIOLATIONERROR +_ERRORCODE.fields_by_name['partial_failure_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_partial__failure__error__pb2._PARTIALFAILUREERRORENUM_PARTIALFAILUREERROR +_ERRORCODE.fields_by_name['policy_validation_parameter_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_policy__validation__parameter__error__pb2._POLICYVALIDATIONPARAMETERERRORENUM_POLICYVALIDATIONPARAMETERERROR +_ERRORCODE.fields_by_name['size_limit_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_size__limit__error__pb2._SIZELIMITERRORENUM_SIZELIMITERROR +_ERRORCODE.fields_by_name['offline_user_data_job_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_offline__user__data__job__error__pb2._OFFLINEUSERDATAJOBERRORENUM_OFFLINEUSERDATAJOBERROR +_ERRORCODE.fields_by_name['not_allowlisted_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_not__allowlisted__error__pb2._NOTALLOWLISTEDERRORENUM_NOTALLOWLISTEDERROR +_ERRORCODE.fields_by_name['manager_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_manager__link__error__pb2._MANAGERLINKERRORENUM_MANAGERLINKERROR +_ERRORCODE.fields_by_name['currency_code_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_currency__code__error__pb2._CURRENCYCODEERRORENUM_CURRENCYCODEERROR +_ERRORCODE.fields_by_name['access_invitation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_access__invitation__error__pb2._ACCESSINVITATIONERRORENUM_ACCESSINVITATIONERROR +_ERRORCODE.fields_by_name['reach_plan_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_reach__plan__error__pb2._REACHPLANERRORENUM_REACHPLANERROR +_ERRORCODE.fields_by_name['invoice_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_invoice__error__pb2._INVOICEERRORENUM_INVOICEERROR +_ERRORCODE.fields_by_name['payments_account_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_payments__account__error__pb2._PAYMENTSACCOUNTERRORENUM_PAYMENTSACCOUNTERROR +_ERRORCODE.fields_by_name['time_zone_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_time__zone__error__pb2._TIMEZONEERRORENUM_TIMEZONEERROR +_ERRORCODE.fields_by_name['asset_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_asset__link__error__pb2._ASSETLINKERRORENUM_ASSETLINKERROR +_ERRORCODE.fields_by_name['user_data_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_user__data__error__pb2._USERDATAERRORENUM_USERDATAERROR +_ERRORCODE.fields_by_name['batch_job_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_batch__job__error__pb2._BATCHJOBERRORENUM_BATCHJOBERROR +_ERRORCODE.fields_by_name['account_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_account__link__error__pb2._ACCOUNTLINKERRORENUM_ACCOUNTLINKERROR +_ERRORCODE.fields_by_name['third_party_app_analytics_link_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_third__party__app__analytics__link__error__pb2._THIRDPARTYAPPANALYTICSLINKERRORENUM_THIRDPARTYAPPANALYTICSLINKERROR +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['request_error']) +_ERRORCODE.fields_by_name['request_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['bidding_strategy_error']) +_ERRORCODE.fields_by_name['bidding_strategy_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['url_field_error']) +_ERRORCODE.fields_by_name['url_field_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['list_operation_error']) +_ERRORCODE.fields_by_name['list_operation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['query_error']) +_ERRORCODE.fields_by_name['query_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['mutate_error']) +_ERRORCODE.fields_by_name['mutate_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['field_mask_error']) +_ERRORCODE.fields_by_name['field_mask_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['authorization_error']) +_ERRORCODE.fields_by_name['authorization_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['internal_error']) +_ERRORCODE.fields_by_name['internal_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['quota_error']) +_ERRORCODE.fields_by_name['quota_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_error']) +_ERRORCODE.fields_by_name['ad_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_error']) +_ERRORCODE.fields_by_name['ad_group_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_budget_error']) +_ERRORCODE.fields_by_name['campaign_budget_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_error']) +_ERRORCODE.fields_by_name['campaign_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['authentication_error']) +_ERRORCODE.fields_by_name['authentication_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_criterion_error']) +_ERRORCODE.fields_by_name['ad_group_criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_customizer_error']) +_ERRORCODE.fields_by_name['ad_customizer_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_ad_error']) +_ERRORCODE.fields_by_name['ad_group_ad_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_sharing_error']) +_ERRORCODE.fields_by_name['ad_sharing_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['adx_error']) +_ERRORCODE.fields_by_name['adx_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['asset_error']) +_ERRORCODE.fields_by_name['asset_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['bidding_error']) +_ERRORCODE.fields_by_name['bidding_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_criterion_error']) +_ERRORCODE.fields_by_name['campaign_criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['collection_size_error']) +_ERRORCODE.fields_by_name['collection_size_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['country_code_error']) +_ERRORCODE.fields_by_name['country_code_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['criterion_error']) +_ERRORCODE.fields_by_name['criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['customer_error']) +_ERRORCODE.fields_by_name['customer_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['date_error']) +_ERRORCODE.fields_by_name['date_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['date_range_error']) +_ERRORCODE.fields_by_name['date_range_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['distinct_error']) +_ERRORCODE.fields_by_name['distinct_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_attribute_reference_error']) +_ERRORCODE.fields_by_name['feed_attribute_reference_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['function_error']) +_ERRORCODE.fields_by_name['function_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['function_parsing_error']) +_ERRORCODE.fields_by_name['function_parsing_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['id_error']) +_ERRORCODE.fields_by_name['id_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['image_error']) +_ERRORCODE.fields_by_name['image_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['language_code_error']) +_ERRORCODE.fields_by_name['language_code_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['media_bundle_error']) +_ERRORCODE.fields_by_name['media_bundle_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['media_upload_error']) +_ERRORCODE.fields_by_name['media_upload_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['media_file_error']) +_ERRORCODE.fields_by_name['media_file_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['multiplier_error']) +_ERRORCODE.fields_by_name['multiplier_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['new_resource_creation_error']) +_ERRORCODE.fields_by_name['new_resource_creation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['not_empty_error']) +_ERRORCODE.fields_by_name['not_empty_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['null_error']) +_ERRORCODE.fields_by_name['null_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['operator_error']) +_ERRORCODE.fields_by_name['operator_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['range_error']) +_ERRORCODE.fields_by_name['range_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['recommendation_error']) +_ERRORCODE.fields_by_name['recommendation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['region_code_error']) +_ERRORCODE.fields_by_name['region_code_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['setting_error']) +_ERRORCODE.fields_by_name['setting_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['string_format_error']) +_ERRORCODE.fields_by_name['string_format_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['string_length_error']) +_ERRORCODE.fields_by_name['string_length_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['operation_access_denied_error']) +_ERRORCODE.fields_by_name['operation_access_denied_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['resource_access_denied_error']) +_ERRORCODE.fields_by_name['resource_access_denied_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['resource_count_limit_exceeded_error']) +_ERRORCODE.fields_by_name['resource_count_limit_exceeded_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['youtube_video_registration_error']) +_ERRORCODE.fields_by_name['youtube_video_registration_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_bid_modifier_error']) +_ERRORCODE.fields_by_name['ad_group_bid_modifier_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['context_error']) +_ERRORCODE.fields_by_name['context_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['field_error']) +_ERRORCODE.fields_by_name['field_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['shared_set_error']) +_ERRORCODE.fields_by_name['shared_set_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['shared_criterion_error']) +_ERRORCODE.fields_by_name['shared_criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_shared_set_error']) +_ERRORCODE.fields_by_name['campaign_shared_set_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['conversion_action_error']) +_ERRORCODE.fields_by_name['conversion_action_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['conversion_adjustment_upload_error']) +_ERRORCODE.fields_by_name['conversion_adjustment_upload_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['conversion_upload_error']) +_ERRORCODE.fields_by_name['conversion_upload_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['header_error']) +_ERRORCODE.fields_by_name['header_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['database_error']) +_ERRORCODE.fields_by_name['database_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['policy_finding_error']) +_ERRORCODE.fields_by_name['policy_finding_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['enum_error']) +_ERRORCODE.fields_by_name['enum_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_error']) +_ERRORCODE.fields_by_name['keyword_plan_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_campaign_error']) +_ERRORCODE.fields_by_name['keyword_plan_campaign_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_campaign_keyword_error']) +_ERRORCODE.fields_by_name['keyword_plan_campaign_keyword_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_ad_group_error']) +_ERRORCODE.fields_by_name['keyword_plan_ad_group_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_ad_group_keyword_error']) +_ERRORCODE.fields_by_name['keyword_plan_ad_group_keyword_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['keyword_plan_idea_error']) +_ERRORCODE.fields_by_name['keyword_plan_idea_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['account_budget_proposal_error']) +_ERRORCODE.fields_by_name['account_budget_proposal_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['user_list_error']) +_ERRORCODE.fields_by_name['user_list_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['change_status_error']) +_ERRORCODE.fields_by_name['change_status_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_error']) +_ERRORCODE.fields_by_name['feed_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['geo_target_constant_suggestion_error']) +_ERRORCODE.fields_by_name['geo_target_constant_suggestion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_draft_error']) +_ERRORCODE.fields_by_name['campaign_draft_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_item_error']) +_ERRORCODE.fields_by_name['feed_item_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['label_error']) +_ERRORCODE.fields_by_name['label_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['billing_setup_error']) +_ERRORCODE.fields_by_name['billing_setup_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['customer_client_link_error']) +_ERRORCODE.fields_by_name['customer_client_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['customer_manager_link_error']) +_ERRORCODE.fields_by_name['customer_manager_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_mapping_error']) +_ERRORCODE.fields_by_name['feed_mapping_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['customer_feed_error']) +_ERRORCODE.fields_by_name['customer_feed_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_feed_error']) +_ERRORCODE.fields_by_name['ad_group_feed_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_feed_error']) +_ERRORCODE.fields_by_name['campaign_feed_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['custom_interest_error']) +_ERRORCODE.fields_by_name['custom_interest_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_experiment_error']) +_ERRORCODE.fields_by_name['campaign_experiment_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['extension_feed_item_error']) +_ERRORCODE.fields_by_name['extension_feed_item_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_parameter_error']) +_ERRORCODE.fields_by_name['ad_parameter_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_item_validation_error']) +_ERRORCODE.fields_by_name['feed_item_validation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['extension_setting_error']) +_ERRORCODE.fields_by_name['extension_setting_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_item_target_error']) +_ERRORCODE.fields_by_name['feed_item_target_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['policy_violation_error']) +_ERRORCODE.fields_by_name['policy_violation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['partial_failure_error']) +_ERRORCODE.fields_by_name['partial_failure_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['policy_validation_parameter_error']) +_ERRORCODE.fields_by_name['policy_validation_parameter_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['size_limit_error']) +_ERRORCODE.fields_by_name['size_limit_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['offline_user_data_job_error']) +_ERRORCODE.fields_by_name['offline_user_data_job_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['not_allowlisted_error']) +_ERRORCODE.fields_by_name['not_allowlisted_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['manager_link_error']) +_ERRORCODE.fields_by_name['manager_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['currency_code_error']) +_ERRORCODE.fields_by_name['currency_code_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['access_invitation_error']) +_ERRORCODE.fields_by_name['access_invitation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['reach_plan_error']) +_ERRORCODE.fields_by_name['reach_plan_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['invoice_error']) +_ERRORCODE.fields_by_name['invoice_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['payments_account_error']) +_ERRORCODE.fields_by_name['payments_account_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['time_zone_error']) +_ERRORCODE.fields_by_name['time_zone_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['asset_link_error']) +_ERRORCODE.fields_by_name['asset_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['user_data_error']) +_ERRORCODE.fields_by_name['user_data_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['batch_job_error']) +_ERRORCODE.fields_by_name['batch_job_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['account_link_error']) +_ERRORCODE.fields_by_name['account_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['third_party_app_analytics_link_error']) +_ERRORCODE.fields_by_name['third_party_app_analytics_link_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORLOCATION_FIELDPATHELEMENT.fields_by_name['index'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ERRORLOCATION_FIELDPATHELEMENT.containing_type = _ERRORLOCATION +_ERRORLOCATION.fields_by_name['field_path_elements'].message_type = _ERRORLOCATION_FIELDPATHELEMENT +_ERRORDETAILS.fields_by_name['policy_violation_details'].message_type = _POLICYVIOLATIONDETAILS +_ERRORDETAILS.fields_by_name['policy_finding_details'].message_type = _POLICYFINDINGDETAILS +_ERRORDETAILS.fields_by_name['quota_error_details'].message_type = _QUOTAERRORDETAILS +_POLICYVIOLATIONDETAILS.fields_by_name['key'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYVIOLATIONKEY +_POLICYFINDINGDETAILS.fields_by_name['policy_topic_entries'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYTOPICENTRY +_QUOTAERRORDETAILS.fields_by_name['rate_scope'].enum_type = _QUOTAERRORDETAILS_QUOTARATESCOPE +_QUOTAERRORDETAILS.fields_by_name['retry_delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION +_QUOTAERRORDETAILS_QUOTARATESCOPE.containing_type = _QUOTAERRORDETAILS +DESCRIPTOR.message_types_by_name['GoogleAdsFailure'] = _GOOGLEADSFAILURE +DESCRIPTOR.message_types_by_name['GoogleAdsError'] = _GOOGLEADSERROR +DESCRIPTOR.message_types_by_name['ErrorCode'] = _ERRORCODE +DESCRIPTOR.message_types_by_name['ErrorLocation'] = _ERRORLOCATION +DESCRIPTOR.message_types_by_name['ErrorDetails'] = _ERRORDETAILS +DESCRIPTOR.message_types_by_name['PolicyViolationDetails'] = _POLICYVIOLATIONDETAILS +DESCRIPTOR.message_types_by_name['PolicyFindingDetails'] = _POLICYFINDINGDETAILS +DESCRIPTOR.message_types_by_name['QuotaErrorDetails'] = _QUOTAERRORDETAILS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GoogleAdsFailure = _reflection.GeneratedProtocolMessageType('GoogleAdsFailure', (_message.Message,), { + 'DESCRIPTOR' : _GOOGLEADSFAILURE, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Describes how a GoogleAds API call failed. It's returned inside + google.rpc.Status.details when a call fails. + + Attributes: + errors: + The list of errors that occurred. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.GoogleAdsFailure) + }) +_sym_db.RegisterMessage(GoogleAdsFailure) + +GoogleAdsError = _reflection.GeneratedProtocolMessageType('GoogleAdsError', (_message.Message,), { + 'DESCRIPTOR' : _GOOGLEADSERROR, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """GoogleAds-specific error. + + Attributes: + error_code: + An enum value that indicates which error occurred. + message: + A human-readable description of the error. + trigger: + The value that triggered the error. + location: + Describes the part of the request proto that caused the error. + details: + Additional error details, which are returned by certain error + codes. Most error codes do not include details. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.GoogleAdsError) + }) +_sym_db.RegisterMessage(GoogleAdsError) + +ErrorCode = _reflection.GeneratedProtocolMessageType('ErrorCode', (_message.Message,), { + 'DESCRIPTOR' : _ERRORCODE, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """The error reason represented by type and enum. + + Attributes: + error_code: + The list of error enums + request_error: + An error caused by the request + bidding_strategy_error: + An error with a Bidding Strategy mutate. + url_field_error: + An error with a URL field mutate. + list_operation_error: + An error with a list operation. + query_error: + An error with an AWQL query + mutate_error: + An error with a mutate + field_mask_error: + An error with a field mask + authorization_error: + An error encountered when trying to authorize a user. + internal_error: + An unexpected server-side error. + quota_error: + An error with the amonut of quota remaining. + ad_error: + An error with an Ad Group Ad mutate. + ad_group_error: + An error with an Ad Group mutate. + campaign_budget_error: + An error with a Campaign Budget mutate. + campaign_error: + An error with a Campaign mutate. + authentication_error: + Indicates failure to properly authenticate user. + ad_group_criterion_error: + Indicates failure to properly authenticate user. + ad_customizer_error: + The reasons for the ad customizer error + ad_group_ad_error: + The reasons for the ad group ad error + ad_sharing_error: + The reasons for the ad sharing error + adx_error: + The reasons for the adx error + asset_error: + The reasons for the asset error + bidding_error: + The reasons for the bidding errors + campaign_criterion_error: + The reasons for the campaign criterion error + collection_size_error: + The reasons for the collection size error + country_code_error: + The reasons for the country code error + criterion_error: + The reasons for the criterion error + customer_error: + The reasons for the customer error + date_error: + The reasons for the date error + date_range_error: + The reasons for the date range error + distinct_error: + The reasons for the distinct error + feed_attribute_reference_error: + The reasons for the feed attribute reference error + function_error: + The reasons for the function error + function_parsing_error: + The reasons for the function parsing error + id_error: + The reasons for the id error + image_error: + The reasons for the image error + language_code_error: + The reasons for the language code error + media_bundle_error: + The reasons for the media bundle error + media_upload_error: + The reasons for media uploading errors. + media_file_error: + The reasons for the media file error + multiplier_error: + The reasons for the multiplier error + new_resource_creation_error: + The reasons for the new resource creation error + not_empty_error: + The reasons for the not empty error + null_error: + The reasons for the null error + operator_error: + The reasons for the operator error + range_error: + The reasons for the range error + recommendation_error: + The reasons for error in applying a recommendation + region_code_error: + The reasons for the region code error + setting_error: + The reasons for the setting error + string_format_error: + The reasons for the string format error + string_length_error: + The reasons for the string length error + operation_access_denied_error: + The reasons for the operation access denied error + resource_access_denied_error: + The reasons for the resource access denied error + resource_count_limit_exceeded_error: + The reasons for the resource count limit exceeded error + youtube_video_registration_error: + The reasons for YouTube video registration errors. + ad_group_bid_modifier_error: + The reasons for the ad group bid modifier error + context_error: + The reasons for the context error + field_error: + The reasons for the field error + shared_set_error: + The reasons for the shared set error + shared_criterion_error: + The reasons for the shared criterion error + campaign_shared_set_error: + The reasons for the campaign shared set error + conversion_action_error: + The reasons for the conversion action error + conversion_adjustment_upload_error: + The reasons for the conversion adjustment upload error + conversion_upload_error: + The reasons for the conversion upload error + header_error: + The reasons for the header error. + database_error: + The reasons for the database error. + policy_finding_error: + The reasons for the policy finding error. + enum_error: + The reason for enum error. + keyword_plan_error: + The reason for keyword plan error. + keyword_plan_campaign_error: + The reason for keyword plan campaign error. + keyword_plan_campaign_keyword_error: + The reason for keyword plan campaign keyword error. + keyword_plan_ad_group_error: + The reason for keyword plan ad group error. + keyword_plan_ad_group_keyword_error: + The reason for keyword plan ad group keyword error. + keyword_plan_idea_error: + The reason for keyword idea error. + account_budget_proposal_error: + The reasons for account budget proposal errors. + user_list_error: + The reasons for the user list error + change_status_error: + The reasons for the change status error + feed_error: + The reasons for the feed error + geo_target_constant_suggestion_error: + The reasons for the geo target constant suggestion error. + campaign_draft_error: + The reasons for the campaign draft error + feed_item_error: + The reasons for the feed item error + label_error: + The reason for the label error. + billing_setup_error: + The reasons for the billing setup error + customer_client_link_error: + The reasons for the customer client link error + customer_manager_link_error: + The reasons for the customer manager link error + feed_mapping_error: + The reasons for the feed mapping error + customer_feed_error: + The reasons for the customer feed error + ad_group_feed_error: + The reasons for the ad group feed error + campaign_feed_error: + The reasons for the campaign feed error + custom_interest_error: + The reasons for the custom interest error + campaign_experiment_error: + The reasons for the campaign experiment error + extension_feed_item_error: + The reasons for the extension feed item error + ad_parameter_error: + The reasons for the ad parameter error + feed_item_validation_error: + The reasons for the feed item validation error + extension_setting_error: + The reasons for the extension setting error + feed_item_target_error: + The reasons for the feed item target error + policy_violation_error: + The reasons for the policy violation error + partial_failure_error: + The reasons for the mutate job error + policy_validation_parameter_error: + The reasons for the policy validation parameter error + size_limit_error: + The reasons for the size limit error + offline_user_data_job_error: + The reasons for the offline user data job error. + not_allowlisted_error: + The reasons for the not allowlisted error + manager_link_error: + The reasons for the manager link error + currency_code_error: + The reasons for the currency code error + access_invitation_error: + The reasons for the access invitation error + reach_plan_error: + The reasons for the reach plan error + invoice_error: + The reasons for the invoice error + payments_account_error: + The reasons for errors in payments accounts service + time_zone_error: + The reasons for the time zone error + asset_link_error: + The reasons for the asset link error + user_data_error: + The reasons for the user data error. + batch_job_error: + The reasons for the batch job error + account_link_error: + The reasons for the account link status change error + third_party_app_analytics_link_error: + The reasons for the third party app analytics link mutate + error + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ErrorCode) + }) +_sym_db.RegisterMessage(ErrorCode) + +ErrorLocation = _reflection.GeneratedProtocolMessageType('ErrorLocation', (_message.Message,), { + + 'FieldPathElement' : _reflection.GeneratedProtocolMessageType('FieldPathElement', (_message.Message,), { + 'DESCRIPTOR' : _ERRORLOCATION_FIELDPATHELEMENT, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """A part of a field path. + + Attributes: + field_name: + The name of a field or a oneof + index: + If field\_name is a repeated field, this is the element that + failed + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ErrorLocation.FieldPathElement) + }) + , + 'DESCRIPTOR' : _ERRORLOCATION, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Describes the part of the request proto that caused the error. + + Attributes: + field_path_elements: + A field path that indicates which field was invalid in the + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ErrorLocation) + }) +_sym_db.RegisterMessage(ErrorLocation) +_sym_db.RegisterMessage(ErrorLocation.FieldPathElement) + +ErrorDetails = _reflection.GeneratedProtocolMessageType('ErrorDetails', (_message.Message,), { + 'DESCRIPTOR' : _ERRORDETAILS, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Additional error details. + + Attributes: + unpublished_error_code: + The error code that should have been returned, but wasn't. + This is used when the error code is not published in the + client specified version. + policy_violation_details: + Describes an ad policy violation. + policy_finding_details: + Describes policy violation findings. + quota_error_details: + Details on the quota error, including the scope (account or + developer), the rate bucket name and the retry delay. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ErrorDetails) + }) +_sym_db.RegisterMessage(ErrorDetails) + +PolicyViolationDetails = _reflection.GeneratedProtocolMessageType('PolicyViolationDetails', (_message.Message,), { + 'DESCRIPTOR' : _POLICYVIOLATIONDETAILS, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Error returned as part of a mutate response. This error indicates + single policy violation by some text in one of the fields. + + Attributes: + external_policy_description: + Human readable description of policy violation. + key: + Unique identifier for this violation. If policy is exemptible, + this key may be used to request exemption. + external_policy_name: + Human readable name of the policy. + is_exemptible: + Whether user can file an exemption request for this violation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PolicyViolationDetails) + }) +_sym_db.RegisterMessage(PolicyViolationDetails) + +PolicyFindingDetails = _reflection.GeneratedProtocolMessageType('PolicyFindingDetails', (_message.Message,), { + 'DESCRIPTOR' : _POLICYFINDINGDETAILS, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Error returned as part of a mutate response. This error indicates one + or more policy findings in the fields of a resource. + + Attributes: + policy_topic_entries: + The list of policy topics for the resource. Contains the + PROHIBITED or FULLY\_LIMITED policy topic entries that + prevented the resource from being saved (among any other + entries the resource may also have). + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PolicyFindingDetails) + }) +_sym_db.RegisterMessage(PolicyFindingDetails) + +QuotaErrorDetails = _reflection.GeneratedProtocolMessageType('QuotaErrorDetails', (_message.Message,), { + 'DESCRIPTOR' : _QUOTAERRORDETAILS, + '__module__' : 'google.ads.googleads_v5.proto.errors.errors_pb2' + , + '__doc__': """Additional quota error details when there is QuotaError. + + Attributes: + rate_scope: + The rate scope of the quota limit. + rate_name: + The high level description of the quota bucket. Examples are + "Get requests for standard access" or "Requests per account". + retry_delay: + Backoff period that customers should wait before sending next + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.QuotaErrorDetails) + }) +_sym_db.RegisterMessage(QuotaErrorDetails) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/errors_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/errors_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/errors_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2.py b/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2.py new file mode 100644 index 000000000..a2a113273 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2.py @@ -0,0 +1,320 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/extension_feed_item_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/extension_feed_item_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\033ExtensionFeedItemErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/errors/extension_feed_item_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xf6\r\n\x1a\x45xtensionFeedItemErrorEnum\"\xd7\r\n\x16\x45xtensionFeedItemError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12VALUE_OUT_OF_RANGE\x10\x02\x12\x15\n\x11URL_LIST_TOO_LONG\x10\x03\x12\x32\n.CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING\x10\x04\x12\x1e\n\x1a\x43\x41NNOT_SET_WITH_FINAL_URLS\x10\x05\x12!\n\x1d\x43\x41NNOT_SET_WITHOUT_FINAL_URLS\x10\x06\x12\x18\n\x14INVALID_PHONE_NUMBER\x10\x07\x12*\n&PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY\x10\x08\x12-\n)CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED\x10\t\x12#\n\x1fPREMIUM_RATE_NUMBER_NOT_ALLOWED\x10\n\x12\x1a\n\x16\x44ISALLOWED_NUMBER_TYPE\x10\x0b\x12(\n$INVALID_DOMESTIC_PHONE_NUMBER_FORMAT\x10\x0c\x12#\n\x1fVANITY_PHONE_NUMBER_NOT_ALLOWED\x10\r\x12\"\n\x1eINVALID_CALL_CONVERSION_ACTION\x10\x0e\x12.\n*CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING\x10/\x12*\n&CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10\x10\x12\x30\n,CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED\x10\x11\x12\x12\n\x0eINVALID_APP_ID\x10\x12\x12&\n\"QUOTES_IN_REVIEW_EXTENSION_SNIPPET\x10\x13\x12\'\n#HYPHENS_IN_REVIEW_EXTENSION_SNIPPET\x10\x14\x12&\n\"REVIEW_EXTENSION_SOURCE_INELIGIBLE\x10\x15\x12(\n$SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT\x10\x16\x12\x1f\n\x1bINCONSISTENT_CURRENCY_CODES\x10\x17\x12*\n&PRICE_EXTENSION_HAS_DUPLICATED_HEADERS\x10\x18\x12\x34\n0PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION\x10\x19\x12%\n!PRICE_EXTENSION_HAS_TOO_FEW_ITEMS\x10\x1a\x12&\n\"PRICE_EXTENSION_HAS_TOO_MANY_ITEMS\x10\x1b\x12\x15\n\x11UNSUPPORTED_VALUE\x10\x1c\x12*\n&UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE\x10\x1d\x12\x1d\n\x19INVALID_DEVICE_PREFERENCE\x10\x1e\x12\x18\n\x14INVALID_SCHEDULE_END\x10\x1f\x12*\n&DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE\x10 \x12\x1b\n\x17INVALID_SNIPPETS_HEADER\x10!\x12\'\n#CANNOT_OPERATE_ON_REMOVED_FEED_ITEM\x10\"\x12<\n8PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY\x10#\x12(\n$CONFLICTING_CALL_CONVERSION_SETTINGS\x10$\x12\x1b\n\x17\x45XTENSION_TYPE_MISMATCH\x10%\x12\x1e\n\x1a\x45XTENSION_SUBTYPE_REQUIRED\x10&\x12\x1e\n\x1a\x45XTENSION_TYPE_UNSUPPORTED\x10\'\x12\x31\n-CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS\x10(\x12.\n*CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES\x10)\x12\x18\n\x14INVALID_PRICE_FORMAT\x10*\x12\x1a\n\x16PROMOTION_INVALID_TIME\x10+\x12%\n!TOO_MANY_DECIMAL_PLACES_SPECIFIED\x10,\x12$\n CONCRETE_EXTENSION_TYPE_REQUIRED\x10-\x12 \n\x1cSCHEDULE_END_NOT_AFTER_START\x10.B\xf6\x01\n\"com.google.ads.googleads.v5.errorsB\x1b\x45xtensionFeedItemErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EXTENSIONFEEDITEMERRORENUM_EXTENSIONFEEDITEMERROR = _descriptor.EnumDescriptor( + name='ExtensionFeedItemError', + full_name='google.ads.googleads.v5.errors.ExtensionFeedItemErrorEnum.ExtensionFeedItemError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_OUT_OF_RANGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_LIST_TOO_LONG', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_FINAL_URLS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITHOUT_FINAL_URLS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PHONE_NUMBER', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PREMIUM_RATE_NUMBER_NOT_ALLOWED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_NUMBER_TYPE', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DOMESTIC_PHONE_NUMBER_FORMAT', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VANITY_PHONE_NUMBER_NOT_ALLOWED', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_CONVERSION_ACTION', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING', index=15, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_APP_ID', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='QUOTES_IN_REVIEW_EXTENSION_SNIPPET', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HYPHENS_IN_REVIEW_EXTENSION_SNIPPET', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REVIEW_EXTENSION_SOURCE_INELIGIBLE', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_CURRENCY_CODES', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_DUPLICATED_HEADERS', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_TOO_FEW_ITEMS', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_TOO_MANY_ITEMS', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_VALUE', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE', index=29, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DEVICE_PREFERENCE', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SCHEDULE_END', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SNIPPETS_HEADER', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_REMOVED_FEED_ITEM', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY', index=35, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONFLICTING_CALL_CONVERSION_SETTINGS', index=36, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSION_TYPE_MISMATCH', index=37, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSION_SUBTYPE_REQUIRED', index=38, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSION_TYPE_UNSUPPORTED', index=39, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS', index=40, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES', index=41, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PRICE_FORMAT', index=42, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_INVALID_TIME', index=43, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_DECIMAL_PLACES_SPECIFIED', index=44, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONCRETE_EXTENSION_TYPE_REQUIRED', index=45, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCHEDULE_END_NOT_AFTER_START', index=46, number=46, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=166, + serialized_end=1917, +) +_sym_db.RegisterEnumDescriptor(_EXTENSIONFEEDITEMERRORENUM_EXTENSIONFEEDITEMERROR) + + +_EXTENSIONFEEDITEMERRORENUM = _descriptor.Descriptor( + name='ExtensionFeedItemErrorEnum', + full_name='google.ads.googleads.v5.errors.ExtensionFeedItemErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EXTENSIONFEEDITEMERRORENUM_EXTENSIONFEEDITEMERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=135, + serialized_end=1917, +) + +_EXTENSIONFEEDITEMERRORENUM_EXTENSIONFEEDITEMERROR.containing_type = _EXTENSIONFEEDITEMERRORENUM +DESCRIPTOR.message_types_by_name['ExtensionFeedItemErrorEnum'] = _EXTENSIONFEEDITEMERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExtensionFeedItemErrorEnum = _reflection.GeneratedProtocolMessageType('ExtensionFeedItemErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONFEEDITEMERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.extension_feed_item_error_pb2' + , + '__doc__': """Container for enum describing possible extension feed item error.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ExtensionFeedItemErrorEnum) + }) +_sym_db.RegisterMessage(ExtensionFeedItemErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/extension_feed_item_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2.py b/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2.py new file mode 100644 index 000000000..95605809b --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2.py @@ -0,0 +1,420 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/extension_setting_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/extension_setting_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\032ExtensionSettingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/errors/extension_setting_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xae\x14\n\x19\x45xtensionSettingErrorEnum\"\x90\x14\n\x15\x45xtensionSettingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13\x45XTENSIONS_REQUIRED\x10\x02\x12%\n!FEED_TYPE_EXTENSION_TYPE_MISMATCH\x10\x03\x12\x15\n\x11INVALID_FEED_TYPE\x10\x04\x12\x34\n0INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING\x10\x05\x12%\n!CANNOT_CHANGE_FEED_ITEM_ON_CREATE\x10\x06\x12)\n%CANNOT_UPDATE_NEWLY_CREATED_EXTENSION\x10\x07\x12\x33\n/NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE\x10\x08\x12\x33\n/NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE\x10\t\x12\x33\n/NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE\x10\n\x12-\n)AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS\x10\x0b\x12-\n)CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS\x10\x0c\x12-\n)CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS\x10\r\x12\x35\n1AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x0e\x12\x35\n1CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x0f\x12\x35\n1CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE\x10\x10\x12\x16\n\x12VALUE_OUT_OF_RANGE\x10\x11\x12$\n CANNOT_SET_FIELD_WITH_FINAL_URLS\x10\x12\x12\x16\n\x12\x46INAL_URLS_NOT_SET\x10\x13\x12\x18\n\x14INVALID_PHONE_NUMBER\x10\x14\x12*\n&PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY\x10\x15\x12-\n)CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED\x10\x16\x12#\n\x1fPREMIUM_RATE_NUMBER_NOT_ALLOWED\x10\x17\x12\x1a\n\x16\x44ISALLOWED_NUMBER_TYPE\x10\x18\x12(\n$INVALID_DOMESTIC_PHONE_NUMBER_FORMAT\x10\x19\x12#\n\x1fVANITY_PHONE_NUMBER_NOT_ALLOWED\x10\x1a\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\x1b\x12#\n\x1fINVALID_CALL_CONVERSION_TYPE_ID\x10\x1c\x12.\n*CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING\x10\x45\x12*\n&CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10\x1e\x12\x12\n\x0eINVALID_APP_ID\x10\x1f\x12&\n\"QUOTES_IN_REVIEW_EXTENSION_SNIPPET\x10 \x12\'\n#HYPHENS_IN_REVIEW_EXTENSION_SNIPPET\x10!\x12(\n$REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE\x10\"\x12(\n$SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT\x10#\x12\x11\n\rMISSING_FIELD\x10$\x12\x1f\n\x1bINCONSISTENT_CURRENCY_CODES\x10%\x12*\n&PRICE_EXTENSION_HAS_DUPLICATED_HEADERS\x10&\x12\x34\n0PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION\x10\'\x12%\n!PRICE_EXTENSION_HAS_TOO_FEW_ITEMS\x10(\x12&\n\"PRICE_EXTENSION_HAS_TOO_MANY_ITEMS\x10)\x12\x15\n\x11UNSUPPORTED_VALUE\x10*\x12\x1d\n\x19INVALID_DEVICE_PREFERENCE\x10+\x12\x18\n\x14INVALID_SCHEDULE_END\x10-\x12*\n&DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE\x10/\x12%\n!OVERLAPPING_SCHEDULES_NOT_ALLOWED\x10\x30\x12 \n\x1cSCHEDULE_END_NOT_AFTER_START\x10\x31\x12\x1e\n\x1aTOO_MANY_SCHEDULES_PER_DAY\x10\x32\x12&\n\"DUPLICATE_EXTENSION_FEED_ITEM_EDIT\x10\x33\x12\x1b\n\x17INVALID_SNIPPETS_HEADER\x10\x34\x12<\n8PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY\x10\x35\x12\x1f\n\x1b\x43\x41MPAIGN_TARGETING_MISMATCH\x10\x36\x12\"\n\x1e\x43\x41NNOT_OPERATE_ON_REMOVED_FEED\x10\x37\x12\x1b\n\x17\x45XTENSION_TYPE_REQUIRED\x10\x38\x12-\n)INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION\x10\x39\x12\x1d\n\x19START_DATE_AFTER_END_DATE\x10:\x12\x18\n\x14INVALID_PRICE_FORMAT\x10;\x12\x1a\n\x16PROMOTION_INVALID_TIME\x10<\x12<\n8PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT\x10=\x12>\n:PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT\x10>\x12%\n!TOO_MANY_DECIMAL_PLACES_SPECIFIED\x10?\x12\x19\n\x15INVALID_LANGUAGE_CODE\x10@\x12\x18\n\x14UNSUPPORTED_LANGUAGE\x10\x41\x12\x30\n,CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED\x10\x42\x12&\n\"EXTENSION_SETTING_UPDATE_IS_A_NOOP\x10\x43\x12\x13\n\x0f\x44ISALLOWED_TEXT\x10\x44\x42\xf5\x01\n\"com.google.ads.googleads.v5.errorsB\x1a\x45xtensionSettingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_EXTENSIONSETTINGERRORENUM_EXTENSIONSETTINGERROR = _descriptor.EnumDescriptor( + name='ExtensionSettingError', + full_name='google.ads.googleads.v5.errors.ExtensionSettingErrorEnum.ExtensionSettingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSIONS_REQUIRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_TYPE_EXTENSION_TYPE_MISMATCH', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_TYPE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_FEED_ITEM_ON_CREATE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_NEWLY_CREATED_EXTENSION', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_OUT_OF_RANGE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD_WITH_FINAL_URLS', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URLS_NOT_SET', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PHONE_NUMBER', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PREMIUM_RATE_NUMBER_NOT_ALLOWED', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_NUMBER_TYPE', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DOMESTIC_PHONE_NUMBER_FORMAT', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VANITY_PHONE_NUMBER_NOT_ALLOWED', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_CONVERSION_TYPE_ID', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING', index=29, number=69, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_APP_ID', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='QUOTES_IN_REVIEW_EXTENSION_SNIPPET', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HYPHENS_IN_REVIEW_EXTENSION_SNIPPET', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT', index=35, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FIELD', index=36, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_CURRENCY_CODES', index=37, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_DUPLICATED_HEADERS', index=38, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION', index=39, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_TOO_FEW_ITEMS', index=40, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_TOO_MANY_ITEMS', index=41, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_VALUE', index=42, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DEVICE_PREFERENCE', index=43, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SCHEDULE_END', index=44, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE', index=45, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OVERLAPPING_SCHEDULES_NOT_ALLOWED', index=46, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCHEDULE_END_NOT_AFTER_START', index=47, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_SCHEDULES_PER_DAY', index=48, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_EXTENSION_FEED_ITEM_EDIT', index=49, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SNIPPETS_HEADER', index=50, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY', index=51, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_TARGETING_MISMATCH', index=52, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_REMOVED_FEED', index=53, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSION_TYPE_REQUIRED', index=54, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION', index=55, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='START_DATE_AFTER_END_DATE', index=56, number=58, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PRICE_FORMAT', index=57, number=59, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_INVALID_TIME', index=58, number=60, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT', index=59, number=61, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT', index=60, number=62, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_DECIMAL_PLACES_SPECIFIED', index=61, number=63, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LANGUAGE_CODE', index=62, number=64, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_LANGUAGE', index=63, number=65, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED', index=64, number=66, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTENSION_SETTING_UPDATE_IS_A_NOOP', index=65, number=67, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_TEXT', index=66, number=68, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=163, + serialized_end=2739, +) +_sym_db.RegisterEnumDescriptor(_EXTENSIONSETTINGERRORENUM_EXTENSIONSETTINGERROR) + + +_EXTENSIONSETTINGERRORENUM = _descriptor.Descriptor( + name='ExtensionSettingErrorEnum', + full_name='google.ads.googleads.v5.errors.ExtensionSettingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EXTENSIONSETTINGERRORENUM_EXTENSIONSETTINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=2739, +) + +_EXTENSIONSETTINGERRORENUM_EXTENSIONSETTINGERROR.containing_type = _EXTENSIONSETTINGERRORENUM +DESCRIPTOR.message_types_by_name['ExtensionSettingErrorEnum'] = _EXTENSIONSETTINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExtensionSettingErrorEnum = _reflection.GeneratedProtocolMessageType('ExtensionSettingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONSETTINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.extension_setting_error_pb2' + , + '__doc__': """Container for enum describing validation errors of extension settings.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ExtensionSettingErrorEnum) + }) +_sym_db.RegisterMessage(ExtensionSettingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/extension_setting_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2.py new file mode 100644 index 000000000..52ef8eeda --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_attribute_reference_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_attribute_reference_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB FeedAttributeReferenceErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/errors/feed_attribute_reference_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xba\x01\n\x1f\x46\x65\x65\x64\x41ttributeReferenceErrorEnum\"\x96\x01\n\x1b\x46\x65\x65\x64\x41ttributeReferenceError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43\x41NNOT_REFERENCE_REMOVED_FEED\x10\x02\x12\x15\n\x11INVALID_FEED_NAME\x10\x03\x12\x1f\n\x1bINVALID_FEED_ATTRIBUTE_NAME\x10\x04\x42\xfb\x01\n\"com.google.ads.googleads.v5.errorsB FeedAttributeReferenceErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR = _descriptor.EnumDescriptor( + name='FeedAttributeReferenceError', + full_name='google.ads.googleads.v5.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REFERENCE_REMOVED_FEED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_NAME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_ATTRIBUTE_NAME', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=176, + serialized_end=326, +) +_sym_db.RegisterEnumDescriptor(_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR) + + +_FEEDATTRIBUTEREFERENCEERRORENUM = _descriptor.Descriptor( + name='FeedAttributeReferenceErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedAttributeReferenceErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=140, + serialized_end=326, +) + +_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR.containing_type = _FEEDATTRIBUTEREFERENCEERRORENUM +DESCRIPTOR.message_types_by_name['FeedAttributeReferenceErrorEnum'] = _FEEDATTRIBUTEREFERENCEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedAttributeReferenceErrorEnum = _reflection.GeneratedProtocolMessageType('FeedAttributeReferenceErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDATTRIBUTEREFERENCEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_attribute_reference_error_pb2' + , + '__doc__': """Container for enum describing possible feed attribute reference + errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedAttributeReferenceErrorEnum) + }) +_sym_db.RegisterMessage(FeedAttributeReferenceErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_attribute_reference_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_error_pb2.py new file mode 100644 index 000000000..b0139b61b --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_error_pb2.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\016FeedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/errors/feed_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xc6\x06\n\rFeedErrorEnum\"\xb4\x06\n\tFeedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1e\n\x1a\x41TTRIBUTE_NAMES_NOT_UNIQUE\x10\x02\x12/\n+ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES\x10\x03\x12.\n*CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED\x10\x04\x12\x34\n0CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED\x10\x05\x12\x32\n.CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED\x10\x06\x12\x34\n0CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE\x10\x07\x12\x10\n\x0c\x46\x45\x45\x44_REMOVED\x10\x08\x12\x18\n\x14INVALID_ORIGIN_VALUE\x10\t\x12\x1b\n\x17\x46\x45\x45\x44_ORIGIN_IS_NOT_USER\x10\n\x12 \n\x1cINVALID_AUTH_TOKEN_FOR_EMAIL\x10\x0b\x12\x11\n\rINVALID_EMAIL\x10\x0c\x12\x17\n\x13\x44UPLICATE_FEED_NAME\x10\r\x12\x15\n\x11INVALID_FEED_NAME\x10\x0e\x12\x16\n\x12MISSING_OAUTH_INFO\x10\x0f\x12.\n*NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY\x10\x10\x12\x17\n\x13TOO_MANY_ATTRIBUTES\x10\x11\x12\x1c\n\x18INVALID_BUSINESS_ACCOUNT\x10\x12\x12\x33\n/BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT\x10\x13\x12\x1e\n\x1aINVALID_AFFILIATE_CHAIN_ID\x10\x14\x12\x19\n\x15\x44UPLICATE_SYSTEM_FEED\x10\x15\x12\x14\n\x10GMB_ACCESS_ERROR\x10\x16\x12\x35\n1CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS\x10\x17\x42\xe9\x01\n\"com.google.ads.googleads.v5.errorsB\x0e\x46\x65\x65\x64\x45rrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDERRORENUM_FEEDERROR = _descriptor.EnumDescriptor( + name='FeedError', + full_name='google.ads.googleads.v5.errors.FeedErrorEnum.FeedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATTRIBUTE_NAMES_NOT_UNIQUE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_REMOVED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ORIGIN_VALUE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ORIGIN_IS_NOT_USER', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AUTH_TOKEN_FOR_EMAIL', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_EMAIL', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_FEED_NAME', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_NAME', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_OAUTH_INFO', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_ATTRIBUTES', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_BUSINESS_ACCOUNT', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_AFFILIATE_CHAIN_ID', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_SYSTEM_FEED', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GMB_ACCESS_ERROR', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=138, + serialized_end=958, +) +_sym_db.RegisterEnumDescriptor(_FEEDERRORENUM_FEEDERROR) + + +_FEEDERRORENUM = _descriptor.Descriptor( + name='FeedErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDERRORENUM_FEEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=958, +) + +_FEEDERRORENUM_FEEDERROR.containing_type = _FEEDERRORENUM +DESCRIPTOR.message_types_by_name['FeedErrorEnum'] = _FEEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedErrorEnum = _reflection.GeneratedProtocolMessageType('FeedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_error_pb2' + , + '__doc__': """Container for enum describing possible feed errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedErrorEnum) + }) +_sym_db.RegisterMessage(FeedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2.py new file mode 100644 index 000000000..f8715aaf1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_item_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_item_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022FeedItemErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/feed_item_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x87\x03\n\x11\x46\x65\x65\x64ItemErrorEnum\"\xf1\x02\n\rFeedItemError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12.\n*CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING\x10\x02\x12\'\n#CANNOT_OPERATE_ON_REMOVED_FEED_ITEM\x10\x03\x12*\n&DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE\x10\x04\x12\x1c\n\x18KEY_ATTRIBUTES_NOT_FOUND\x10\x05\x12\x0f\n\x0bINVALID_URL\x10\x06\x12\x1a\n\x16MISSING_KEY_ATTRIBUTES\x10\x07\x12\x1d\n\x19KEY_ATTRIBUTES_NOT_UNIQUE\x10\x08\x12%\n!CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE\x10\t\x12,\n(SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE\x10\nB\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x46\x65\x65\x64ItemErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMERRORENUM_FEEDITEMERROR = _descriptor.EnumDescriptor( + name='FeedItemError', + full_name='google.ads.googleads.v5.errors.FeedItemErrorEnum.FeedItemError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_REMOVED_FEED_ITEM', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEY_ATTRIBUTES_NOT_FOUND', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_KEY_ATTRIBUTES', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEY_ATTRIBUTES_NOT_UNIQUE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=516, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMERRORENUM_FEEDITEMERROR) + + +_FEEDITEMERRORENUM = _descriptor.Descriptor( + name='FeedItemErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedItemErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMERRORENUM_FEEDITEMERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=516, +) + +_FEEDITEMERRORENUM_FEEDITEMERROR.containing_type = _FEEDITEMERRORENUM +DESCRIPTOR.message_types_by_name['FeedItemErrorEnum'] = _FEEDITEMERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemErrorEnum = _reflection.GeneratedProtocolMessageType('FeedItemErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_item_error_pb2' + , + '__doc__': """Container for enum describing possible feed item errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedItemErrorEnum) + }) +_sym_db.RegisterMessage(FeedItemErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2.py new file mode 100644 index 000000000..a8aa64275 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_item_target_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_item_target_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030FeedItemTargetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/feed_item_target_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xfc\x02\n\x17\x46\x65\x65\x64ItemTargetErrorEnum\"\xe0\x02\n\x13\x46\x65\x65\x64ItemTargetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12#\n\x1fMUST_SET_TARGET_ONEOF_ON_CREATE\x10\x02\x12#\n\x1f\x46\x45\x45\x44_ITEM_TARGET_ALREADY_EXISTS\x10\x03\x12&\n\"FEED_ITEM_SCHEDULES_CANNOT_OVERLAP\x10\x04\x12(\n$TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE\x10\x05\x12\x1e\n\x1aTOO_MANY_SCHEDULES_PER_DAY\x10\x06\x12=\n9CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS\x10\x07\x12\x19\n\x15\x44UPLICATE_AD_SCHEDULE\x10\x08\x12\x15\n\x11\x44UPLICATE_KEYWORD\x10\tB\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18\x46\x65\x65\x64ItemTargetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMTARGETERRORENUM_FEEDITEMTARGETERROR = _descriptor.EnumDescriptor( + name='FeedItemTargetError', + full_name='google.ads.googleads.v5.errors.FeedItemTargetErrorEnum.FeedItemTargetError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MUST_SET_TARGET_ONEOF_ON_CREATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ITEM_TARGET_ALREADY_EXISTS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ITEM_SCHEDULES_CANNOT_OVERLAP', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_SCHEDULES_PER_DAY', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_AD_SCHEDULE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_KEYWORD', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=512, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMTARGETERRORENUM_FEEDITEMTARGETERROR) + + +_FEEDITEMTARGETERRORENUM = _descriptor.Descriptor( + name='FeedItemTargetErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedItemTargetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMTARGETERRORENUM_FEEDITEMTARGETERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=512, +) + +_FEEDITEMTARGETERRORENUM_FEEDITEMTARGETERROR.containing_type = _FEEDITEMTARGETERRORENUM +DESCRIPTOR.message_types_by_name['FeedItemTargetErrorEnum'] = _FEEDITEMTARGETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemTargetErrorEnum = _reflection.GeneratedProtocolMessageType('FeedItemTargetErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGETERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_item_target_error_pb2' + , + '__doc__': """Container for enum describing possible feed item target errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedItemTargetErrorEnum) + }) +_sym_db.RegisterMessage(FeedItemTargetErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_target_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2.py new file mode 100644 index 000000000..3988c79e1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2.py @@ -0,0 +1,581 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_item_validation_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_item_validation_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\034FeedItemValidationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/errors/feed_item_validation_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xe8\x19\n\x1b\x46\x65\x65\x64ItemValidationErrorEnum\"\xc8\x19\n\x17\x46\x65\x65\x64ItemValidationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x14\n\x10STRING_TOO_SHORT\x10\x02\x12\x13\n\x0fSTRING_TOO_LONG\x10\x03\x12\x17\n\x13VALUE_NOT_SPECIFIED\x10\x04\x12(\n$INVALID_DOMESTIC_PHONE_NUMBER_FORMAT\x10\x05\x12\x18\n\x14INVALID_PHONE_NUMBER\x10\x06\x12*\n&PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY\x10\x07\x12#\n\x1fPREMIUM_RATE_NUMBER_NOT_ALLOWED\x10\x08\x12\x1a\n\x16\x44ISALLOWED_NUMBER_TYPE\x10\t\x12\x16\n\x12VALUE_OUT_OF_RANGE\x10\n\x12*\n&CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10\x0b\x12.\n*CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING\x10\x63\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\r\x12\x12\n\x0eINVALID_APP_ID\x10\x0e\x12!\n\x1dMISSING_ATTRIBUTES_FOR_FIELDS\x10\x0f\x12\x13\n\x0fINVALID_TYPE_ID\x10\x10\x12\x19\n\x15INVALID_EMAIL_ADDRESS\x10\x11\x12\x15\n\x11INVALID_HTTPS_URL\x10\x12\x12\x1c\n\x18MISSING_DELIVERY_ADDRESS\x10\x13\x12\x1d\n\x19START_DATE_AFTER_END_DATE\x10\x14\x12 \n\x1cMISSING_FEED_ITEM_START_TIME\x10\x15\x12\x1e\n\x1aMISSING_FEED_ITEM_END_TIME\x10\x16\x12\x18\n\x14MISSING_FEED_ITEM_ID\x10\x17\x12#\n\x1fVANITY_PHONE_NUMBER_NOT_ALLOWED\x10\x18\x12$\n INVALID_REVIEW_EXTENSION_SNIPPET\x10\x19\x12\x19\n\x15INVALID_NUMBER_FORMAT\x10\x1a\x12\x17\n\x13INVALID_DATE_FORMAT\x10\x1b\x12\x18\n\x14INVALID_PRICE_FORMAT\x10\x1c\x12\x1d\n\x19UNKNOWN_PLACEHOLDER_FIELD\x10\x1d\x12.\n*MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE\x10\x1e\x12&\n\"REVIEW_EXTENSION_SOURCE_INELIGIBLE\x10\x1f\x12\'\n#HYPHENS_IN_REVIEW_EXTENSION_SNIPPET\x10 \x12-\n)DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET\x10!\x12&\n\"QUOTES_IN_REVIEW_EXTENSION_SNIPPET\x10\"\x12\x1f\n\x1bINVALID_FORM_ENCODED_PARAMS\x10#\x12\x1e\n\x1aINVALID_URL_PARAMETER_NAME\x10$\x12\x17\n\x13NO_GEOCODING_RESULT\x10%\x12(\n$SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT\x10&\x12-\n)CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED\x10\'\x12 \n\x1cINVALID_PLACEHOLDER_FIELD_ID\x10(\x12\x13\n\x0fINVALID_URL_TAG\x10)\x12\x11\n\rLIST_TOO_LONG\x10*\x12\"\n\x1eINVALID_ATTRIBUTES_COMBINATION\x10+\x12\x14\n\x10\x44UPLICATE_VALUES\x10,\x12%\n!INVALID_CALL_CONVERSION_ACTION_ID\x10-\x12!\n\x1d\x43\x41NNOT_SET_WITHOUT_FINAL_URLS\x10.\x12$\n APP_ID_DOESNT_EXIST_IN_APP_STORE\x10/\x12\x15\n\x11INVALID_FINAL_URL\x10\x30\x12\x18\n\x14INVALID_TRACKING_URL\x10\x31\x12*\n&INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL\x10\x32\x12\x12\n\x0eLIST_TOO_SHORT\x10\x33\x12\x17\n\x13INVALID_USER_ACTION\x10\x34\x12\x15\n\x11INVALID_TYPE_NAME\x10\x35\x12\x1f\n\x1bINVALID_EVENT_CHANGE_STATUS\x10\x36\x12\x1b\n\x17INVALID_SNIPPETS_HEADER\x10\x37\x12\x1c\n\x18INVALID_ANDROID_APP_LINK\x10\x38\x12;\n7NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10\x39\x12\x1a\n\x16RESERVED_KEYWORD_OTHER\x10:\x12\x1b\n\x17\x44UPLICATE_OPTION_LABELS\x10;\x12\x1d\n\x19\x44UPLICATE_OPTION_PREFILLS\x10<\x12\x18\n\x14UNEQUAL_LIST_LENGTHS\x10=\x12\x1f\n\x1bINCONSISTENT_CURRENCY_CODES\x10>\x12*\n&PRICE_EXTENSION_HAS_DUPLICATED_HEADERS\x10?\x12.\n*ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION\x10@\x12%\n!PRICE_EXTENSION_HAS_TOO_FEW_ITEMS\x10\x41\x12\x15\n\x11UNSUPPORTED_VALUE\x10\x42\x12\x1c\n\x18INVALID_FINAL_MOBILE_URL\x10\x43\x12%\n!INVALID_KEYWORDLESS_AD_RULE_LABEL\x10\x44\x12\'\n#VALUE_TRACK_PARAMETER_NOT_SUPPORTED\x10\x45\x12*\n&UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE\x10\x46\x12\x18\n\x14INVALID_IOS_APP_LINK\x10G\x12,\n(MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID\x10H\x12\x1a\n\x16PROMOTION_INVALID_TIME\x10I\x12\x39\n5PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF\x10J\x12>\n:PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT\x10K\x12%\n!TOO_MANY_DECIMAL_PLACES_SPECIFIED\x10L\x12\x1e\n\x1a\x41\x44_CUSTOMIZERS_NOT_ALLOWED\x10M\x12\x19\n\x15INVALID_LANGUAGE_CODE\x10N\x12\x18\n\x14UNSUPPORTED_LANGUAGE\x10O\x12\x1b\n\x17IF_FUNCTION_NOT_ALLOWED\x10P\x12\x1c\n\x18INVALID_FINAL_URL_SUFFIX\x10Q\x12#\n\x1fINVALID_TAG_IN_FINAL_URL_SUFFIX\x10R\x12#\n\x1fINVALID_FINAL_URL_SUFFIX_FORMAT\x10S\x12\x30\n,CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED\x10T\x12\'\n#ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED\x10U\x12\x1d\n\x19NO_DELIVERY_OPTION_IS_SET\x10V\x12&\n\"INVALID_CONVERSION_REPORTING_STATE\x10W\x12\x14\n\x10IMAGE_SIZE_WRONG\x10X\x12+\n\'EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY\x10Y\x12\'\n#AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY\x10Z\x12\x1a\n\x16INVALID_LATITUDE_VALUE\x10[\x12\x1b\n\x17INVALID_LONGITUDE_VALUE\x10\\\x12\x13\n\x0fTOO_MANY_LABELS\x10]\x12\x15\n\x11INVALID_IMAGE_URL\x10^\x12\x1a\n\x16MISSING_LATITUDE_VALUE\x10_\x12\x1b\n\x17MISSING_LONGITUDE_VALUE\x10`\x12\x15\n\x11\x41\x44\x44RESS_NOT_FOUND\x10\x61\x12\x1a\n\x16\x41\x44\x44RESS_NOT_TARGETABLE\x10\x62\x42\xf7\x01\n\"com.google.ads.googleads.v5.errorsB\x1c\x46\x65\x65\x64ItemValidationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR = _descriptor.EnumDescriptor( + name='FeedItemValidationError', + full_name='google.ads.googleads.v5.errors.FeedItemValidationErrorEnum.FeedItemValidationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING_TOO_SHORT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING_TOO_LONG', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_NOT_SPECIFIED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DOMESTIC_PHONE_NUMBER_FORMAT', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PHONE_NUMBER', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PREMIUM_RATE_NUMBER_NOT_ALLOWED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_NUMBER_TYPE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_OUT_OF_RANGE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING', index=12, number=99, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_APP_ID', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_ATTRIBUTES_FOR_FIELDS', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TYPE_ID', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_EMAIL_ADDRESS', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_HTTPS_URL', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_DELIVERY_ADDRESS', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='START_DATE_AFTER_END_DATE', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEED_ITEM_START_TIME', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEED_ITEM_END_TIME', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FEED_ITEM_ID', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VANITY_PHONE_NUMBER_NOT_ALLOWED', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_REVIEW_EXTENSION_SNIPPET', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NUMBER_FORMAT', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE_FORMAT', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PRICE_FORMAT', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_PLACEHOLDER_FIELD', index=29, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REVIEW_EXTENSION_SOURCE_INELIGIBLE', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HYPHENS_IN_REVIEW_EXTENSION_SNIPPET', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='QUOTES_IN_REVIEW_EXTENSION_SNIPPET', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FORM_ENCODED_PARAMS', index=35, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_PARAMETER_NAME', index=36, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_GEOCODING_RESULT', index=37, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT', index=38, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED', index=39, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_FIELD_ID', index=40, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_TAG', index=41, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIST_TOO_LONG', index=42, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTES_COMBINATION', index=43, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_VALUES', index=44, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_CONVERSION_ACTION_ID', index=45, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITHOUT_FINAL_URLS', index=46, number=46, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP_ID_DOESNT_EXIST_IN_APP_STORE', index=47, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL', index=48, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TRACKING_URL', index=49, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL', index=50, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIST_TOO_SHORT', index=51, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_ACTION', index=52, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TYPE_NAME', index=53, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_EVENT_CHANGE_STATUS', index=54, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SNIPPETS_HEADER', index=55, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ANDROID_APP_LINK', index=56, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=57, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESERVED_KEYWORD_OTHER', index=58, number=58, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_OPTION_LABELS', index=59, number=59, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_OPTION_PREFILLS', index=60, number=60, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEQUAL_LIST_LENGTHS', index=61, number=61, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_CURRENCY_CODES', index=62, number=62, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_DUPLICATED_HEADERS', index=63, number=63, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION', index=64, number=64, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRICE_EXTENSION_HAS_TOO_FEW_ITEMS', index=65, number=65, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_VALUE', index=66, number=66, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_MOBILE_URL', index=67, number=67, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_KEYWORDLESS_AD_RULE_LABEL', index=68, number=68, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_TRACK_PARAMETER_NOT_SUPPORTED', index=69, number=69, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE', index=70, number=70, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_IOS_APP_LINK', index=71, number=71, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID', index=72, number=72, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_INVALID_TIME', index=73, number=73, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF', index=74, number=74, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT', index=75, number=75, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_DECIMAL_PLACES_SPECIFIED', index=76, number=76, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AD_CUSTOMIZERS_NOT_ALLOWED', index=77, number=77, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LANGUAGE_CODE', index=78, number=78, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_LANGUAGE', index=79, number=79, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IF_FUNCTION_NOT_ALLOWED', index=80, number=80, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL_SUFFIX', index=81, number=81, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_URL_SUFFIX', index=82, number=82, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL_SUFFIX_FORMAT', index=83, number=83, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED', index=84, number=84, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED', index=85, number=85, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_DELIVERY_OPTION_IS_SET', index=86, number=86, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONVERSION_REPORTING_STATE', index=87, number=87, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_SIZE_WRONG', index=88, number=88, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY', index=89, number=89, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY', index=90, number=90, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LATITUDE_VALUE', index=91, number=91, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LONGITUDE_VALUE', index=92, number=92, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_LABELS', index=93, number=93, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_IMAGE_URL', index=94, number=94, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_LATITUDE_VALUE', index=95, number=95, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_LONGITUDE_VALUE', index=96, number=96, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS_NOT_FOUND', index=97, number=97, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADDRESS_NOT_TARGETABLE', index=98, number=98, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=168, + serialized_end=3440, +) +_sym_db.RegisterEnumDescriptor(_FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR) + + +_FEEDITEMVALIDATIONERRORENUM = _descriptor.Descriptor( + name='FeedItemValidationErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedItemValidationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=136, + serialized_end=3440, +) + +_FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR.containing_type = _FEEDITEMVALIDATIONERRORENUM +DESCRIPTOR.message_types_by_name['FeedItemValidationErrorEnum'] = _FEEDITEMVALIDATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemValidationErrorEnum = _reflection.GeneratedProtocolMessageType('FeedItemValidationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMVALIDATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_item_validation_error_pb2' + , + '__doc__': """Container for enum describing possible validation errors of a feed + item.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedItemValidationErrorEnum) + }) +_sym_db.RegisterMessage(FeedItemValidationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_item_validation_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2.py b/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2.py new file mode 100644 index 000000000..c1c65d576 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/feed_mapping_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/feed_mapping_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025FeedMappingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/feed_mapping_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x92\x06\n\x14\x46\x65\x65\x64MappingErrorEnum\"\xf9\x05\n\x10\x46\x65\x65\x64MappingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1d\n\x19INVALID_PLACEHOLDER_FIELD\x10\x02\x12\x1b\n\x17INVALID_CRITERION_FIELD\x10\x03\x12\x1c\n\x18INVALID_PLACEHOLDER_TYPE\x10\x04\x12\x1a\n\x16INVALID_CRITERION_TYPE\x10\x05\x12\x1f\n\x1bNO_ATTRIBUTE_FIELD_MAPPINGS\x10\x07\x12 \n\x1c\x46\x45\x45\x44_ATTRIBUTE_TYPE_MISMATCH\x10\x08\x12\x38\n4CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED\x10\t\x12*\n&MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE\x10\n\x12(\n$MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE\x10\x0b\x12+\n\'MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD\x10\x0c\x12)\n%MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD\x10\r\x12\'\n#UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS\x10\x0e\x12.\n*LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS\x10\x0f\x12)\n%CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED\x10\x10\x12:\n6INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED\x10\x11\x12;\n7INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE\x10\x12\x12)\n%ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD\x10\x13\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15\x46\x65\x65\x64MappingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDMAPPINGERRORENUM_FEEDMAPPINGERROR = _descriptor.EnumDescriptor( + name='FeedMappingError', + full_name='google.ads.googleads.v5.errors.FeedMappingErrorEnum.FeedMappingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_FIELD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CRITERION_FIELD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CRITERION_TYPE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_ATTRIBUTE_FIELD_MAPPINGS', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_TYPE_MISMATCH', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED', index=15, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED', index=16, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=914, +) +_sym_db.RegisterEnumDescriptor(_FEEDMAPPINGERRORENUM_FEEDMAPPINGERROR) + + +_FEEDMAPPINGERRORENUM = _descriptor.Descriptor( + name='FeedMappingErrorEnum', + full_name='google.ads.googleads.v5.errors.FeedMappingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDMAPPINGERRORENUM_FEEDMAPPINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=914, +) + +_FEEDMAPPINGERRORENUM_FEEDMAPPINGERROR.containing_type = _FEEDMAPPINGERRORENUM +DESCRIPTOR.message_types_by_name['FeedMappingErrorEnum'] = _FEEDMAPPINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedMappingErrorEnum = _reflection.GeneratedProtocolMessageType('FeedMappingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FEEDMAPPINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.feed_mapping_error_pb2' + , + '__doc__': """Container for enum describing possible feed item errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FeedMappingErrorEnum) + }) +_sym_db.RegisterMessage(FeedMappingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/feed_mapping_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/field_error_pb2.py b/google/ads/google_ads/v5/proto/errors/field_error_pb2.py new file mode 100644 index 000000000..27e5208dd --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/field_error_pb2.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/field_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/field_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017FieldErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/field_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd8\x01\n\x0e\x46ieldErrorEnum\"\xc5\x01\n\nFieldError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08REQUIRED\x10\x02\x12\x13\n\x0fIMMUTABLE_FIELD\x10\x03\x12\x11\n\rINVALID_VALUE\x10\x04\x12\x17\n\x13VALUE_MUST_BE_UNSET\x10\x05\x12\x1a\n\x16REQUIRED_NONEMPTY_LIST\x10\x06\x12\x1b\n\x17\x46IELD_CANNOT_BE_CLEARED\x10\x07\x12\x11\n\rBLOCKED_VALUE\x10\tB\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0f\x46ieldErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FIELDERRORENUM_FIELDERROR = _descriptor.EnumDescriptor( + name='FieldError', + full_name='google.ads.googleads.v5.errors.FieldErrorEnum.FieldError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUIRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMMUTABLE_FIELD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VALUE_MUST_BE_UNSET', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUIRED_NONEMPTY_LIST', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_CANNOT_BE_CLEARED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BLOCKED_VALUE', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=337, +) +_sym_db.RegisterEnumDescriptor(_FIELDERRORENUM_FIELDERROR) + + +_FIELDERRORENUM = _descriptor.Descriptor( + name='FieldErrorEnum', + full_name='google.ads.googleads.v5.errors.FieldErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FIELDERRORENUM_FIELDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=337, +) + +_FIELDERRORENUM_FIELDERROR.containing_type = _FIELDERRORENUM +DESCRIPTOR.message_types_by_name['FieldErrorEnum'] = _FIELDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FieldErrorEnum = _reflection.GeneratedProtocolMessageType('FieldErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FIELDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.field_error_pb2' + , + '__doc__': """Container for enum describing possible field errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FieldErrorEnum) + }) +_sym_db.RegisterMessage(FieldErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/field_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/field_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/field_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2.py b/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2.py new file mode 100644 index 000000000..5308246f8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/field_mask_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/field_mask_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023FieldMaskErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/field_mask_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xa7\x01\n\x12\x46ieldMaskErrorEnum\"\x90\x01\n\x0e\x46ieldMaskError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12\x46IELD_MASK_MISSING\x10\x05\x12\x1a\n\x16\x46IELD_MASK_NOT_ALLOWED\x10\x04\x12\x13\n\x0f\x46IELD_NOT_FOUND\x10\x02\x12\x17\n\x13\x46IELD_HAS_SUBFIELDS\x10\x03\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13\x46ieldMaskErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FIELDMASKERRORENUM_FIELDMASKERROR = _descriptor.EnumDescriptor( + name='FieldMaskError', + full_name='google.ads.googleads.v5.errors.FieldMaskErrorEnum.FieldMaskError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_MASK_MISSING', index=2, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_MASK_NOT_ALLOWED', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_FOUND', index=4, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_HAS_SUBFIELDS', index=5, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=293, +) +_sym_db.RegisterEnumDescriptor(_FIELDMASKERRORENUM_FIELDMASKERROR) + + +_FIELDMASKERRORENUM = _descriptor.Descriptor( + name='FieldMaskErrorEnum', + full_name='google.ads.googleads.v5.errors.FieldMaskErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FIELDMASKERRORENUM_FIELDMASKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=293, +) + +_FIELDMASKERRORENUM_FIELDMASKERROR.containing_type = _FIELDMASKERRORENUM +DESCRIPTOR.message_types_by_name['FieldMaskErrorEnum'] = _FIELDMASKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FieldMaskErrorEnum = _reflection.GeneratedProtocolMessageType('FieldMaskErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FIELDMASKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.field_mask_error_pb2' + , + '__doc__': """Container for enum describing possible field mask errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FieldMaskErrorEnum) + }) +_sym_db.RegisterMessage(FieldMaskErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/field_mask_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/function_error_pb2.py b/google/ads/google_ads/v5/proto/errors/function_error_pb2.py new file mode 100644 index 000000000..82981b8ec --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/function_error_pb2.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/function_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/function_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022FunctionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/function_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xc1\x04\n\x11\x46unctionErrorEnum\"\xab\x04\n\rFunctionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17INVALID_FUNCTION_FORMAT\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_MISMATCH\x10\x03\x12 \n\x1cINVALID_CONJUNCTION_OPERANDS\x10\x04\x12\x1e\n\x1aINVALID_NUMBER_OF_OPERANDS\x10\x05\x12\x18\n\x14INVALID_OPERAND_TYPE\x10\x06\x12\x14\n\x10INVALID_OPERATOR\x10\x07\x12 \n\x1cINVALID_REQUEST_CONTEXT_TYPE\x10\x08\x12)\n%INVALID_FUNCTION_FOR_CALL_PLACEHOLDER\x10\t\x12$\n INVALID_FUNCTION_FOR_PLACEHOLDER\x10\n\x12\x13\n\x0fINVALID_OPERAND\x10\x0b\x12\"\n\x1eMISSING_CONSTANT_OPERAND_VALUE\x10\x0c\x12\"\n\x1eINVALID_CONSTANT_OPERAND_VALUE\x10\r\x12\x13\n\x0fINVALID_NESTING\x10\x0e\x12#\n\x1fMULTIPLE_FEED_IDS_NOT_SUPPORTED\x10\x0f\x12/\n+INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA\x10\x10\x12\x1a\n\x16INVALID_ATTRIBUTE_NAME\x10\x11\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12\x46unctionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FUNCTIONERRORENUM_FUNCTIONERROR = _descriptor.EnumDescriptor( + name='FunctionError', + full_name='google.ads.googleads.v5.errors.FunctionErrorEnum.FunctionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FORMAT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATA_TYPE_MISMATCH', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONJUNCTION_OPERANDS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NUMBER_OF_OPERANDS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERAND_TYPE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATOR', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_REQUEST_CONTEXT_TYPE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_CALL_PLACEHOLDER', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_PLACEHOLDER', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERAND', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_CONSTANT_OPERAND_VALUE', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONSTANT_OPERAND_VALUE', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NESTING', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_FEED_IDS_NOT_SUPPORTED', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTE_NAME', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=701, +) +_sym_db.RegisterEnumDescriptor(_FUNCTIONERRORENUM_FUNCTIONERROR) + + +_FUNCTIONERRORENUM = _descriptor.Descriptor( + name='FunctionErrorEnum', + full_name='google.ads.googleads.v5.errors.FunctionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FUNCTIONERRORENUM_FUNCTIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=701, +) + +_FUNCTIONERRORENUM_FUNCTIONERROR.containing_type = _FUNCTIONERRORENUM +DESCRIPTOR.message_types_by_name['FunctionErrorEnum'] = _FUNCTIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FunctionErrorEnum = _reflection.GeneratedProtocolMessageType('FunctionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FUNCTIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.function_error_pb2' + , + '__doc__': """Container for enum describing possible function errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FunctionErrorEnum) + }) +_sym_db.RegisterMessage(FunctionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/function_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/function_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/function_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2.py b/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2.py new file mode 100644 index 000000000..a9155cbce --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2.py @@ -0,0 +1,150 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/function_parsing_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/function_parsing_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031FunctionParsingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/function_parsing_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x82\x03\n\x18\x46unctionParsingErrorEnum\"\xe5\x02\n\x14\x46unctionParsingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rNO_MORE_INPUT\x10\x02\x12\x16\n\x12\x45XPECTED_CHARACTER\x10\x03\x12\x18\n\x14UNEXPECTED_SEPARATOR\x10\x04\x12\x1a\n\x16UNMATCHED_LEFT_BRACKET\x10\x05\x12\x1b\n\x17UNMATCHED_RIGHT_BRACKET\x10\x06\x12\x1d\n\x19TOO_MANY_NESTED_FUNCTIONS\x10\x07\x12\x1e\n\x1aMISSING_RIGHT_HAND_OPERAND\x10\x08\x12\x19\n\x15INVALID_OPERATOR_NAME\x10\t\x12/\n+FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER\x10\n\x12\x0f\n\x0bNO_OPERANDS\x10\x0b\x12\x15\n\x11TOO_MANY_OPERANDS\x10\x0c\x42\xf4\x01\n\"com.google.ads.googleads.v5.errorsB\x19\x46unctionParsingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR = _descriptor.EnumDescriptor( + name='FunctionParsingError', + full_name='google.ads.googleads.v5.errors.FunctionParsingErrorEnum.FunctionParsingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_MORE_INPUT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_CHARACTER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SEPARATOR', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNMATCHED_LEFT_BRACKET', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNMATCHED_RIGHT_BRACKET', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_NESTED_FUNCTIONS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_RIGHT_HAND_OPERAND', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATOR_NAME', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_OPERANDS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_OPERANDS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=161, + serialized_end=518, +) +_sym_db.RegisterEnumDescriptor(_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR) + + +_FUNCTIONPARSINGERRORENUM = _descriptor.Descriptor( + name='FunctionParsingErrorEnum', + full_name='google.ads.googleads.v5.errors.FunctionParsingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=518, +) + +_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR.containing_type = _FUNCTIONPARSINGERRORENUM +DESCRIPTOR.message_types_by_name['FunctionParsingErrorEnum'] = _FUNCTIONPARSINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FunctionParsingErrorEnum = _reflection.GeneratedProtocolMessageType('FunctionParsingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _FUNCTIONPARSINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.function_parsing_error_pb2' + , + '__doc__': """Container for enum describing possible function parsing errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.FunctionParsingErrorEnum) + }) +_sym_db.RegisterMessage(FunctionParsingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/function_parsing_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2.py b/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2.py new file mode 100644 index 000000000..40a4cec27 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/geo_target_constant_suggestion_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/geo_target_constant_suggestion_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB%GeoTargetConstantSuggestionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/errors/geo_target_constant_suggestion_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd8\x01\n$GeoTargetConstantSuggestionErrorEnum\"\xaf\x01\n GeoTargetConstantSuggestionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18LOCATION_NAME_SIZE_LIMIT\x10\x02\x12\x17\n\x13LOCATION_NAME_LIMIT\x10\x03\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\x04\x12\x1c\n\x18REQUEST_PARAMETERS_UNSET\x10\x05\x42\x80\x02\n\"com.google.ads.googleads.v5.errorsB%GeoTargetConstantSuggestionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_GEOTARGETCONSTANTSUGGESTIONERRORENUM_GEOTARGETCONSTANTSUGGESTIONERROR = _descriptor.EnumDescriptor( + name='GeoTargetConstantSuggestionError', + full_name='google.ads.googleads.v5.errors.GeoTargetConstantSuggestionErrorEnum.GeoTargetConstantSuggestionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_NAME_SIZE_LIMIT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LOCATION_NAME_LIMIT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUEST_PARAMETERS_UNSET', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=187, + serialized_end=362, +) +_sym_db.RegisterEnumDescriptor(_GEOTARGETCONSTANTSUGGESTIONERRORENUM_GEOTARGETCONSTANTSUGGESTIONERROR) + + +_GEOTARGETCONSTANTSUGGESTIONERRORENUM = _descriptor.Descriptor( + name='GeoTargetConstantSuggestionErrorEnum', + full_name='google.ads.googleads.v5.errors.GeoTargetConstantSuggestionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GEOTARGETCONSTANTSUGGESTIONERRORENUM_GEOTARGETCONSTANTSUGGESTIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=146, + serialized_end=362, +) + +_GEOTARGETCONSTANTSUGGESTIONERRORENUM_GEOTARGETCONSTANTSUGGESTIONERROR.containing_type = _GEOTARGETCONSTANTSUGGESTIONERRORENUM +DESCRIPTOR.message_types_by_name['GeoTargetConstantSuggestionErrorEnum'] = _GEOTARGETCONSTANTSUGGESTIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GeoTargetConstantSuggestionErrorEnum = _reflection.GeneratedProtocolMessageType('GeoTargetConstantSuggestionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _GEOTARGETCONSTANTSUGGESTIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.geo_target_constant_suggestion_error_pb2' + , + '__doc__': """Container for enum describing possible geo target constant suggestion + errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.GeoTargetConstantSuggestionErrorEnum) + }) +_sym_db.RegisterMessage(GeoTargetConstantSuggestionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/geo_target_constant_suggestion_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/header_error_pb2.py b/google/ads/google_ads/v5/proto/errors/header_error_pb2.py new file mode 100644 index 000000000..923be6473 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/header_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/header_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/header_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\020HeaderErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/errors/header_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"}\n\x0fHeaderErrorEnum\"j\n\x0bHeaderError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1d\n\x19INVALID_LOGIN_CUSTOMER_ID\x10\x03\x12\x1e\n\x1aINVALID_LINKED_CUSTOMER_ID\x10\x07\x42\xeb\x01\n\"com.google.ads.googleads.v5.errorsB\x10HeaderErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_HEADERERRORENUM_HEADERERROR = _descriptor.EnumDescriptor( + name='HeaderError', + full_name='google.ads.googleads.v5.errors.HeaderErrorEnum.HeaderError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LOGIN_CUSTOMER_ID', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LINKED_CUSTOMER_ID', index=3, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=246, +) +_sym_db.RegisterEnumDescriptor(_HEADERERRORENUM_HEADERERROR) + + +_HEADERERRORENUM = _descriptor.Descriptor( + name='HeaderErrorEnum', + full_name='google.ads.googleads.v5.errors.HeaderErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _HEADERERRORENUM_HEADERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=246, +) + +_HEADERERRORENUM_HEADERERROR.containing_type = _HEADERERRORENUM +DESCRIPTOR.message_types_by_name['HeaderErrorEnum'] = _HEADERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +HeaderErrorEnum = _reflection.GeneratedProtocolMessageType('HeaderErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _HEADERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.header_error_pb2' + , + '__doc__': """Container for enum describing possible header errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.HeaderErrorEnum) + }) +_sym_db.RegisterMessage(HeaderErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/header_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/header_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/header_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/id_error_pb2.py b/google/ads/google_ads/v5/proto/errors/id_error_pb2.py new file mode 100644 index 000000000..c295db760 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/id_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/id_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/id_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\014IdErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/errors/id_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"E\n\x0bIdErrorEnum\"6\n\x07IdError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x42\xe7\x01\n\"com.google.ads.googleads.v5.errorsB\x0cIdErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_IDERRORENUM_IDERROR = _descriptor.EnumDescriptor( + name='IdError', + full_name='google.ads.googleads.v5.errors.IdErrorEnum.IdError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_FOUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=132, + serialized_end=186, +) +_sym_db.RegisterEnumDescriptor(_IDERRORENUM_IDERROR) + + +_IDERRORENUM = _descriptor.Descriptor( + name='IdErrorEnum', + full_name='google.ads.googleads.v5.errors.IdErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _IDERRORENUM_IDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=117, + serialized_end=186, +) + +_IDERRORENUM_IDERROR.containing_type = _IDERRORENUM +DESCRIPTOR.message_types_by_name['IdErrorEnum'] = _IDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +IdErrorEnum = _reflection.GeneratedProtocolMessageType('IdErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _IDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.id_error_pb2' + , + '__doc__': """Container for enum describing possible id errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.IdErrorEnum) + }) +_sym_db.RegisterMessage(IdErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/id_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/id_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/id_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/image_error_pb2.py b/google/ads/google_ads/v5/proto/errors/image_error_pb2.py new file mode 100644 index 000000000..8aa1c3ab4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/image_error_pb2.py @@ -0,0 +1,285 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/image_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/image_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017ImageErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/image_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xaa\x08\n\x0eImageErrorEnum\"\x97\x08\n\nImageError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rINVALID_IMAGE\x10\x02\x12\x11\n\rSTORAGE_ERROR\x10\x03\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x04\x12\x13\n\x0fUNEXPECTED_SIZE\x10\x05\x12\x18\n\x14\x41NIMATED_NOT_ALLOWED\x10\x06\x12\x16\n\x12\x41NIMATION_TOO_LONG\x10\x07\x12\x10\n\x0cSERVER_ERROR\x10\x08\x12\x19\n\x15\x43MYK_JPEG_NOT_ALLOWED\x10\t\x12\x15\n\x11\x46LASH_NOT_ALLOWED\x10\n\x12\x1a\n\x16\x46LASH_WITHOUT_CLICKTAG\x10\x0b\x12&\n\"FLASH_ERROR_AFTER_FIXING_CLICK_TAG\x10\x0c\x12\x1a\n\x16\x41NIMATED_VISUAL_EFFECT\x10\r\x12\x0f\n\x0b\x46LASH_ERROR\x10\x0e\x12\x12\n\x0eLAYOUT_PROBLEM\x10\x0f\x12\x1e\n\x1aPROBLEM_READING_IMAGE_FILE\x10\x10\x12\x17\n\x13\x45RROR_STORING_IMAGE\x10\x11\x12\x1c\n\x18\x41SPECT_RATIO_NOT_ALLOWED\x10\x12\x12\x1d\n\x19\x46LASH_HAS_NETWORK_OBJECTS\x10\x13\x12\x1d\n\x19\x46LASH_HAS_NETWORK_METHODS\x10\x14\x12\x11\n\rFLASH_HAS_URL\x10\x15\x12\x1c\n\x18\x46LASH_HAS_MOUSE_TRACKING\x10\x16\x12\x18\n\x14\x46LASH_HAS_RANDOM_NUM\x10\x17\x12\x16\n\x12\x46LASH_SELF_TARGETS\x10\x18\x12\x1b\n\x17\x46LASH_BAD_GETURL_TARGET\x10\x19\x12\x1f\n\x1b\x46LASH_VERSION_NOT_SUPPORTED\x10\x1a\x12&\n\"FLASH_WITHOUT_HARD_CODED_CLICK_URL\x10\x1b\x12\x16\n\x12INVALID_FLASH_FILE\x10\x1c\x12$\n FAILED_TO_FIX_CLICK_TAG_IN_FLASH\x10\x1d\x12$\n FLASH_ACCESSES_NETWORK_RESOURCES\x10\x1e\x12\x1a\n\x16\x46LASH_EXTERNAL_JS_CALL\x10\x1f\x12\x1a\n\x16\x46LASH_EXTERNAL_FS_CALL\x10 \x12\x12\n\x0e\x46ILE_TOO_LARGE\x10!\x12\x18\n\x14IMAGE_DATA_TOO_LARGE\x10\"\x12\x1a\n\x16IMAGE_PROCESSING_ERROR\x10#\x12\x13\n\x0fIMAGE_TOO_SMALL\x10$\x12\x11\n\rINVALID_INPUT\x10%\x12\x18\n\x14PROBLEM_READING_FILE\x10&\x12\x1e\n\x1aIMAGE_CONSTRAINTS_VIOLATED\x10\'B\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0fImageErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_IMAGEERRORENUM_IMAGEERROR = _descriptor.EnumDescriptor( + name='ImageError', + full_name='google.ads.googleads.v5.errors.ImageErrorEnum.ImageError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_IMAGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORAGE_ERROR', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_REQUEST', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SIZE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATED_NOT_ALLOWED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATION_TOO_LONG', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVER_ERROR', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CMYK_JPEG_NOT_ALLOWED', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_NOT_ALLOWED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_WITHOUT_CLICKTAG', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_ERROR_AFTER_FIXING_CLICK_TAG', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATED_VISUAL_EFFECT', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_ERROR', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LAYOUT_PROBLEM', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROBLEM_READING_IMAGE_FILE', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ERROR_STORING_IMAGE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ASPECT_RATIO_NOT_ALLOWED', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_NETWORK_OBJECTS', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_NETWORK_METHODS', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_URL', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_MOUSE_TRACKING', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_RANDOM_NUM', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_SELF_TARGETS', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_BAD_GETURL_TARGET', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_VERSION_NOT_SUPPORTED', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_WITHOUT_HARD_CODED_CLICK_URL', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FLASH_FILE', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FAILED_TO_FIX_CLICK_TAG_IN_FLASH', index=29, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_ACCESSES_NETWORK_RESOURCES', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_EXTERNAL_JS_CALL', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_EXTERNAL_FS_CALL', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FILE_TOO_LARGE', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_DATA_TOO_LARGE', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_PROCESSING_ERROR', index=35, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_TOO_SMALL', index=36, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=37, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROBLEM_READING_FILE', index=38, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_CONSTRAINTS_VIOLATED', index=39, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=1187, +) +_sym_db.RegisterEnumDescriptor(_IMAGEERRORENUM_IMAGEERROR) + + +_IMAGEERRORENUM = _descriptor.Descriptor( + name='ImageErrorEnum', + full_name='google.ads.googleads.v5.errors.ImageErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _IMAGEERRORENUM_IMAGEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=1187, +) + +_IMAGEERRORENUM_IMAGEERROR.containing_type = _IMAGEERRORENUM +DESCRIPTOR.message_types_by_name['ImageErrorEnum'] = _IMAGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ImageErrorEnum = _reflection.GeneratedProtocolMessageType('ImageErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _IMAGEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.image_error_pb2' + , + '__doc__': """Container for enum describing possible image errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ImageErrorEnum) + }) +_sym_db.RegisterMessage(ImageErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/image_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/image_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/image_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/internal_error_pb2.py b/google/ads/google_ads/v5/proto/errors/internal_error_pb2.py new file mode 100644 index 000000000..4e98c43e6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/internal_error_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/internal_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/internal_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022InternalErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/internal_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xa1\x01\n\x11InternalErrorEnum\"\x8b\x01\n\rInternalError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1c\n\x18\x45RROR_CODE_NOT_PUBLISHED\x10\x03\x12\x13\n\x0fTRANSIENT_ERROR\x10\x04\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x05\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12InternalErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_INTERNALERRORENUM_INTERNALERROR = _descriptor.EnumDescriptor( + name='InternalError', + full_name='google.ads.googleads.v5.errors.InternalErrorEnum.InternalError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INTERNAL_ERROR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ERROR_CODE_NOT_PUBLISHED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TRANSIENT_ERROR', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEADLINE_EXCEEDED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=146, + serialized_end=285, +) +_sym_db.RegisterEnumDescriptor(_INTERNALERRORENUM_INTERNALERROR) + + +_INTERNALERRORENUM = _descriptor.Descriptor( + name='InternalErrorEnum', + full_name='google.ads.googleads.v5.errors.InternalErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _INTERNALERRORENUM_INTERNALERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=285, +) + +_INTERNALERRORENUM_INTERNALERROR.containing_type = _INTERNALERRORENUM +DESCRIPTOR.message_types_by_name['InternalErrorEnum'] = _INTERNALERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +InternalErrorEnum = _reflection.GeneratedProtocolMessageType('InternalErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _INTERNALERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.internal_error_pb2' + , + '__doc__': """Container for enum describing possible internal errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.InternalErrorEnum) + }) +_sym_db.RegisterMessage(InternalErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/internal_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/internal_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/internal_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/invoice_error_pb2.py b/google/ads/google_ads/v5/proto/errors/invoice_error_pb2.py new file mode 100644 index 000000000..0fcc52bae --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/invoice_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/invoice_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/invoice_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\021InvoiceErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/errors/invoice_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"s\n\x10InvoiceErrorEnum\"_\n\x0cInvoiceError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12YEAR_MONTH_TOO_OLD\x10\x02\x12\x19\n\x15NOT_INVOICED_CUSTOMER\x10\x03\x42\xec\x01\n\"com.google.ads.googleads.v5.errorsB\x11InvoiceErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_INVOICEERRORENUM_INVOICEERROR = _descriptor.EnumDescriptor( + name='InvoiceError', + full_name='google.ads.googleads.v5.errors.InvoiceErrorEnum.InvoiceError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YEAR_MONTH_TOO_OLD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_INVOICED_CUSTOMER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=142, + serialized_end=237, +) +_sym_db.RegisterEnumDescriptor(_INVOICEERRORENUM_INVOICEERROR) + + +_INVOICEERRORENUM = _descriptor.Descriptor( + name='InvoiceErrorEnum', + full_name='google.ads.googleads.v5.errors.InvoiceErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _INVOICEERRORENUM_INVOICEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=237, +) + +_INVOICEERRORENUM_INVOICEERROR.containing_type = _INVOICEERRORENUM +DESCRIPTOR.message_types_by_name['InvoiceErrorEnum'] = _INVOICEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +InvoiceErrorEnum = _reflection.GeneratedProtocolMessageType('InvoiceErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _INVOICEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.invoice_error_pb2' + , + '__doc__': """Container for enum describing possible invoice errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.InvoiceErrorEnum) + }) +_sym_db.RegisterMessage(InvoiceErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/invoice_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/invoice_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/invoice_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2.py new file mode 100644 index 000000000..0a72a2d23 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_ad_group_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_ad_group_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\034KeywordPlanAdGroupErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/errors/keyword_plan_ad_group_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"|\n\x1bKeywordPlanAdGroupErrorEnum\"]\n\x17KeywordPlanAdGroupError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cINVALID_NAME\x10\x02\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x03\x42\xf7\x01\n\"com.google.ads.googleads.v5.errorsB\x1cKeywordPlanAdGroupErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANADGROUPERRORENUM_KEYWORDPLANADGROUPERROR = _descriptor.EnumDescriptor( + name='KeywordPlanAdGroupError', + full_name='google.ads.googleads.v5.errors.KeywordPlanAdGroupErrorEnum.KeywordPlanAdGroupError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=167, + serialized_end=260, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANADGROUPERRORENUM_KEYWORDPLANADGROUPERROR) + + +_KEYWORDPLANADGROUPERRORENUM = _descriptor.Descriptor( + name='KeywordPlanAdGroupErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanAdGroupErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANADGROUPERRORENUM_KEYWORDPLANADGROUPERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=136, + serialized_end=260, +) + +_KEYWORDPLANADGROUPERRORENUM_KEYWORDPLANADGROUPERROR.containing_type = _KEYWORDPLANADGROUPERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanAdGroupErrorEnum'] = _KEYWORDPLANADGROUPERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanAdGroupErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanAdGroupErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANADGROUPERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_ad_group_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying a keyword + plan ad group.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanAdGroupErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanAdGroupErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2.py new file mode 100644 index 000000000..505231650 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_ad_group_keyword_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_ad_group_keyword_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB#KeywordPlanAdGroupKeywordErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nNgoogle/ads/googleads_v5/proto/errors/keyword_plan_ad_group_keyword_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb2\x02\n\"KeywordPlanAdGroupKeywordErrorEnum\"\x8b\x02\n\x1eKeywordPlanAdGroupKeywordError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1e\n\x1aINVALID_KEYWORD_MATCH_TYPE\x10\x02\x12\x15\n\x11\x44UPLICATE_KEYWORD\x10\x03\x12\x19\n\x15KEYWORD_TEXT_TOO_LONG\x10\x04\x12\x1d\n\x19KEYWORD_HAS_INVALID_CHARS\x10\x05\x12\x1e\n\x1aKEYWORD_HAS_TOO_MANY_WORDS\x10\x06\x12\x18\n\x14INVALID_KEYWORD_TEXT\x10\x07\x12 \n\x1cNEGATIVE_KEYWORD_HAS_CPC_BID\x10\x08\x42\xfe\x01\n\"com.google.ads.googleads.v5.errorsB#KeywordPlanAdGroupKeywordErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANADGROUPKEYWORDERRORENUM_KEYWORDPLANADGROUPKEYWORDERROR = _descriptor.EnumDescriptor( + name='KeywordPlanAdGroupKeywordError', + full_name='google.ads.googleads.v5.errors.KeywordPlanAdGroupKeywordErrorEnum.KeywordPlanAdGroupKeywordError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_KEYWORD_MATCH_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_KEYWORD', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_TEXT_TOO_LONG', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_INVALID_CHARS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_TOO_MANY_WORDS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_KEYWORD_TEXT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEGATIVE_KEYWORD_HAS_CPC_BID', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=184, + serialized_end=451, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANADGROUPKEYWORDERRORENUM_KEYWORDPLANADGROUPKEYWORDERROR) + + +_KEYWORDPLANADGROUPKEYWORDERRORENUM = _descriptor.Descriptor( + name='KeywordPlanAdGroupKeywordErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanAdGroupKeywordErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANADGROUPKEYWORDERRORENUM_KEYWORDPLANADGROUPKEYWORDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=145, + serialized_end=451, +) + +_KEYWORDPLANADGROUPKEYWORDERRORENUM_KEYWORDPLANADGROUPKEYWORDERROR.containing_type = _KEYWORDPLANADGROUPKEYWORDERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanAdGroupKeywordErrorEnum'] = _KEYWORDPLANADGROUPKEYWORDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanAdGroupKeywordErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanAdGroupKeywordErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANADGROUPKEYWORDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_ad_group_keyword_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying an ad + group keyword or a campaign keyword from a keyword plan.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanAdGroupKeywordErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanAdGroupKeywordErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_ad_group_keyword_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2.py new file mode 100644 index 000000000..3b4f87308 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_campaign_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_campaign_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\035KeywordPlanCampaignErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/errors/keyword_plan_campaign_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xdb\x01\n\x1cKeywordPlanCampaignErrorEnum\"\xba\x01\n\x18KeywordPlanCampaignError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cINVALID_NAME\x10\x02\x12\x15\n\x11INVALID_LANGUAGES\x10\x03\x12\x10\n\x0cINVALID_GEOS\x10\x04\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x05\x12\x15\n\x11MAX_GEOS_EXCEEDED\x10\x06\x12\x1a\n\x16MAX_LANGUAGES_EXCEEDED\x10\x07\x42\xf8\x01\n\"com.google.ads.googleads.v5.errorsB\x1dKeywordPlanCampaignErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANCAMPAIGNERRORENUM_KEYWORDPLANCAMPAIGNERROR = _descriptor.EnumDescriptor( + name='KeywordPlanCampaignError', + full_name='google.ads.googleads.v5.errors.KeywordPlanCampaignErrorEnum.KeywordPlanCampaignError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NAME', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LANGUAGES', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_GEOS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_GEOS_EXCEEDED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_LANGUAGES_EXCEEDED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=170, + serialized_end=356, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANCAMPAIGNERRORENUM_KEYWORDPLANCAMPAIGNERROR) + + +_KEYWORDPLANCAMPAIGNERRORENUM = _descriptor.Descriptor( + name='KeywordPlanCampaignErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanCampaignErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANCAMPAIGNERRORENUM_KEYWORDPLANCAMPAIGNERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=356, +) + +_KEYWORDPLANCAMPAIGNERRORENUM_KEYWORDPLANCAMPAIGNERROR.containing_type = _KEYWORDPLANCAMPAIGNERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignErrorEnum'] = _KEYWORDPLANCAMPAIGNERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanCampaignErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_campaign_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying a keyword + plan campaign.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanCampaignErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2.py new file mode 100644 index 000000000..42f0bf35c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_campaign_keyword_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_campaign_keyword_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB$KeywordPlanCampaignKeywordErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nNgoogle/ads/googleads_v5/proto/errors/keyword_plan_campaign_keyword_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x88\x01\n#KeywordPlanCampaignKeywordErrorEnum\"a\n\x1fKeywordPlanCampaignKeywordError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1c\x43\x41MPAIGN_KEYWORD_IS_POSITIVE\x10\x08\x42\xff\x01\n\"com.google.ads.googleads.v5.errorsB$KeywordPlanCampaignKeywordErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANCAMPAIGNKEYWORDERRORENUM_KEYWORDPLANCAMPAIGNKEYWORDERROR = _descriptor.EnumDescriptor( + name='KeywordPlanCampaignKeywordError', + full_name='google.ads.googleads.v5.errors.KeywordPlanCampaignKeywordErrorEnum.KeywordPlanCampaignKeywordError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_KEYWORD_IS_POSITIVE', index=2, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=184, + serialized_end=281, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANCAMPAIGNKEYWORDERRORENUM_KEYWORDPLANCAMPAIGNKEYWORDERROR) + + +_KEYWORDPLANCAMPAIGNKEYWORDERRORENUM = _descriptor.Descriptor( + name='KeywordPlanCampaignKeywordErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanCampaignKeywordErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANCAMPAIGNKEYWORDERRORENUM_KEYWORDPLANCAMPAIGNKEYWORDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=145, + serialized_end=281, +) + +_KEYWORDPLANCAMPAIGNKEYWORDERRORENUM_KEYWORDPLANCAMPAIGNKEYWORDERROR.containing_type = _KEYWORDPLANCAMPAIGNKEYWORDERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignKeywordErrorEnum'] = _KEYWORDPLANCAMPAIGNKEYWORDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanCampaignKeywordErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignKeywordErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNKEYWORDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_campaign_keyword_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying a keyword + plan campaign keyword.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanCampaignKeywordErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignKeywordErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_campaign_keyword_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2.py new file mode 100644 index 000000000..1368cdad6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025KeywordPlanErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/keyword_plan_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xc8\x03\n\x14KeywordPlanErrorEnum\"\xaf\x03\n\x10KeywordPlanError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1f\n\x1b\x42ID_MULTIPLIER_OUT_OF_RANGE\x10\x02\x12\x10\n\x0c\x42ID_TOO_HIGH\x10\x03\x12\x0f\n\x0b\x42ID_TOO_LOW\x10\x04\x12\"\n\x1e\x42ID_TOO_MANY_FRACTIONAL_DIGITS\x10\x05\x12\x18\n\x14\x44\x41ILY_BUDGET_TOO_LOW\x10\x06\x12+\n\'DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS\x10\x07\x12\x11\n\rINVALID_VALUE\x10\x08\x12 \n\x1cKEYWORD_PLAN_HAS_NO_KEYWORDS\x10\t\x12\x1c\n\x18KEYWORD_PLAN_NOT_ENABLED\x10\n\x12\x1a\n\x16KEYWORD_PLAN_NOT_FOUND\x10\x0b\x12\x0f\n\x0bMISSING_BID\x10\r\x12\x1b\n\x17MISSING_FORECAST_PERIOD\x10\x0e\x12\x1f\n\x1bINVALID_FORECAST_DATE_RANGE\x10\x0f\x12\x10\n\x0cINVALID_NAME\x10\x10\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15KeywordPlanErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANERRORENUM_KEYWORDPLANERROR = _descriptor.EnumDescriptor( + name='KeywordPlanError', + full_name='google.ads.googleads.v5.errors.KeywordPlanErrorEnum.KeywordPlanError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_MULTIPLIER_OUT_OF_RANGE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_HIGH', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_LOW', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_TOO_MANY_FRACTIONAL_DIGITS', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DAILY_BUDGET_TOO_LOW', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_PLAN_HAS_NO_KEYWORDS', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_PLAN_NOT_ENABLED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYWORD_PLAN_NOT_FOUND', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_BID', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_FORECAST_PERIOD', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FORECAST_DATE_RANGE', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NAME', index=15, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=584, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANERRORENUM_KEYWORDPLANERROR) + + +_KEYWORDPLANERRORENUM = _descriptor.Descriptor( + name='KeywordPlanErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANERRORENUM_KEYWORDPLANERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=584, +) + +_KEYWORDPLANERRORENUM_KEYWORDPLANERROR.containing_type = _KEYWORDPLANERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanErrorEnum'] = _KEYWORDPLANERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying a keyword + plan resource (keyword plan, keyword plan campaign, keyword plan ad + group or keyword plan keyword) or KeywordPlanService RPC.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2.py new file mode 100644 index 000000000..2e1f1ed17 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/keyword_plan_idea_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/keyword_plan_idea_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031KeywordPlanIdeaErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/errors/keyword_plan_idea_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"x\n\x18KeywordPlanIdeaErrorEnum\"\\\n\x14KeywordPlanIdeaError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0fURL_CRAWL_ERROR\x10\x02\x12\x11\n\rINVALID_VALUE\x10\x03\x42\xf4\x01\n\"com.google.ads.googleads.v5.errorsB\x19KeywordPlanIdeaErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_KEYWORDPLANIDEAERRORENUM_KEYWORDPLANIDEAERROR = _descriptor.EnumDescriptor( + name='KeywordPlanIdeaError', + full_name='google.ads.googleads.v5.errors.KeywordPlanIdeaErrorEnum.KeywordPlanIdeaError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_CRAWL_ERROR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=252, +) +_sym_db.RegisterEnumDescriptor(_KEYWORDPLANIDEAERRORENUM_KEYWORDPLANIDEAERROR) + + +_KEYWORDPLANIDEAERRORENUM = _descriptor.Descriptor( + name='KeywordPlanIdeaErrorEnum', + full_name='google.ads.googleads.v5.errors.KeywordPlanIdeaErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _KEYWORDPLANIDEAERRORENUM_KEYWORDPLANIDEAERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=252, +) + +_KEYWORDPLANIDEAERRORENUM_KEYWORDPLANIDEAERROR.containing_type = _KEYWORDPLANIDEAERRORENUM +DESCRIPTOR.message_types_by_name['KeywordPlanIdeaErrorEnum'] = _KEYWORDPLANIDEAERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanIdeaErrorEnum = _reflection.GeneratedProtocolMessageType('KeywordPlanIdeaErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANIDEAERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.keyword_plan_idea_error_pb2' + , + '__doc__': """Container for enum describing possible errors from + KeywordPlanIdeaService.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.KeywordPlanIdeaErrorEnum) + }) +_sym_db.RegisterMessage(KeywordPlanIdeaErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/keyword_plan_idea_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/label_error_pb2.py b/google/ads/google_ads/v5/proto/errors/label_error_pb2.py new file mode 100644 index 000000000..be43d0f9c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/label_error_pb2.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/label_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/label_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017LabelErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/label_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x96\x03\n\x0eLabelErrorEnum\"\x83\x03\n\nLabelError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1f\n\x1b\x43\x41NNOT_APPLY_INACTIVE_LABEL\x10\x02\x12\x35\n1CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION\x10\x03\x12\x35\n1CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION\x10\x04\x12!\n\x1d\x45XCEEDED_LABEL_LIMIT_PER_TYPE\x10\x05\x12&\n\"INVALID_RESOURCE_FOR_MANAGER_LABEL\x10\x06\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x07\x12\x16\n\x12INVALID_LABEL_NAME\x10\x08\x12 \n\x1c\x43\x41NNOT_ATTACH_LABEL_TO_DRAFT\x10\t\x12/\n+CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER\x10\nB\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0fLabelErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LABELERRORENUM_LABELERROR = _descriptor.EnumDescriptor( + name='LabelError', + full_name='google.ads.googleads.v5.errors.LabelErrorEnum.LabelError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_APPLY_INACTIVE_LABEL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXCEEDED_LABEL_LIMIT_PER_TYPE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_RESOURCE_FOR_MANAGER_LABEL', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LABEL_NAME', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_LABEL_TO_DRAFT', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=527, +) +_sym_db.RegisterEnumDescriptor(_LABELERRORENUM_LABELERROR) + + +_LABELERRORENUM = _descriptor.Descriptor( + name='LabelErrorEnum', + full_name='google.ads.googleads.v5.errors.LabelErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LABELERRORENUM_LABELERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=527, +) + +_LABELERRORENUM_LABELERROR.containing_type = _LABELERRORENUM +DESCRIPTOR.message_types_by_name['LabelErrorEnum'] = _LABELERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LabelErrorEnum = _reflection.GeneratedProtocolMessageType('LabelErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _LABELERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.label_error_pb2' + , + '__doc__': """Container for enum describing possible label errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.LabelErrorEnum) + }) +_sym_db.RegisterMessage(LabelErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/label_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/label_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/label_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/language_code_error_pb2.py b/google/ads/google_ads/v5/proto/errors/language_code_error_pb2.py new file mode 100644 index 000000000..cb5d72a34 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/language_code_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/language_code_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/language_code_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026LanguageCodeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/language_code_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x82\x01\n\x15LanguageCodeErrorEnum\"i\n\x11LanguageCodeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17LANGUAGE_CODE_NOT_FOUND\x10\x02\x12\x19\n\x15INVALID_LANGUAGE_CODE\x10\x03\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16LanguageCodeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LANGUAGECODEERRORENUM_LANGUAGECODEERROR = _descriptor.EnumDescriptor( + name='LanguageCodeError', + full_name='google.ads.googleads.v5.errors.LanguageCodeErrorEnum.LanguageCodeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LANGUAGE_CODE_NOT_FOUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_LANGUAGE_CODE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=154, + serialized_end=259, +) +_sym_db.RegisterEnumDescriptor(_LANGUAGECODEERRORENUM_LANGUAGECODEERROR) + + +_LANGUAGECODEERRORENUM = _descriptor.Descriptor( + name='LanguageCodeErrorEnum', + full_name='google.ads.googleads.v5.errors.LanguageCodeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LANGUAGECODEERRORENUM_LANGUAGECODEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=259, +) + +_LANGUAGECODEERRORENUM_LANGUAGECODEERROR.containing_type = _LANGUAGECODEERRORENUM +DESCRIPTOR.message_types_by_name['LanguageCodeErrorEnum'] = _LANGUAGECODEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LanguageCodeErrorEnum = _reflection.GeneratedProtocolMessageType('LanguageCodeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _LANGUAGECODEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.language_code_error_pb2' + , + '__doc__': """Container for enum describing language code errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.LanguageCodeErrorEnum) + }) +_sym_db.RegisterMessage(LanguageCodeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/language_code_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/language_code_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/language_code_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2.py b/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2.py new file mode 100644 index 000000000..6312da0c9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/list_operation_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/list_operation_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\027ListOperationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/errors/list_operation_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"~\n\x16ListOperationErrorEnum\"d\n\x12ListOperationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16REQUIRED_FIELD_MISSING\x10\x07\x12\x14\n\x10\x44UPLICATE_VALUES\x10\x08\x42\xf2\x01\n\"com.google.ads.googleads.v5.errorsB\x17ListOperationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_LISTOPERATIONERRORENUM_LISTOPERATIONERROR = _descriptor.EnumDescriptor( + name='ListOperationError', + full_name='google.ads.googleads.v5.errors.ListOperationErrorEnum.ListOperationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUIRED_FIELD_MISSING', index=2, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_VALUES', index=3, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=255, +) +_sym_db.RegisterEnumDescriptor(_LISTOPERATIONERRORENUM_LISTOPERATIONERROR) + + +_LISTOPERATIONERRORENUM = _descriptor.Descriptor( + name='ListOperationErrorEnum', + full_name='google.ads.googleads.v5.errors.ListOperationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LISTOPERATIONERRORENUM_LISTOPERATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=255, +) + +_LISTOPERATIONERRORENUM_LISTOPERATIONERROR.containing_type = _LISTOPERATIONERRORENUM +DESCRIPTOR.message_types_by_name['ListOperationErrorEnum'] = _LISTOPERATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ListOperationErrorEnum = _reflection.GeneratedProtocolMessageType('ListOperationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _LISTOPERATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.list_operation_error_pb2' + , + '__doc__': """Container for enum describing possible list operation errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ListOperationErrorEnum) + }) +_sym_db.RegisterMessage(ListOperationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/list_operation_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2.py b/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2.py new file mode 100644 index 000000000..7ccb42cf5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/manager_link_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/manager_link_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025ManagerLinkErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/manager_link_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xc5\x04\n\x14ManagerLinkErrorEnum\"\xac\x04\n\x10ManagerLinkError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\'\n#ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING\x10\x02\x12\x15\n\x11TOO_MANY_MANAGERS\x10\x03\x12\x14\n\x10TOO_MANY_INVITES\x10\x04\x12#\n\x1f\x41LREADY_INVITED_BY_THIS_MANAGER\x10\x05\x12#\n\x1f\x41LREADY_MANAGED_BY_THIS_MANAGER\x10\x06\x12 \n\x1c\x41LREADY_MANAGED_IN_HIERARCHY\x10\x07\x12\x19\n\x15\x44UPLICATE_CHILD_FOUND\x10\x08\x12\x1c\n\x18\x43LIENT_HAS_NO_ADMIN_USER\x10\t\x12\x16\n\x12MAX_DEPTH_EXCEEDED\x10\n\x12\x15\n\x11\x43YCLE_NOT_ALLOWED\x10\x0b\x12\x15\n\x11TOO_MANY_ACCOUNTS\x10\x0c\x12 \n\x1cTOO_MANY_ACCOUNTS_AT_MANAGER\x10\r\x12%\n!NON_OWNER_USER_CANNOT_MODIFY_LINK\x10\x0e\x12(\n$SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS\x10\x0f\x12\x17\n\x13\x43LIENT_OUTSIDE_TREE\x10\x10\x12\x19\n\x15INVALID_STATUS_CHANGE\x10\x11\x12\x12\n\x0eINVALID_CHANGE\x10\x12\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15ManagerLinkErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MANAGERLINKERRORENUM_MANAGERLINKERROR = _descriptor.EnumDescriptor( + name='ManagerLinkError', + full_name='google.ads.googleads.v5.errors.ManagerLinkErrorEnum.ManagerLinkError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_MANAGERS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_INVITES', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ALREADY_INVITED_BY_THIS_MANAGER', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ALREADY_MANAGED_BY_THIS_MANAGER', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ALREADY_MANAGED_IN_HIERARCHY', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_CHILD_FOUND', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_HAS_NO_ADMIN_USER', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_DEPTH_EXCEEDED', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CYCLE_NOT_ALLOWED', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_ACCOUNTS', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_ACCOUNTS_AT_MANAGER', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NON_OWNER_USER_CANNOT_MODIFY_LINK', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CLIENT_OUTSIDE_TREE', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STATUS_CHANGE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CHANGE', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=709, +) +_sym_db.RegisterEnumDescriptor(_MANAGERLINKERRORENUM_MANAGERLINKERROR) + + +_MANAGERLINKERRORENUM = _descriptor.Descriptor( + name='ManagerLinkErrorEnum', + full_name='google.ads.googleads.v5.errors.ManagerLinkErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MANAGERLINKERRORENUM_MANAGERLINKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=709, +) + +_MANAGERLINKERRORENUM_MANAGERLINKERROR.containing_type = _MANAGERLINKERRORENUM +DESCRIPTOR.message_types_by_name['ManagerLinkErrorEnum'] = _MANAGERLINKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ManagerLinkErrorEnum = _reflection.GeneratedProtocolMessageType('ManagerLinkErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MANAGERLINKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.manager_link_error_pb2' + , + '__doc__': """Container for enum describing possible ManagerLink errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ManagerLinkErrorEnum) + }) +_sym_db.RegisterMessage(ManagerLinkErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/manager_link_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2.py b/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2.py new file mode 100644 index 000000000..e2a466b02 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/media_bundle_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/media_bundle_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025MediaBundleErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/media_bundle_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb8\x05\n\x14MediaBundleErrorEnum\"\x9f\x05\n\x10MediaBundleError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x03\x12\"\n\x1e\x44OUBLECLICK_BUNDLE_NOT_ALLOWED\x10\x04\x12\x1c\n\x18\x45XTERNAL_URL_NOT_ALLOWED\x10\x05\x12\x12\n\x0e\x46ILE_TOO_LARGE\x10\x06\x12.\n*GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED\x10\x07\x12\x11\n\rINVALID_INPUT\x10\x08\x12\x18\n\x14INVALID_MEDIA_BUNDLE\x10\t\x12\x1e\n\x1aINVALID_MEDIA_BUNDLE_ENTRY\x10\n\x12\x15\n\x11INVALID_MIME_TYPE\x10\x0b\x12\x10\n\x0cINVALID_PATH\x10\x0c\x12\x19\n\x15INVALID_URL_REFERENCE\x10\r\x12\x18\n\x14MEDIA_DATA_TOO_LARGE\x10\x0e\x12&\n\"MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY\x10\x0f\x12\x10\n\x0cSERVER_ERROR\x10\x10\x12\x11\n\rSTORAGE_ERROR\x10\x11\x12\x1d\n\x19SWIFFY_BUNDLE_NOT_ALLOWED\x10\x12\x12\x12\n\x0eTOO_MANY_FILES\x10\x13\x12\x13\n\x0fUNEXPECTED_SIZE\x10\x14\x12/\n+UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT\x10\x15\x12\x1d\n\x19UNSUPPORTED_HTML5_FEATURE\x10\x16\x12)\n%URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT\x10\x17\x12\x1b\n\x17\x43USTOM_EXIT_NOT_ALLOWED\x10\x18\x42\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15MediaBundleErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR = _descriptor.EnumDescriptor( + name='MediaBundleError', + full_name='google.ads.googleads.v5.errors.MediaBundleErrorEnum.MediaBundleError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_REQUEST', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DOUBLECLICK_BUNDLE_NOT_ALLOWED', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_URL_NOT_ALLOWED', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FILE_TOO_LARGE', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE_ENTRY', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MIME_TYPE', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PATH', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_REFERENCE', index=12, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_DATA_TOO_LARGE', index=13, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY', index=14, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SERVER_ERROR', index=15, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STORAGE_ERROR', index=16, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SWIFFY_BUNDLE_NOT_ALLOWED', index=17, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_FILES', index=18, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SIZE', index=19, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT', index=20, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_HTML5_FEATURE', index=21, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT', index=22, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_EXIT_NOT_ALLOWED', index=23, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=824, +) +_sym_db.RegisterEnumDescriptor(_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR) + + +_MEDIABUNDLEERRORENUM = _descriptor.Descriptor( + name='MediaBundleErrorEnum', + full_name='google.ads.googleads.v5.errors.MediaBundleErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=824, +) + +_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR.containing_type = _MEDIABUNDLEERRORENUM +DESCRIPTOR.message_types_by_name['MediaBundleErrorEnum'] = _MEDIABUNDLEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaBundleErrorEnum = _reflection.GeneratedProtocolMessageType('MediaBundleErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MEDIABUNDLEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.media_bundle_error_pb2' + , + '__doc__': """Container for enum describing possible media bundle errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.MediaBundleErrorEnum) + }) +_sym_db.RegisterMessage(MediaBundleErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_bundle_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/media_file_error_pb2.py b/google/ads/google_ads/v5/proto/errors/media_file_error_pb2.py new file mode 100644 index 000000000..4dcc11994 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_file_error_pb2.py @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/media_file_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/media_file_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023MediaFileErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/media_file_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x97\x06\n\x12MediaFileErrorEnum\"\x80\x06\n\x0eMediaFileError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1f\n\x1b\x43\x41NNOT_CREATE_STANDARD_ICON\x10\x02\x12\x30\n,CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES\x10\x03\x12)\n%CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA\x10\x04\x12\x13\n\x0f\x44UPLICATE_MEDIA\x10\x05\x12\x0f\n\x0b\x45MPTY_FIELD\x10\x06\x12\'\n#RESOURCE_REFERENCED_IN_MULTIPLE_OPS\x10\x07\x12*\n&FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE\x10\x08\x12\x19\n\x15INVALID_MEDIA_FILE_ID\x10\t\x12\x1a\n\x16INVALID_MEDIA_SUB_TYPE\x10\n\x12\x1b\n\x17INVALID_MEDIA_FILE_TYPE\x10\x0b\x12\x15\n\x11INVALID_MIME_TYPE\x10\x0c\x12\x18\n\x14INVALID_REFERENCE_ID\x10\r\x12\x17\n\x13INVALID_YOU_TUBE_ID\x10\x0e\x12!\n\x1dMEDIA_FILE_FAILED_TRANSCODING\x10\x0f\x12\x18\n\x14MEDIA_NOT_TRANSCODED\x10\x10\x12-\n)MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE\x10\x11\x12\x17\n\x13NO_FIELDS_SPECIFIED\x10\x12\x12\"\n\x1eNULL_REFERENCE_ID_AND_MEDIA_ID\x10\x13\x12\x0c\n\x08TOO_LONG\x10\x14\x12\x14\n\x10UNSUPPORTED_TYPE\x10\x15\x12 \n\x1cYOU_TUBE_SERVICE_UNAVAILABLE\x10\x16\x12,\n(YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION\x10\x17\x12\x1c\n\x18YOU_TUBE_VIDEO_NOT_FOUND\x10\x18\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13MediaFileErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MEDIAFILEERRORENUM_MEDIAFILEERROR = _descriptor.EnumDescriptor( + name='MediaFileError', + full_name='google.ads.googleads.v5.errors.MediaFileErrorEnum.MediaFileError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_STANDARD_ICON', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_MEDIA', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMPTY_FIELD', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_REFERENCED_IN_MULTIPLE_OPS', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_FILE_ID', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_SUB_TYPE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_FILE_TYPE', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MIME_TYPE', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_REFERENCE_ID', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_YOU_TUBE_ID', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_FILE_FAILED_TRANSCODING', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_NOT_TRANSCODED', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_FIELDS_SPECIFIED', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NULL_REFERENCE_ID_AND_MEDIA_ID', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_TYPE', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_SERVICE_UNAVAILABLE', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_VIDEO_NOT_FOUND', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=917, +) +_sym_db.RegisterEnumDescriptor(_MEDIAFILEERRORENUM_MEDIAFILEERROR) + + +_MEDIAFILEERRORENUM = _descriptor.Descriptor( + name='MediaFileErrorEnum', + full_name='google.ads.googleads.v5.errors.MediaFileErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIAFILEERRORENUM_MEDIAFILEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=917, +) + +_MEDIAFILEERRORENUM_MEDIAFILEERROR.containing_type = _MEDIAFILEERRORENUM +DESCRIPTOR.message_types_by_name['MediaFileErrorEnum'] = _MEDIAFILEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaFileErrorEnum = _reflection.GeneratedProtocolMessageType('MediaFileErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAFILEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.media_file_error_pb2' + , + '__doc__': """Container for enum describing possible media file errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.MediaFileErrorEnum) + }) +_sym_db.RegisterMessage(MediaFileErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/media_file_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/media_file_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_file_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2.py b/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2.py new file mode 100644 index 000000000..4afa1cb0a --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2.py @@ -0,0 +1,255 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/media_upload_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/media_upload_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\025MediaUploadErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/errors/media_upload_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb8\x08\n\x14MediaUploadErrorEnum\"\x9f\x08\n\x10MediaUploadError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0c\x46ILE_TOO_BIG\x10\x02\x12\x15\n\x11UNPARSEABLE_IMAGE\x10\x03\x12\x1e\n\x1a\x41NIMATED_IMAGE_NOT_ALLOWED\x10\x04\x12\x16\n\x12\x46ORMAT_NOT_ALLOWED\x10\x05\x12\x1c\n\x18\x45XTERNAL_URL_NOT_ALLOWED\x10\x06\x12\x19\n\x15INVALID_URL_REFERENCE\x10\x07\x12&\n\"MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY\x10\x08\x12\x1a\n\x16\x41NIMATED_VISUAL_EFFECT\x10\t\x12\x16\n\x12\x41NIMATION_TOO_LONG\x10\n\x12\x1c\n\x18\x41SPECT_RATIO_NOT_ALLOWED\x10\x0b\x12%\n!AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE\x10\x0c\x12\x19\n\x15\x43MYK_JPEG_NOT_ALLOWED\x10\r\x12\x15\n\x11\x46LASH_NOT_ALLOWED\x10\x0e\x12\x17\n\x13\x46RAME_RATE_TOO_HIGH\x10\x0f\x12.\n*GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED\x10\x10\x12\x1e\n\x1aIMAGE_CONSTRAINTS_VIOLATED\x10\x11\x12\x18\n\x14INVALID_MEDIA_BUNDLE\x10\x12\x12\x1e\n\x1aINVALID_MEDIA_BUNDLE_ENTRY\x10\x13\x12\x15\n\x11INVALID_MIME_TYPE\x10\x14\x12\x10\n\x0cINVALID_PATH\x10\x15\x12\x12\n\x0eLAYOUT_PROBLEM\x10\x16\x12\x11\n\rMALFORMED_URL\x10\x17\x12\x1c\n\x18MEDIA_BUNDLE_NOT_ALLOWED\x10\x18\x12/\n+MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE\x10\x19\x12\x31\n-MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS\x10\x1a\x12\"\n\x1eTOO_MANY_FILES_IN_MEDIA_BUNDLE\x10\x1b\x12/\n+UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT\x10\x1c\x12\x1d\n\x19UNSUPPORTED_HTML5_FEATURE\x10\x1d\x12)\n%URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT\x10\x1e\x12\x1c\n\x18VIDEO_FILE_NAME_TOO_LONG\x10\x1f\x12\'\n#VIDEO_MULTIPLE_FILES_WITH_SAME_NAME\x10 \x12%\n!VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE\x10!B\xf0\x01\n\"com.google.ads.googleads.v5.errorsB\x15MediaUploadErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MEDIAUPLOADERRORENUM_MEDIAUPLOADERROR = _descriptor.EnumDescriptor( + name='MediaUploadError', + full_name='google.ads.googleads.v5.errors.MediaUploadErrorEnum.MediaUploadError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FILE_TOO_BIG', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNPARSEABLE_IMAGE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATED_IMAGE_NOT_ALLOWED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FORMAT_NOT_ALLOWED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_URL_NOT_ALLOWED', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_REFERENCE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATED_VISUAL_EFFECT', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANIMATION_TOO_LONG', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ASPECT_RATIO_NOT_ALLOWED', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CMYK_JPEG_NOT_ALLOWED', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLASH_NOT_ALLOWED', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FRAME_RATE_TOO_HIGH', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='IMAGE_CONSTRAINTS_VIOLATED', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE_ENTRY', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MIME_TYPE', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PATH', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LAYOUT_PROBLEM', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_URL', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_BUNDLE_NOT_ALLOWED', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_FILES_IN_MEDIA_BUNDLE', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_HTML5_FEATURE', index=29, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_FILE_NAME_TOO_LONG', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_MULTIPLE_FILES_WITH_SAME_NAME', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=1208, +) +_sym_db.RegisterEnumDescriptor(_MEDIAUPLOADERRORENUM_MEDIAUPLOADERROR) + + +_MEDIAUPLOADERRORENUM = _descriptor.Descriptor( + name='MediaUploadErrorEnum', + full_name='google.ads.googleads.v5.errors.MediaUploadErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIAUPLOADERRORENUM_MEDIAUPLOADERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=1208, +) + +_MEDIAUPLOADERRORENUM_MEDIAUPLOADERROR.containing_type = _MEDIAUPLOADERRORENUM +DESCRIPTOR.message_types_by_name['MediaUploadErrorEnum'] = _MEDIAUPLOADERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaUploadErrorEnum = _reflection.GeneratedProtocolMessageType('MediaUploadErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAUPLOADERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.media_upload_error_pb2' + , + '__doc__': """Container for enum describing possible media uploading errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.MediaUploadErrorEnum) + }) +_sym_db.RegisterMessage(MediaUploadErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/media_upload_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2.py b/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2.py new file mode 100644 index 000000000..da0c344af --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2.py @@ -0,0 +1,155 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/multiplier_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/multiplier_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\024MultiplierErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/multiplier_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xcf\x04\n\x13MultiplierErrorEnum\"\xb7\x04\n\x0fMultiplierError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13MULTIPLIER_TOO_HIGH\x10\x02\x12\x16\n\x12MULTIPLIER_TOO_LOW\x10\x03\x12\x1e\n\x1aTOO_MANY_FRACTIONAL_DIGITS\x10\x04\x12/\n+MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY\x10\x05\x12\x33\n/MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING\x10\x06\x12\x1b\n\x17NO_MULTIPLIER_SPECIFIED\x10\x07\x12\x30\n,MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET\x10\x08\x12\x32\n.MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET\x10\t\x12\x31\n-MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET\x10\n\x12\x33\n/MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID\x10\x0b\x12\x31\n-BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER\x10\x0c\x12\x31\n-MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH\x10\rB\xef\x01\n\"com.google.ads.googleads.v5.errorsB\x14MultiplierErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MULTIPLIERERRORENUM_MULTIPLIERERROR = _descriptor.EnumDescriptor( + name='MultiplierError', + full_name='google.ads.googleads.v5.errors.MultiplierErrorEnum.MultiplierError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_TOO_HIGH', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_TOO_LOW', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_FRACTIONAL_DIGITS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_MULTIPLIER_SPECIFIED', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=150, + serialized_end=717, +) +_sym_db.RegisterEnumDescriptor(_MULTIPLIERERRORENUM_MULTIPLIERERROR) + + +_MULTIPLIERERRORENUM = _descriptor.Descriptor( + name='MultiplierErrorEnum', + full_name='google.ads.googleads.v5.errors.MultiplierErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MULTIPLIERERRORENUM_MULTIPLIERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=717, +) + +_MULTIPLIERERRORENUM_MULTIPLIERERROR.containing_type = _MULTIPLIERERRORENUM +DESCRIPTOR.message_types_by_name['MultiplierErrorEnum'] = _MULTIPLIERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MultiplierErrorEnum = _reflection.GeneratedProtocolMessageType('MultiplierErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MULTIPLIERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.multiplier_error_pb2' + , + '__doc__': """Container for enum describing possible multiplier errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.MultiplierErrorEnum) + }) +_sym_db.RegisterMessage(MultiplierErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/multiplier_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/mutate_error_pb2.py b/google/ads/google_ads/v5/proto/errors/mutate_error_pb2.py new file mode 100644 index 000000000..037c104af --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/mutate_error_pb2.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/mutate_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/mutate_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\020MutateErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/errors/mutate_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb3\x02\n\x0fMutateErrorEnum\"\x9f\x02\n\x0bMutateError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12RESOURCE_NOT_FOUND\x10\x03\x12!\n\x1dID_EXISTS_IN_MULTIPLE_MUTATES\x10\x07\x12\x1d\n\x19INCONSISTENT_FIELD_VALUES\x10\x08\x12\x16\n\x12MUTATE_NOT_ALLOWED\x10\t\x12\x1e\n\x1aRESOURCE_NOT_IN_GOOGLE_ADS\x10\n\x12\x1b\n\x17RESOURCE_ALREADY_EXISTS\x10\x0b\x12+\n\'RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY\x10\x0c\x12\x16\n\x12RESOURCE_READ_ONLY\x10\rB\xeb\x01\n\"com.google.ads.googleads.v5.errorsB\x10MutateErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_MUTATEERRORENUM_MUTATEERROR = _descriptor.EnumDescriptor( + name='MutateError', + full_name='google.ads.googleads.v5.errors.MutateErrorEnum.MutateError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_NOT_FOUND', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ID_EXISTS_IN_MULTIPLE_MUTATES', index=3, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_FIELD_VALUES', index=4, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MUTATE_NOT_ALLOWED', index=5, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_NOT_IN_GOOGLE_ADS', index=6, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_ALREADY_EXISTS', index=7, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY', index=8, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_READ_ONLY', index=9, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=142, + serialized_end=429, +) +_sym_db.RegisterEnumDescriptor(_MUTATEERRORENUM_MUTATEERROR) + + +_MUTATEERRORENUM = _descriptor.Descriptor( + name='MutateErrorEnum', + full_name='google.ads.googleads.v5.errors.MutateErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MUTATEERRORENUM_MUTATEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=122, + serialized_end=429, +) + +_MUTATEERRORENUM_MUTATEERROR.containing_type = _MUTATEERRORENUM +DESCRIPTOR.message_types_by_name['MutateErrorEnum'] = _MUTATEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MutateErrorEnum = _reflection.GeneratedProtocolMessageType('MutateErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.mutate_error_pb2' + , + '__doc__': """Container for enum describing possible mutate errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.MutateErrorEnum) + }) +_sym_db.RegisterMessage(MutateErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/mutate_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/mutate_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/mutate_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2.py b/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2.py new file mode 100644 index 000000000..c83abcf62 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/new_resource_creation_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/new_resource_creation_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\035NewResourceCreationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/errors/new_resource_creation_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb0\x01\n\x1cNewResourceCreationErrorEnum\"\x8f\x01\n\x18NewResourceCreationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18\x43\x41NNOT_SET_ID_FOR_CREATE\x10\x02\x12\x16\n\x12\x44UPLICATE_TEMP_IDS\x10\x03\x12\x1f\n\x1bTEMP_ID_RESOURCE_HAD_ERRORS\x10\x04\x42\xf8\x01\n\"com.google.ads.googleads.v5.errorsB\x1dNewResourceCreationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR = _descriptor.EnumDescriptor( + name='NewResourceCreationError', + full_name='google.ads.googleads.v5.errors.NewResourceCreationErrorEnum.NewResourceCreationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_ID_FOR_CREATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_TEMP_IDS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEMP_ID_RESOURCE_HAD_ERRORS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=170, + serialized_end=313, +) +_sym_db.RegisterEnumDescriptor(_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR) + + +_NEWRESOURCECREATIONERRORENUM = _descriptor.Descriptor( + name='NewResourceCreationErrorEnum', + full_name='google.ads.googleads.v5.errors.NewResourceCreationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=313, +) + +_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR.containing_type = _NEWRESOURCECREATIONERRORENUM +DESCRIPTOR.message_types_by_name['NewResourceCreationErrorEnum'] = _NEWRESOURCECREATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NewResourceCreationErrorEnum = _reflection.GeneratedProtocolMessageType('NewResourceCreationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _NEWRESOURCECREATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.new_resource_creation_error_pb2' + , + '__doc__': """Container for enum describing possible new resource creation errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.NewResourceCreationErrorEnum) + }) +_sym_db.RegisterMessage(NewResourceCreationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/new_resource_creation_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2.py b/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2.py new file mode 100644 index 000000000..1842c4322 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/not_allowlisted_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/not_allowlisted_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030NotAllowlistedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/errors/not_allowlisted_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"}\n\x17NotAllowlistedErrorEnum\"b\n\x13NotAllowlistedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12-\n)CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE\x10\x02\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18NotAllowlistedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_NOTALLOWLISTEDERRORENUM_NOTALLOWLISTEDERROR = _descriptor.EnumDescriptor( + name='NotAllowlistedError', + full_name='google.ads.googleads.v5.errors.NotAllowlistedErrorEnum.NotAllowlistedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=255, +) +_sym_db.RegisterEnumDescriptor(_NOTALLOWLISTEDERRORENUM_NOTALLOWLISTEDERROR) + + +_NOTALLOWLISTEDERRORENUM = _descriptor.Descriptor( + name='NotAllowlistedErrorEnum', + full_name='google.ads.googleads.v5.errors.NotAllowlistedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NOTALLOWLISTEDERRORENUM_NOTALLOWLISTEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=255, +) + +_NOTALLOWLISTEDERRORENUM_NOTALLOWLISTEDERROR.containing_type = _NOTALLOWLISTEDERRORENUM +DESCRIPTOR.message_types_by_name['NotAllowlistedErrorEnum'] = _NOTALLOWLISTEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NotAllowlistedErrorEnum = _reflection.GeneratedProtocolMessageType('NotAllowlistedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _NOTALLOWLISTEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.not_allowlisted_error_pb2' + , + '__doc__': """Container for enum describing possible not allowlisted errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.NotAllowlistedErrorEnum) + }) +_sym_db.RegisterMessage(NotAllowlistedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/not_allowlisted_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2.py b/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2.py new file mode 100644 index 000000000..a46a757b4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/not_empty_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/not_empty_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022NotEmptyErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/not_empty_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"R\n\x11NotEmptyErrorEnum\"=\n\rNotEmptyError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nEMPTY_LIST\x10\x02\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12NotEmptyErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_NOTEMPTYERRORENUM_NOTEMPTYERROR = _descriptor.EnumDescriptor( + name='NotEmptyError', + full_name='google.ads.googleads.v5.errors.NotEmptyErrorEnum.NotEmptyError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMPTY_LIST', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=145, + serialized_end=206, +) +_sym_db.RegisterEnumDescriptor(_NOTEMPTYERRORENUM_NOTEMPTYERROR) + + +_NOTEMPTYERRORENUM = _descriptor.Descriptor( + name='NotEmptyErrorEnum', + full_name='google.ads.googleads.v5.errors.NotEmptyErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NOTEMPTYERRORENUM_NOTEMPTYERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=206, +) + +_NOTEMPTYERRORENUM_NOTEMPTYERROR.containing_type = _NOTEMPTYERRORENUM +DESCRIPTOR.message_types_by_name['NotEmptyErrorEnum'] = _NOTEMPTYERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NotEmptyErrorEnum = _reflection.GeneratedProtocolMessageType('NotEmptyErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _NOTEMPTYERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.not_empty_error_pb2' + , + '__doc__': """Container for enum describing possible not empty errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.NotEmptyErrorEnum) + }) +_sym_db.RegisterMessage(NotEmptyErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/not_empty_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/null_error_pb2.py b/google/ads/google_ads/v5/proto/errors/null_error_pb2.py new file mode 100644 index 000000000..e36f30f59 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/null_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/null_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/null_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\016NullErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/errors/null_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"L\n\rNullErrorEnum\";\n\tNullError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cNULL_CONTENT\x10\x02\x42\xe9\x01\n\"com.google.ads.googleads.v5.errorsB\x0eNullErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_NULLERRORENUM_NULLERROR = _descriptor.EnumDescriptor( + name='NullError', + full_name='google.ads.googleads.v5.errors.NullErrorEnum.NullError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NULL_CONTENT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=136, + serialized_end=195, +) +_sym_db.RegisterEnumDescriptor(_NULLERRORENUM_NULLERROR) + + +_NULLERRORENUM = _descriptor.Descriptor( + name='NullErrorEnum', + full_name='google.ads.googleads.v5.errors.NullErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NULLERRORENUM_NULLERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=195, +) + +_NULLERRORENUM_NULLERROR.containing_type = _NULLERRORENUM +DESCRIPTOR.message_types_by_name['NullErrorEnum'] = _NULLERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NullErrorEnum = _reflection.GeneratedProtocolMessageType('NullErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _NULLERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.null_error_pb2' + , + '__doc__': """Container for enum describing possible null errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.NullErrorEnum) + }) +_sym_db.RegisterMessage(NullErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/null_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/null_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/null_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2.py b/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2.py new file mode 100644 index 000000000..dee532f22 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2.py @@ -0,0 +1,230 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/offline_user_data_job_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/offline_user_data_job_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\034OfflineUserDataJobErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/errors/offline_user_data_job_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x93\x07\n\x1bOfflineUserDataJobErrorEnum\"\xf3\x06\n\x17OfflineUserDataJobError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14INVALID_USER_LIST_ID\x10\x03\x12\x1a\n\x16INVALID_USER_LIST_TYPE\x10\x04\x12 \n\x1cNOT_ON_ALLOWLIST_FOR_USER_ID\x10!\x12 \n\x1cINCOMPATIBLE_UPLOAD_KEY_TYPE\x10\x06\x12\x1b\n\x17MISSING_USER_IDENTIFIER\x10\x07\x12\x1c\n\x18INVALID_MOBILE_ID_FORMAT\x10\x08\x12\x1d\n\x19TOO_MANY_USER_IDENTIFIERS\x10\t\x12+\n\'NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT\x10\x1f\x12,\n(NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES\x10 \x12\x16\n\x12INVALID_PARTNER_ID\x10\x0b\x12\x14\n\x10INVALID_ENCODING\x10\x0c\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\r\x12 \n\x1cINCOMPATIBLE_USER_IDENTIFIER\x10\x0e\x12\x1b\n\x17\x46UTURE_TRANSACTION_TIME\x10\x0f\x12\x1d\n\x19INVALID_CONVERSION_ACTION\x10\x10\x12\x1b\n\x17MOBILE_ID_NOT_SUPPORTED\x10\x11\x12\x1b\n\x17INVALID_OPERATION_ORDER\x10\x12\x12\x19\n\x15\x43ONFLICTING_OPERATION\x10\x13\x12%\n!EXTERNAL_UPDATE_ID_ALREADY_EXISTS\x10\x15\x12\x17\n\x13JOB_ALREADY_STARTED\x10\x16\x12\x18\n\x14REMOVE_NOT_SUPPORTED\x10\x17\x12\x1c\n\x18REMOVE_ALL_NOT_SUPPORTED\x10\x18\x12\x19\n\x15INVALID_SHA256_FORMAT\x10\x19\x12\x17\n\x13\x43USTOM_KEY_DISABLED\x10\x1a\x12\x1d\n\x19\x43USTOM_KEY_NOT_PREDEFINED\x10\x1b\x12\x16\n\x12\x43USTOM_KEY_NOT_SET\x10\x1d\x12-\n)CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS\x10\x1e\x42\xf7\x01\n\"com.google.ads.googleads.v5.errorsB\x1cOfflineUserDataJobErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_OFFLINEUSERDATAJOBERRORENUM_OFFLINEUSERDATAJOBERROR = _descriptor.EnumDescriptor( + name='OfflineUserDataJobError', + full_name='google.ads.googleads.v5.errors.OfflineUserDataJobErrorEnum.OfflineUserDataJobError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_LIST_ID', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_LIST_TYPE', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ON_ALLOWLIST_FOR_USER_ID', index=4, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_UPLOAD_KEY_TYPE', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_USER_IDENTIFIER', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_ID_FORMAT', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_USER_IDENTIFIERS', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT', index=9, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES', index=10, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PARTNER_ID', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ENCODING', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_USER_IDENTIFIER', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FUTURE_TRANSACTION_TIME', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONVERSION_ACTION', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_ID_NOT_SUPPORTED', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATION_ORDER', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONFLICTING_OPERATION', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_UPDATE_ID_ALREADY_EXISTS', index=20, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='JOB_ALREADY_STARTED', index=21, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVE_NOT_SUPPORTED', index=22, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVE_ALL_NOT_SUPPORTED', index=23, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_SHA256_FORMAT', index=24, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_KEY_DISABLED', index=25, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_KEY_NOT_PREDEFINED', index=26, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOM_KEY_NOT_SET', index=27, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS', index=28, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=169, + serialized_end=1052, +) +_sym_db.RegisterEnumDescriptor(_OFFLINEUSERDATAJOBERRORENUM_OFFLINEUSERDATAJOBERROR) + + +_OFFLINEUSERDATAJOBERRORENUM = _descriptor.Descriptor( + name='OfflineUserDataJobErrorEnum', + full_name='google.ads.googleads.v5.errors.OfflineUserDataJobErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OFFLINEUSERDATAJOBERRORENUM_OFFLINEUSERDATAJOBERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=1052, +) + +_OFFLINEUSERDATAJOBERRORENUM_OFFLINEUSERDATAJOBERROR.containing_type = _OFFLINEUSERDATAJOBERRORENUM +DESCRIPTOR.message_types_by_name['OfflineUserDataJobErrorEnum'] = _OFFLINEUSERDATAJOBERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OfflineUserDataJobErrorEnum = _reflection.GeneratedProtocolMessageType('OfflineUserDataJobErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _OFFLINEUSERDATAJOBERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.offline_user_data_job_error_pb2' + , + '__doc__': """Container for enum describing possible offline user data job errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.OfflineUserDataJobErrorEnum) + }) +_sym_db.RegisterMessage(OfflineUserDataJobErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/offline_user_data_job_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2.py b/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2.py new file mode 100644 index 000000000..5abebe334 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2.py @@ -0,0 +1,145 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/operation_access_denied_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/operation_access_denied_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\037OperationAccessDeniedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/errors/operation_access_denied_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xeb\x03\n\x1eOperationAccessDeniedErrorEnum\"\xc8\x03\n\x1aOperationAccessDeniedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14\x41\x43TION_NOT_PERMITTED\x10\x02\x12\"\n\x1e\x43REATE_OPERATION_NOT_PERMITTED\x10\x03\x12\"\n\x1eREMOVE_OPERATION_NOT_PERMITTED\x10\x04\x12\"\n\x1eUPDATE_OPERATION_NOT_PERMITTED\x10\x05\x12*\n&MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT\x10\x06\x12-\n)OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE\x10\x07\x12#\n\x1f\x43REATE_AS_REMOVED_NOT_PERMITTED\x10\x08\x12\x30\n,OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE\x10\t\x12-\n)OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE\x10\n\x12%\n!MUTATE_NOT_PERMITTED_FOR_CUSTOMER\x10\x0b\x42\xfa\x01\n\"com.google.ads.googleads.v5.errorsB\x1fOperationAccessDeniedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR = _descriptor.EnumDescriptor( + name='OperationAccessDeniedError', + full_name='google.ads.googleads.v5.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACTION_NOT_PERMITTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CREATE_OPERATION_NOT_PERMITTED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REMOVE_OPERATION_NOT_PERMITTED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_OPERATION_NOT_PERMITTED', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CREATE_AS_REMOVED_NOT_PERMITTED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MUTATE_NOT_PERMITTED_FOR_CUSTOMER', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=174, + serialized_end=630, +) +_sym_db.RegisterEnumDescriptor(_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR) + + +_OPERATIONACCESSDENIEDERRORENUM = _descriptor.Descriptor( + name='OperationAccessDeniedErrorEnum', + full_name='google.ads.googleads.v5.errors.OperationAccessDeniedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=139, + serialized_end=630, +) + +_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR.containing_type = _OPERATIONACCESSDENIEDERRORENUM +DESCRIPTOR.message_types_by_name['OperationAccessDeniedErrorEnum'] = _OPERATIONACCESSDENIEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OperationAccessDeniedErrorEnum = _reflection.GeneratedProtocolMessageType('OperationAccessDeniedErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _OPERATIONACCESSDENIEDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.operation_access_denied_error_pb2' + , + '__doc__': """Container for enum describing possible operation access denied errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.OperationAccessDeniedErrorEnum) + }) +_sym_db.RegisterMessage(OperationAccessDeniedErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/operation_access_denied_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/operator_error_pb2.py b/google/ads/google_ads/v5/proto/errors/operator_error_pb2.py new file mode 100644 index 000000000..fff9c27a8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/operator_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/operator_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/operator_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022OperatorErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/errors/operator_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"^\n\x11OperatorErrorEnum\"I\n\rOperatorError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16OPERATOR_NOT_SUPPORTED\x10\x02\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12OperatorErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_OPERATORERRORENUM_OPERATORERROR = _descriptor.EnumDescriptor( + name='OperatorError', + full_name='google.ads.googleads.v5.errors.OperatorErrorEnum.OperatorError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATOR_NOT_SUPPORTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=217, +) +_sym_db.RegisterEnumDescriptor(_OPERATORERRORENUM_OPERATORERROR) + + +_OPERATORERRORENUM = _descriptor.Descriptor( + name='OperatorErrorEnum', + full_name='google.ads.googleads.v5.errors.OperatorErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OPERATORERRORENUM_OPERATORERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=217, +) + +_OPERATORERRORENUM_OPERATORERROR.containing_type = _OPERATORERRORENUM +DESCRIPTOR.message_types_by_name['OperatorErrorEnum'] = _OPERATORERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OperatorErrorEnum = _reflection.GeneratedProtocolMessageType('OperatorErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _OPERATORERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.operator_error_pb2' + , + '__doc__': """Container for enum describing possible operator errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.OperatorErrorEnum) + }) +_sym_db.RegisterMessage(OperatorErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/operator_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/operator_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/operator_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2.py b/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2.py new file mode 100644 index 000000000..1bb4fa45f --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/partial_failure_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/partial_failure_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030PartialFailureErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/errors/partial_failure_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"q\n\x17PartialFailureErrorEnum\"V\n\x13PartialFailureError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1dPARTIAL_FAILURE_MODE_REQUIRED\x10\x02\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18PartialFailureErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PARTIALFAILUREERRORENUM_PARTIALFAILUREERROR = _descriptor.EnumDescriptor( + name='PartialFailureError', + full_name='google.ads.googleads.v5.errors.PartialFailureErrorEnum.PartialFailureError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PARTIAL_FAILURE_MODE_REQUIRED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=157, + serialized_end=243, +) +_sym_db.RegisterEnumDescriptor(_PARTIALFAILUREERRORENUM_PARTIALFAILUREERROR) + + +_PARTIALFAILUREERRORENUM = _descriptor.Descriptor( + name='PartialFailureErrorEnum', + full_name='google.ads.googleads.v5.errors.PartialFailureErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PARTIALFAILUREERRORENUM_PARTIALFAILUREERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=243, +) + +_PARTIALFAILUREERRORENUM_PARTIALFAILUREERROR.containing_type = _PARTIALFAILUREERRORENUM +DESCRIPTOR.message_types_by_name['PartialFailureErrorEnum'] = _PARTIALFAILUREERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PartialFailureErrorEnum = _reflection.GeneratedProtocolMessageType('PartialFailureErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _PARTIALFAILUREERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.partial_failure_error_pb2' + , + '__doc__': """Container for enum describing possible partial failure errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PartialFailureErrorEnum) + }) +_sym_db.RegisterMessage(PartialFailureErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/partial_failure_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2.py b/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2.py new file mode 100644 index 000000000..190da2799 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/payments_account_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/payments_account_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031PaymentsAccountErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/payments_account_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"x\n\x18PaymentsAccountErrorEnum\"\\\n\x14PaymentsAccountError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12&\n\"NOT_SUPPORTED_FOR_MANAGER_CUSTOMER\x10\x02\x42\xf4\x01\n\"com.google.ads.googleads.v5.errorsB\x19PaymentsAccountErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_PAYMENTSACCOUNTERRORENUM_PAYMENTSACCOUNTERROR = _descriptor.EnumDescriptor( + name='PaymentsAccountError', + full_name='google.ads.googleads.v5.errors.PaymentsAccountErrorEnum.PaymentsAccountError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NOT_SUPPORTED_FOR_MANAGER_CUSTOMER', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=251, +) +_sym_db.RegisterEnumDescriptor(_PAYMENTSACCOUNTERRORENUM_PAYMENTSACCOUNTERROR) + + +_PAYMENTSACCOUNTERRORENUM = _descriptor.Descriptor( + name='PaymentsAccountErrorEnum', + full_name='google.ads.googleads.v5.errors.PaymentsAccountErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PAYMENTSACCOUNTERRORENUM_PAYMENTSACCOUNTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=251, +) + +_PAYMENTSACCOUNTERRORENUM_PAYMENTSACCOUNTERROR.containing_type = _PAYMENTSACCOUNTERRORENUM +DESCRIPTOR.message_types_by_name['PaymentsAccountErrorEnum'] = _PAYMENTSACCOUNTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PaymentsAccountErrorEnum = _reflection.GeneratedProtocolMessageType('PaymentsAccountErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _PAYMENTSACCOUNTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.payments_account_error_pb2' + , + '__doc__': """Container for enum describing possible errors in payments account + service.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PaymentsAccountErrorEnum) + }) +_sym_db.RegisterMessage(PaymentsAccountErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/payments_account_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2.py b/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2.py new file mode 100644 index 000000000..d4145c81e --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/policy_finding_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/policy_finding_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\027PolicyFindingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/errors/policy_finding_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"|\n\x16PolicyFindingErrorEnum\"b\n\x12PolicyFindingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0ePOLICY_FINDING\x10\x02\x12\x1a\n\x16POLICY_TOPIC_NOT_FOUND\x10\x03\x42\xf2\x01\n\"com.google.ads.googleads.v5.errorsB\x17PolicyFindingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYFINDINGERRORENUM_POLICYFINDINGERROR = _descriptor.EnumDescriptor( + name='PolicyFindingError', + full_name='google.ads.googleads.v5.errors.PolicyFindingErrorEnum.PolicyFindingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='POLICY_FINDING', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='POLICY_TOPIC_NOT_FOUND', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=155, + serialized_end=253, +) +_sym_db.RegisterEnumDescriptor(_POLICYFINDINGERRORENUM_POLICYFINDINGERROR) + + +_POLICYFINDINGERRORENUM = _descriptor.Descriptor( + name='PolicyFindingErrorEnum', + full_name='google.ads.googleads.v5.errors.PolicyFindingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYFINDINGERRORENUM_POLICYFINDINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=129, + serialized_end=253, +) + +_POLICYFINDINGERRORENUM_POLICYFINDINGERROR.containing_type = _POLICYFINDINGERRORENUM +DESCRIPTOR.message_types_by_name['PolicyFindingErrorEnum'] = _POLICYFINDINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyFindingErrorEnum = _reflection.GeneratedProtocolMessageType('PolicyFindingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYFINDINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.policy_finding_error_pb2' + , + '__doc__': """Container for enum describing possible policy finding errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PolicyFindingErrorEnum) + }) +_sym_db.RegisterMessage(PolicyFindingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_finding_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2.py b/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2.py new file mode 100644 index 000000000..cfcc625d4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/policy_validation_parameter_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/policy_validation_parameter_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB#PolicyValidationParameterErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nLgoogle/ads/googleads_v5/proto/errors/policy_validation_parameter_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xa2\x02\n\"PolicyValidationParameterErrorEnum\"\xfb\x01\n\x1ePolicyValidationParameterError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x33\n/UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS\x10\x02\x12\x38\n4UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS\x10\x03\x12L\nHCANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS\x10\x04\x42\xfe\x01\n\"com.google.ads.googleads.v5.errorsB#PolicyValidationParameterErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYVALIDATIONPARAMETERERRORENUM_POLICYVALIDATIONPARAMETERERROR = _descriptor.EnumDescriptor( + name='PolicyValidationParameterError', + full_name='google.ads.googleads.v5.errors.PolicyValidationParameterErrorEnum.PolicyValidationParameterError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=182, + serialized_end=433, +) +_sym_db.RegisterEnumDescriptor(_POLICYVALIDATIONPARAMETERERRORENUM_POLICYVALIDATIONPARAMETERERROR) + + +_POLICYVALIDATIONPARAMETERERRORENUM = _descriptor.Descriptor( + name='PolicyValidationParameterErrorEnum', + full_name='google.ads.googleads.v5.errors.PolicyValidationParameterErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYVALIDATIONPARAMETERERRORENUM_POLICYVALIDATIONPARAMETERERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=143, + serialized_end=433, +) + +_POLICYVALIDATIONPARAMETERERRORENUM_POLICYVALIDATIONPARAMETERERROR.containing_type = _POLICYVALIDATIONPARAMETERERRORENUM +DESCRIPTOR.message_types_by_name['PolicyValidationParameterErrorEnum'] = _POLICYVALIDATIONPARAMETERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyValidationParameterErrorEnum = _reflection.GeneratedProtocolMessageType('PolicyValidationParameterErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYVALIDATIONPARAMETERERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.policy_validation_parameter_error_pb2' + , + '__doc__': """Container for enum describing possible policy validation parameter + errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PolicyValidationParameterErrorEnum) + }) +_sym_db.RegisterMessage(PolicyValidationParameterErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_validation_parameter_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2.py b/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2.py new file mode 100644 index 000000000..04061dabc --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/policy_violation_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/policy_violation_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031PolicyViolationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/policy_violation_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"b\n\x18PolicyViolationErrorEnum\"F\n\x14PolicyViolationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cPOLICY_ERROR\x10\x02\x42\xf4\x01\n\"com.google.ads.googleads.v5.errorsB\x19PolicyViolationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_POLICYVIOLATIONERRORENUM_POLICYVIOLATIONERROR = _descriptor.EnumDescriptor( + name='PolicyViolationError', + full_name='google.ads.googleads.v5.errors.PolicyViolationErrorEnum.PolicyViolationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='POLICY_ERROR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=159, + serialized_end=229, +) +_sym_db.RegisterEnumDescriptor(_POLICYVIOLATIONERRORENUM_POLICYVIOLATIONERROR) + + +_POLICYVIOLATIONERRORENUM = _descriptor.Descriptor( + name='PolicyViolationErrorEnum', + full_name='google.ads.googleads.v5.errors.PolicyViolationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POLICYVIOLATIONERRORENUM_POLICYVIOLATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=131, + serialized_end=229, +) + +_POLICYVIOLATIONERRORENUM_POLICYVIOLATIONERROR.containing_type = _POLICYVIOLATIONERRORENUM +DESCRIPTOR.message_types_by_name['PolicyViolationErrorEnum'] = _POLICYVIOLATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyViolationErrorEnum = _reflection.GeneratedProtocolMessageType('PolicyViolationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _POLICYVIOLATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.policy_violation_error_pb2' + , + '__doc__': """Container for enum describing possible policy violation errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.PolicyViolationErrorEnum) + }) +_sym_db.RegisterMessage(PolicyViolationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/policy_violation_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/query_error_pb2.py b/google/ads/google_ads/v5/proto/errors/query_error_pb2.py new file mode 100644 index 000000000..a8b76a17c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/query_error_pb2.py @@ -0,0 +1,360 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/query_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/query_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017QueryErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/query_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xd3\r\n\x0eQueryErrorEnum\"\xc0\r\n\nQueryError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bQUERY_ERROR\x10\x32\x12\x15\n\x11\x42\x41\x44_ENUM_CONSTANT\x10\x12\x12\x17\n\x13\x42\x41\x44_ESCAPE_SEQUENCE\x10\x07\x12\x12\n\x0e\x42\x41\x44_FIELD_NAME\x10\x0c\x12\x13\n\x0f\x42\x41\x44_LIMIT_VALUE\x10\x0f\x12\x0e\n\nBAD_NUMBER\x10\x05\x12\x10\n\x0c\x42\x41\x44_OPERATOR\x10\x03\x12\x16\n\x12\x42\x41\x44_PARAMETER_NAME\x10=\x12\x17\n\x13\x42\x41\x44_PARAMETER_VALUE\x10>\x12$\n BAD_RESOURCE_TYPE_IN_FROM_CLAUSE\x10-\x12\x0e\n\nBAD_SYMBOL\x10\x02\x12\r\n\tBAD_VALUE\x10\x04\x12\x17\n\x13\x44\x41TE_RANGE_TOO_WIDE\x10$\x12\x19\n\x15\x44\x41TE_RANGE_TOO_NARROW\x10<\x12\x10\n\x0c\x45XPECTED_AND\x10\x1e\x12\x0f\n\x0b\x45XPECTED_BY\x10\x0e\x12-\n)EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE\x10%\x12\"\n\x1e\x45XPECTED_FILTERS_ON_DATE_RANGE\x10\x37\x12\x11\n\rEXPECTED_FROM\x10,\x12\x11\n\rEXPECTED_LIST\x10)\x12.\n*EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE\x10\x10\x12\x13\n\x0f\x45XPECTED_SELECT\x10\r\x12\x19\n\x15\x45XPECTED_SINGLE_VALUE\x10*\x12(\n$EXPECTED_VALUE_WITH_BETWEEN_OPERATOR\x10\x1d\x12\x17\n\x13INVALID_DATE_FORMAT\x10&\x12\x18\n\x14INVALID_STRING_VALUE\x10\x39\x12\'\n#INVALID_VALUE_WITH_BETWEEN_OPERATOR\x10\x1a\x12&\n\"INVALID_VALUE_WITH_DURING_OPERATOR\x10\x16\x12$\n INVALID_VALUE_WITH_LIKE_OPERATOR\x10\x38\x12\x1b\n\x17OPERATOR_FIELD_MISMATCH\x10#\x12&\n\"PROHIBITED_EMPTY_LIST_IN_CONDITION\x10\x1c\x12\x1c\n\x18PROHIBITED_ENUM_CONSTANT\x10\x36\x12\x31\n-PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE\x10\x1f\x12\'\n#PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE\x10(\x12%\n!PROHIBITED_FIELD_IN_SELECT_CLAUSE\x10\x17\x12$\n PROHIBITED_FIELD_IN_WHERE_CLAUSE\x10\x18\x12+\n\'PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE\x10+\x12-\n)PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE\x10\x30\x12,\n(PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE\x10:\x12/\n+PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE\x10\x31\x12\x30\n,PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE\x10\x33\x12<\n8PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE\x10\x35\x12\x17\n\x13LIMIT_VALUE_TOO_LOW\x10\x19\x12 \n\x1cPROHIBITED_NEWLINE_IN_STRING\x10\x08\x12(\n$PROHIBITED_VALUE_COMBINATION_IN_LIST\x10\n\x12\x36\n2PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR\x10\x15\x12\x19\n\x15STRING_NOT_TERMINATED\x10\x06\x12\x15\n\x11TOO_MANY_SEGMENTS\x10\"\x12\x1b\n\x17UNEXPECTED_END_OF_QUERY\x10\t\x12\x1a\n\x16UNEXPECTED_FROM_CLAUSE\x10/\x12\x16\n\x12UNRECOGNIZED_FIELD\x10 \x12\x14\n\x10UNEXPECTED_INPUT\x10\x0b\x12!\n\x1dREQUESTED_METRICS_FOR_MANAGER\x10;B\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0fQueryErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_QUERYERRORENUM_QUERYERROR = _descriptor.EnumDescriptor( + name='QueryError', + full_name='google.ads.googleads.v5.errors.QueryErrorEnum.QueryError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='QUERY_ERROR', index=2, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_ENUM_CONSTANT', index=3, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_ESCAPE_SEQUENCE', index=4, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_FIELD_NAME', index=5, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_LIMIT_VALUE', index=6, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_NUMBER', index=7, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_OPERATOR', index=8, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_PARAMETER_NAME', index=9, number=61, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_PARAMETER_VALUE', index=10, number=62, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_RESOURCE_TYPE_IN_FROM_CLAUSE', index=11, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_SYMBOL', index=12, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BAD_VALUE', index=13, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_TOO_WIDE', index=14, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_TOO_NARROW', index=15, number=60, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_AND', index=16, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_BY', index=17, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE', index=18, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_FILTERS_ON_DATE_RANGE', index=19, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_FROM', index=20, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_LIST', index=21, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE', index=22, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_SELECT', index=23, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_SINGLE_VALUE', index=24, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXPECTED_VALUE_WITH_BETWEEN_OPERATOR', index=25, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE_FORMAT', index=26, number=38, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_VALUE', index=27, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_BETWEEN_OPERATOR', index=28, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_DURING_OPERATOR', index=29, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_LIKE_OPERATOR', index=30, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATOR_FIELD_MISMATCH', index=31, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_EMPTY_LIST_IN_CONDITION', index=32, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_ENUM_CONSTANT', index=33, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE', index=34, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE', index=35, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_SELECT_CLAUSE', index=36, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_WHERE_CLAUSE', index=37, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE', index=38, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE', index=39, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE', index=40, number=58, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE', index=41, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE', index=42, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE', index=43, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LIMIT_VALUE_TOO_LOW', index=44, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_NEWLINE_IN_STRING', index=45, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_VALUE_COMBINATION_IN_LIST', index=46, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR', index=47, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING_NOT_TERMINATED', index=48, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_SEGMENTS', index=49, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_END_OF_QUERY', index=50, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_FROM_CLAUSE', index=51, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNRECOGNIZED_FIELD', index=52, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_INPUT', index=53, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUESTED_METRICS_FOR_MANAGER', index=54, number=59, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=140, + serialized_end=1868, +) +_sym_db.RegisterEnumDescriptor(_QUERYERRORENUM_QUERYERROR) + + +_QUERYERRORENUM = _descriptor.Descriptor( + name='QueryErrorEnum', + full_name='google.ads.googleads.v5.errors.QueryErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUERYERRORENUM_QUERYERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=1868, +) + +_QUERYERRORENUM_QUERYERROR.containing_type = _QUERYERRORENUM +DESCRIPTOR.message_types_by_name['QueryErrorEnum'] = _QUERYERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QueryErrorEnum = _reflection.GeneratedProtocolMessageType('QueryErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _QUERYERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.query_error_pb2' + , + '__doc__': """Container for enum describing possible query errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.QueryErrorEnum) + }) +_sym_db.RegisterMessage(QueryErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/query_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/query_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/query_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/quota_error_pb2.py b/google/ads/google_ads/v5/proto/errors/quota_error_pb2.py new file mode 100644 index 000000000..96545391c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/quota_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/quota_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/quota_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017QuotaErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/quota_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x8f\x01\n\x0eQuotaErrorEnum\"}\n\nQuotaError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12RESOURCE_EXHAUSTED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45SS_PROHIBITED\x10\x03\x12\"\n\x1eRESOURCE_TEMPORARILY_EXHAUSTED\x10\x04\x42\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0fQuotaErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_QUOTAERRORENUM_QUOTAERROR = _descriptor.EnumDescriptor( + name='QuotaError', + full_name='google.ads.googleads.v5.errors.QuotaErrorEnum.QuotaError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_EXHAUSTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACCESS_PROHIBITED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESOURCE_TEMPORARILY_EXHAUSTED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=139, + serialized_end=264, +) +_sym_db.RegisterEnumDescriptor(_QUOTAERRORENUM_QUOTAERROR) + + +_QUOTAERRORENUM = _descriptor.Descriptor( + name='QuotaErrorEnum', + full_name='google.ads.googleads.v5.errors.QuotaErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUOTAERRORENUM_QUOTAERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=121, + serialized_end=264, +) + +_QUOTAERRORENUM_QUOTAERROR.containing_type = _QUOTAERRORENUM +DESCRIPTOR.message_types_by_name['QuotaErrorEnum'] = _QUOTAERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QuotaErrorEnum = _reflection.GeneratedProtocolMessageType('QuotaErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _QUOTAERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.quota_error_pb2' + , + '__doc__': """Container for enum describing possible quota errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.QuotaErrorEnum) + }) +_sym_db.RegisterMessage(QuotaErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/quota_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/quota_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/quota_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/range_error_pb2.py b/google/ads/google_ads/v5/proto/errors/range_error_pb2.py new file mode 100644 index 000000000..4827c6a02 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/range_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/range_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/range_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\017RangeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/errors/range_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"W\n\x0eRangeErrorEnum\"E\n\nRangeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07TOO_LOW\x10\x02\x12\x0c\n\x08TOO_HIGH\x10\x03\x42\xea\x01\n\"com.google.ads.googleads.v5.errorsB\x0fRangeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_RANGEERRORENUM_RANGEERROR = _descriptor.EnumDescriptor( + name='RangeError', + full_name='google.ads.googleads.v5.errors.RangeErrorEnum.RangeError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_LOW', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_HIGH', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=138, + serialized_end=207, +) +_sym_db.RegisterEnumDescriptor(_RANGEERRORENUM_RANGEERROR) + + +_RANGEERRORENUM = _descriptor.Descriptor( + name='RangeErrorEnum', + full_name='google.ads.googleads.v5.errors.RangeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RANGEERRORENUM_RANGEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=120, + serialized_end=207, +) + +_RANGEERRORENUM_RANGEERROR.containing_type = _RANGEERRORENUM +DESCRIPTOR.message_types_by_name['RangeErrorEnum'] = _RANGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RangeErrorEnum = _reflection.GeneratedProtocolMessageType('RangeErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _RANGEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.range_error_pb2' + , + '__doc__': """Container for enum describing possible range errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.RangeErrorEnum) + }) +_sym_db.RegisterMessage(RangeErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/range_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/range_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/range_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2.py b/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2.py new file mode 100644 index 000000000..5482843bd --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/reach_plan_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/reach_plan_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023ReachPlanErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/reach_plan_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"D\n\x12ReachPlanErrorEnum\".\n\x0eReachPlanError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13ReachPlanErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_REACHPLANERRORENUM_REACHPLANERROR = _descriptor.EnumDescriptor( + name='ReachPlanError', + full_name='google.ads.googleads.v5.errors.ReachPlanErrorEnum.ReachPlanError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=193, +) +_sym_db.RegisterEnumDescriptor(_REACHPLANERRORENUM_REACHPLANERROR) + + +_REACHPLANERRORENUM = _descriptor.Descriptor( + name='ReachPlanErrorEnum', + full_name='google.ads.googleads.v5.errors.ReachPlanErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _REACHPLANERRORENUM_REACHPLANERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=193, +) + +_REACHPLANERRORENUM_REACHPLANERROR.containing_type = _REACHPLANERRORENUM +DESCRIPTOR.message_types_by_name['ReachPlanErrorEnum'] = _REACHPLANERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ReachPlanErrorEnum = _reflection.GeneratedProtocolMessageType('ReachPlanErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _REACHPLANERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.reach_plan_error_pb2' + , + '__doc__': """Container for enum describing possible errors returned from the + ReachPlanService.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ReachPlanErrorEnum) + }) +_sym_db.RegisterMessage(ReachPlanErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/reach_plan_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2.py b/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2.py new file mode 100644 index 000000000..957276840 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/recommendation_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/recommendation_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\030RecommendationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/errors/recommendation_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xda\x03\n\x17RecommendationErrorEnum\"\xbe\x03\n\x13RecommendationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17\x42UDGET_AMOUNT_TOO_SMALL\x10\x02\x12\x1b\n\x17\x42UDGET_AMOUNT_TOO_LARGE\x10\x03\x12\x19\n\x15INVALID_BUDGET_AMOUNT\x10\x04\x12\x10\n\x0cPOLICY_ERROR\x10\x05\x12\x16\n\x12INVALID_BID_AMOUNT\x10\x06\x12\x19\n\x15\x41\x44GROUP_KEYWORD_LIMIT\x10\x07\x12\"\n\x1eRECOMMENDATION_ALREADY_APPLIED\x10\x08\x12\x1e\n\x1aRECOMMENDATION_INVALIDATED\x10\t\x12\x17\n\x13TOO_MANY_OPERATIONS\x10\n\x12\x11\n\rNO_OPERATIONS\x10\x0b\x12!\n\x1d\x44IFFERENT_TYPES_NOT_SUPPORTED\x10\x0c\x12\x1b\n\x17\x44UPLICATE_RESOURCE_NAME\x10\r\x12$\n RECOMMENDATION_ALREADY_DISMISSED\x10\x0e\x12\x19\n\x15INVALID_APPLY_REQUEST\x10\x0f\x42\xf3\x01\n\"com.google.ads.googleads.v5.errorsB\x18RecommendationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR = _descriptor.EnumDescriptor( + name='RecommendationError', + full_name='google.ads.googleads.v5.errors.RecommendationErrorEnum.RecommendationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BUDGET_AMOUNT_TOO_SMALL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BUDGET_AMOUNT_TOO_LARGE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_BUDGET_AMOUNT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='POLICY_ERROR', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_BID_AMOUNT', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADGROUP_KEYWORD_LIMIT', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RECOMMENDATION_ALREADY_APPLIED', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RECOMMENDATION_INVALIDATED', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_OPERATIONS', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NO_OPERATIONS', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DIFFERENT_TYPES_NOT_SUPPORTED', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_RESOURCE_NAME', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RECOMMENDATION_ALREADY_DISMISSED', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_APPLY_REQUEST', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=158, + serialized_end=604, +) +_sym_db.RegisterEnumDescriptor(_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR) + + +_RECOMMENDATIONERRORENUM = _descriptor.Descriptor( + name='RecommendationErrorEnum', + full_name='google.ads.googleads.v5.errors.RecommendationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=130, + serialized_end=604, +) + +_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR.containing_type = _RECOMMENDATIONERRORENUM +DESCRIPTOR.message_types_by_name['RecommendationErrorEnum'] = _RECOMMENDATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RecommendationErrorEnum = _reflection.GeneratedProtocolMessageType('RecommendationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.recommendation_error_pb2' + , + '__doc__': """Container for enum describing possible errors from applying a + recommendation.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.RecommendationErrorEnum) + }) +_sym_db.RegisterMessage(RecommendationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/recommendation_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/region_code_error_pb2.py b/google/ads/google_ads/v5/proto/errors/region_code_error_pb2.py new file mode 100644 index 000000000..faca90c40 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/region_code_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/region_code_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/region_code_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\024RegionCodeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\n:TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN\x10\x0c\x12.\n*SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN\x10\x14\x42\xec\x01\n\"com.google.ads.googleads.v5.errorsB\x11SettingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_SETTINGERRORENUM_SETTINGERROR = _descriptor.EnumDescriptor( + name='SettingError', + full_name='google.ads.googleads.v5.errors.SettingErrorEnum.SettingError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SETTING_TYPE_IS_NOT_AVAILABLE', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP', index=6, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT', index=7, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME', index=8, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME', index=9, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE', index=10, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN', index=11, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN', index=12, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=144, + serialized_end=872, +) +_sym_db.RegisterEnumDescriptor(_SETTINGERRORENUM_SETTINGERROR) + + +_SETTINGERRORENUM = _descriptor.Descriptor( + name='SettingErrorEnum', + full_name='google.ads.googleads.v5.errors.SettingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SETTINGERRORENUM_SETTINGERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=123, + serialized_end=872, +) + +_SETTINGERRORENUM_SETTINGERROR.containing_type = _SETTINGERRORENUM +DESCRIPTOR.message_types_by_name['SettingErrorEnum'] = _SETTINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SettingErrorEnum = _reflection.GeneratedProtocolMessageType('SettingErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _SETTINGERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.setting_error_pb2' + , + '__doc__': """Container for enum describing possible setting errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.SettingErrorEnum) + }) +_sym_db.RegisterMessage(SettingErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/setting_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/setting_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/setting_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2.py b/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2.py new file mode 100644 index 000000000..99fc8b2f9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/shared_criterion_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/shared_criterion_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\031SharedCriterionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/errors/shared_criterion_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x84\x01\n\x18SharedCriterionErrorEnum\"h\n\x14SharedCriterionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x32\n.CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE\x10\x02\x42\xf4\x01\n\"com.google.ads.googleads.v5.errorsB\x19SharedCriterionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_SHAREDCRITERIONERRORENUM_SHAREDCRITERIONERROR = _descriptor.EnumDescriptor( + name='SharedCriterionError', + full_name='google.ads.googleads.v5.errors.SharedCriterionErrorEnum.SharedCriterionError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=160, + serialized_end=264, +) +_sym_db.RegisterEnumDescriptor(_SHAREDCRITERIONERRORENUM_SHAREDCRITERIONERROR) + + +_SHAREDCRITERIONERRORENUM = _descriptor.Descriptor( + name='SharedCriterionErrorEnum', + full_name='google.ads.googleads.v5.errors.SharedCriterionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SHAREDCRITERIONERRORENUM_SHAREDCRITERIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=132, + serialized_end=264, +) + +_SHAREDCRITERIONERRORENUM_SHAREDCRITERIONERROR.containing_type = _SHAREDCRITERIONERRORENUM +DESCRIPTOR.message_types_by_name['SharedCriterionErrorEnum'] = _SHAREDCRITERIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SharedCriterionErrorEnum = _reflection.GeneratedProtocolMessageType('SharedCriterionErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDCRITERIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.shared_criterion_error_pb2' + , + '__doc__': """Container for enum describing possible shared criterion errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.SharedCriterionErrorEnum) + }) +_sym_db.RegisterMessage(SharedCriterionErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/shared_criterion_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2.py b/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2.py new file mode 100644 index 000000000..afde39b62 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/shared_set_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/shared_set_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023SharedSetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/shared_set_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xbc\x01\n\x12SharedSetErrorEnum\"\xa5\x01\n\x0eSharedSetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x32\n.CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE\x10\x02\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x03\x12\x16\n\x12SHARED_SET_REMOVED\x10\x04\x12\x15\n\x11SHARED_SET_IN_USE\x10\x05\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13SharedSetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_SHAREDSETERRORENUM_SHAREDSETERROR = _descriptor.EnumDescriptor( + name='SharedSetError', + full_name='google.ads.googleads.v5.errors.SharedSetErrorEnum.SharedSetError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHARED_SET_REMOVED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SHARED_SET_IN_USE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=149, + serialized_end=314, +) +_sym_db.RegisterEnumDescriptor(_SHAREDSETERRORENUM_SHAREDSETERROR) + + +_SHAREDSETERRORENUM = _descriptor.Descriptor( + name='SharedSetErrorEnum', + full_name='google.ads.googleads.v5.errors.SharedSetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SHAREDSETERRORENUM_SHAREDSETERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=314, +) + +_SHAREDSETERRORENUM_SHAREDSETERROR.containing_type = _SHAREDSETERRORENUM +DESCRIPTOR.message_types_by_name['SharedSetErrorEnum'] = _SHAREDSETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SharedSetErrorEnum = _reflection.GeneratedProtocolMessageType('SharedSetErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDSETERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.shared_set_error_pb2' + , + '__doc__': """Container for enum describing possible shared set errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.SharedSetErrorEnum) + }) +_sym_db.RegisterMessage(SharedSetErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/shared_set_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2.py b/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2.py new file mode 100644 index 000000000..0ef0fd35d --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/size_limit_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/size_limit_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\023SizeLimitErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/errors/size_limit_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\x87\x01\n\x12SizeLimitErrorEnum\"q\n\x0eSizeLimitError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1f\n\x1bREQUEST_SIZE_LIMIT_EXCEEDED\x10\x02\x12 \n\x1cRESPONSE_SIZE_LIMIT_EXCEEDED\x10\x03\x42\xee\x01\n\"com.google.ads.googleads.v5.errorsB\x13SizeLimitErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_SIZELIMITERRORENUM_SIZELIMITERROR = _descriptor.EnumDescriptor( + name='SizeLimitError', + full_name='google.ads.googleads.v5.errors.SizeLimitErrorEnum.SizeLimitError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REQUEST_SIZE_LIMIT_EXCEEDED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RESPONSE_SIZE_LIMIT_EXCEEDED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=148, + serialized_end=261, +) +_sym_db.RegisterEnumDescriptor(_SIZELIMITERRORENUM_SIZELIMITERROR) + + +_SIZELIMITERRORENUM = _descriptor.Descriptor( + name='SizeLimitErrorEnum', + full_name='google.ads.googleads.v5.errors.SizeLimitErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SIZELIMITERRORENUM_SIZELIMITERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=261, +) + +_SIZELIMITERRORENUM_SIZELIMITERROR.containing_type = _SIZELIMITERRORENUM +DESCRIPTOR.message_types_by_name['SizeLimitErrorEnum'] = _SIZELIMITERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SizeLimitErrorEnum = _reflection.GeneratedProtocolMessageType('SizeLimitErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _SIZELIMITERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.size_limit_error_pb2' + , + '__doc__': """Container for enum describing possible size limit errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.SizeLimitErrorEnum) + }) +_sym_db.RegisterMessage(SizeLimitErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/size_limit_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/string_format_error_pb2.py b/google/ads/google_ads/v5/proto/errors/string_format_error_pb2.py new file mode 100644 index 000000000..54e7f8a58 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/string_format_error_pb2.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/string_format_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/string_format_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026StringFormatErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/string_format_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"q\n\x15StringFormatErrorEnum\"X\n\x11StringFormatError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rILLEGAL_CHARS\x10\x02\x12\x12\n\x0eINVALID_FORMAT\x10\x03\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16StringFormatErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_STRINGFORMATERRORENUM_STRINGFORMATERROR = _descriptor.EnumDescriptor( + name='StringFormatError', + full_name='google.ads.googleads.v5.errors.StringFormatErrorEnum.StringFormatError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_CHARS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=241, +) +_sym_db.RegisterEnumDescriptor(_STRINGFORMATERRORENUM_STRINGFORMATERROR) + + +_STRINGFORMATERRORENUM = _descriptor.Descriptor( + name='StringFormatErrorEnum', + full_name='google.ads.googleads.v5.errors.StringFormatErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _STRINGFORMATERRORENUM_STRINGFORMATERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=241, +) + +_STRINGFORMATERRORENUM_STRINGFORMATERROR.containing_type = _STRINGFORMATERRORENUM +DESCRIPTOR.message_types_by_name['StringFormatErrorEnum'] = _STRINGFORMATERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StringFormatErrorEnum = _reflection.GeneratedProtocolMessageType('StringFormatErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _STRINGFORMATERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.string_format_error_pb2' + , + '__doc__': """Container for enum describing possible string format errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.StringFormatErrorEnum) + }) +_sym_db.RegisterMessage(StringFormatErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/string_format_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/string_format_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/string_format_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/string_length_error_pb2.py b/google/ads/google_ads/v5/proto/errors/string_length_error_pb2.py new file mode 100644 index 000000000..108ed3444 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/string_length_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/string_length_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/string_length_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\026StringLengthErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/errors/string_length_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"r\n\x15StringLengthErrorEnum\"Y\n\x11StringLengthError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\t\n\x05\x45MPTY\x10\x04\x12\r\n\tTOO_SHORT\x10\x02\x12\x0c\n\x08TOO_LONG\x10\x03\x42\xf1\x01\n\"com.google.ads.googleads.v5.errorsB\x16StringLengthErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_STRINGLENGTHERRORENUM_STRINGLENGTHERROR = _descriptor.EnumDescriptor( + name='StringLengthError', + full_name='google.ads.googleads.v5.errors.StringLengthErrorEnum.StringLengthError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EMPTY', index=2, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_SHORT', index=3, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=4, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=153, + serialized_end=242, +) +_sym_db.RegisterEnumDescriptor(_STRINGLENGTHERRORENUM_STRINGLENGTHERROR) + + +_STRINGLENGTHERRORENUM = _descriptor.Descriptor( + name='StringLengthErrorEnum', + full_name='google.ads.googleads.v5.errors.StringLengthErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _STRINGLENGTHERRORENUM_STRINGLENGTHERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=128, + serialized_end=242, +) + +_STRINGLENGTHERRORENUM_STRINGLENGTHERROR.containing_type = _STRINGLENGTHERRORENUM +DESCRIPTOR.message_types_by_name['StringLengthErrorEnum'] = _STRINGLENGTHERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StringLengthErrorEnum = _reflection.GeneratedProtocolMessageType('StringLengthErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _STRINGLENGTHERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.string_length_error_pb2' + , + '__doc__': """Container for enum describing possible string length errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.StringLengthErrorEnum) + }) +_sym_db.RegisterMessage(StringLengthErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/string_length_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/string_length_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/string_length_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2.py b/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2.py new file mode 100644 index 000000000..a1b4edeaf --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/third_party_app_analytics_link_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/third_party_app_analytics_link_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB$ThirdPartyAppAnalyticsLinkErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/errors/third_party_app_analytics_link_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xfe\x01\n#ThirdPartyAppAnalyticsLinkErrorEnum\"\xd6\x01\n\x1fThirdPartyAppAnalyticsLinkError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1dINVALID_ANALYTICS_PROVIDER_ID\x10\x02\x12\x19\n\x15INVALID_MOBILE_APP_ID\x10\x03\x12\x1d\n\x19MOBILE_APP_IS_NOT_ENABLED\x10\x04\x12\x38\n4CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK\x10\x05\x42\xff\x01\n\"com.google.ads.googleads.v5.errorsB$ThirdPartyAppAnalyticsLinkErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_THIRDPARTYAPPANALYTICSLINKERRORENUM_THIRDPARTYAPPANALYTICSLINKERROR = _descriptor.EnumDescriptor( + name='ThirdPartyAppAnalyticsLinkError', + full_name='google.ads.googleads.v5.errors.ThirdPartyAppAnalyticsLinkErrorEnum.ThirdPartyAppAnalyticsLinkError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_ANALYTICS_PROVIDER_ID', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_APP_ID', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MOBILE_APP_IS_NOT_ENABLED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=186, + serialized_end=400, +) +_sym_db.RegisterEnumDescriptor(_THIRDPARTYAPPANALYTICSLINKERRORENUM_THIRDPARTYAPPANALYTICSLINKERROR) + + +_THIRDPARTYAPPANALYTICSLINKERRORENUM = _descriptor.Descriptor( + name='ThirdPartyAppAnalyticsLinkErrorEnum', + full_name='google.ads.googleads.v5.errors.ThirdPartyAppAnalyticsLinkErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _THIRDPARTYAPPANALYTICSLINKERRORENUM_THIRDPARTYAPPANALYTICSLINKERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=146, + serialized_end=400, +) + +_THIRDPARTYAPPANALYTICSLINKERRORENUM_THIRDPARTYAPPANALYTICSLINKERROR.containing_type = _THIRDPARTYAPPANALYTICSLINKERRORENUM +DESCRIPTOR.message_types_by_name['ThirdPartyAppAnalyticsLinkErrorEnum'] = _THIRDPARTYAPPANALYTICSLINKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ThirdPartyAppAnalyticsLinkErrorEnum = _reflection.GeneratedProtocolMessageType('ThirdPartyAppAnalyticsLinkErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _THIRDPARTYAPPANALYTICSLINKERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.third_party_app_analytics_link_error_pb2' + , + '__doc__': """Container for enum describing possible third party app analytics link + errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.ThirdPartyAppAnalyticsLinkErrorEnum) + }) +_sym_db.RegisterMessage(ThirdPartyAppAnalyticsLinkErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/third_party_app_analytics_link_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2.py b/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2.py new file mode 100644 index 000000000..fa95ca9aa --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/time_zone_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/time_zone_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022TimeZoneErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/time_zone_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"Y\n\x11TimeZoneErrorEnum\"D\n\rTimeZoneError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11INVALID_TIME_ZONE\x10\x05\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12TimeZoneErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_TIMEZONEERRORENUM_TIMEZONEERROR = _descriptor.EnumDescriptor( + name='TimeZoneError', + full_name='google.ads.googleads.v5.errors.TimeZoneErrorEnum.TimeZoneError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TIME_ZONE', index=2, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=145, + serialized_end=213, +) +_sym_db.RegisterEnumDescriptor(_TIMEZONEERRORENUM_TIMEZONEERROR) + + +_TIMEZONEERRORENUM = _descriptor.Descriptor( + name='TimeZoneErrorEnum', + full_name='google.ads.googleads.v5.errors.TimeZoneErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TIMEZONEERRORENUM_TIMEZONEERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=124, + serialized_end=213, +) + +_TIMEZONEERRORENUM_TIMEZONEERROR.containing_type = _TIMEZONEERRORENUM +DESCRIPTOR.message_types_by_name['TimeZoneErrorEnum'] = _TIMEZONEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TimeZoneErrorEnum = _reflection.GeneratedProtocolMessageType('TimeZoneErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _TIMEZONEERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.time_zone_error_pb2' + , + '__doc__': """Container for enum describing possible time zone errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.TimeZoneErrorEnum) + }) +_sym_db.RegisterMessage(TimeZoneErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/time_zone_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/url_field_error_pb2.py b/google/ads/google_ads/v5/proto/errors/url_field_error_pb2.py new file mode 100644 index 000000000..f1e76dda1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/url_field_error_pb2.py @@ -0,0 +1,355 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/url_field_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/url_field_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022UrlFieldErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/url_field_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xb6\x0e\n\x11UrlFieldErrorEnum\"\xa0\x0e\n\rUrlFieldError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1dINVALID_TRACKING_URL_TEMPLATE\x10\x02\x12(\n$INVALID_TAG_IN_TRACKING_URL_TEMPLATE\x10\x03\x12%\n!MISSING_TRACKING_URL_TEMPLATE_TAG\x10\x04\x12-\n)MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE\x10\x05\x12-\n)INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE\x10\x06\x12#\n\x1fMALFORMED_TRACKING_URL_TEMPLATE\x10\x07\x12)\n%MISSING_HOST_IN_TRACKING_URL_TEMPLATE\x10\x08\x12(\n$INVALID_TLD_IN_TRACKING_URL_TEMPLATE\x10\t\x12.\n*REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG\x10\n\x12\x15\n\x11INVALID_FINAL_URL\x10\x0b\x12\x1c\n\x18INVALID_TAG_IN_FINAL_URL\x10\x0c\x12\"\n\x1eREDUNDANT_NESTED_FINAL_URL_TAG\x10\r\x12!\n\x1dMISSING_PROTOCOL_IN_FINAL_URL\x10\x0e\x12!\n\x1dINVALID_PROTOCOL_IN_FINAL_URL\x10\x0f\x12\x17\n\x13MALFORMED_FINAL_URL\x10\x10\x12\x1d\n\x19MISSING_HOST_IN_FINAL_URL\x10\x11\x12\x1c\n\x18INVALID_TLD_IN_FINAL_URL\x10\x12\x12\x1c\n\x18INVALID_FINAL_MOBILE_URL\x10\x13\x12#\n\x1fINVALID_TAG_IN_FINAL_MOBILE_URL\x10\x14\x12)\n%REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG\x10\x15\x12(\n$MISSING_PROTOCOL_IN_FINAL_MOBILE_URL\x10\x16\x12(\n$INVALID_PROTOCOL_IN_FINAL_MOBILE_URL\x10\x17\x12\x1e\n\x1aMALFORMED_FINAL_MOBILE_URL\x10\x18\x12$\n MISSING_HOST_IN_FINAL_MOBILE_URL\x10\x19\x12#\n\x1fINVALID_TLD_IN_FINAL_MOBILE_URL\x10\x1a\x12\x19\n\x15INVALID_FINAL_APP_URL\x10\x1b\x12 \n\x1cINVALID_TAG_IN_FINAL_APP_URL\x10\x1c\x12&\n\"REDUNDANT_NESTED_FINAL_APP_URL_TAG\x10\x1d\x12 \n\x1cMULTIPLE_APP_URLS_FOR_OSTYPE\x10\x1e\x12\x12\n\x0eINVALID_OSTYPE\x10\x1f\x12 \n\x1cINVALID_PROTOCOL_FOR_APP_URL\x10 \x12\"\n\x1eINVALID_PACKAGE_ID_FOR_APP_URL\x10!\x12-\n)URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT\x10\"\x12\x32\n.INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY\x10\'\x12\x34\n0INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE\x10(\x12-\n)INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE\x10)\x12-\n)REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG\x10*\x12\x14\n\x10MISSING_PROTOCOL\x10+\x12\x14\n\x10INVALID_PROTOCOL\x10\x34\x12\x0f\n\x0bINVALID_URL\x10,\x12\x1e\n\x1a\x44\x45STINATION_URL_DEPRECATED\x10-\x12\x16\n\x12INVALID_TAG_IN_URL\x10.\x12\x13\n\x0fMISSING_URL_TAG\x10/\x12\x14\n\x10\x44UPLICATE_URL_ID\x10\x30\x12\x12\n\x0eINVALID_URL_ID\x10\x31\x12\x1e\n\x1a\x46INAL_URL_SUFFIX_MALFORMED\x10\x32\x12#\n\x1fINVALID_TAG_IN_FINAL_URL_SUFFIX\x10\x33\x12\x1c\n\x18INVALID_TOP_LEVEL_DOMAIN\x10\x35\x12\x1e\n\x1aMALFORMED_TOP_LEVEL_DOMAIN\x10\x36\x12\x11\n\rMALFORMED_URL\x10\x37\x12\x10\n\x0cMISSING_HOST\x10\x38\x12\x1f\n\x1bNULL_CUSTOM_PARAMETER_VALUE\x10\x39\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12UrlFieldErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_URLFIELDERRORENUM_URLFIELDERROR = _descriptor.EnumDescriptor( + name='UrlFieldError', + full_name='google.ads.googleads.v5.errors.UrlFieldErrorEnum.UrlFieldError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TRACKING_URL_TEMPLATE', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_TRACKING_URL_TEMPLATE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_TRACKING_URL_TEMPLATE_TAG', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_TRACKING_URL_TEMPLATE', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_TRACKING_URL_TEMPLATE', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_TRACKING_URL_TEMPLATE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_URL', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_URL_TAG', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_FINAL_URL', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_FINAL_URL', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_FINAL_URL', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_FINAL_URL', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_FINAL_URL', index=18, number=18, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_MOBILE_URL', index=19, number=19, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_MOBILE_URL', index=20, number=20, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG', index=21, number=21, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_FINAL_MOBILE_URL', index=22, number=22, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_FINAL_MOBILE_URL', index=23, number=23, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_FINAL_MOBILE_URL', index=24, number=24, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_FINAL_MOBILE_URL', index=25, number=25, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_FINAL_MOBILE_URL', index=26, number=26, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_APP_URL', index=27, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_APP_URL', index=28, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_APP_URL_TAG', index=29, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_APP_URLS_FOR_OSTYPE', index=30, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_OSTYPE', index=31, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_FOR_APP_URL', index=32, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PACKAGE_ID_FOR_APP_URL', index=33, number=33, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT', index=34, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY', index=35, number=39, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE', index=36, number=40, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE', index=37, number=41, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG', index=38, number=42, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL', index=39, number=43, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL', index=40, number=52, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL', index=41, number=44, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DESTINATION_URL_DEPRECATED', index=42, number=45, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_URL', index=43, number=46, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_URL_TAG', index=44, number=47, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_URL_ID', index=45, number=48, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_ID', index=46, number=49, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FINAL_URL_SUFFIX_MALFORMED', index=47, number=50, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_URL_SUFFIX', index=48, number=51, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TOP_LEVEL_DOMAIN', index=49, number=53, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_TOP_LEVEL_DOMAIN', index=50, number=54, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MALFORMED_URL', index=51, number=55, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST', index=52, number=56, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NULL_CUSTOM_PARAMETER_VALUE', index=53, number=57, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=1971, +) +_sym_db.RegisterEnumDescriptor(_URLFIELDERRORENUM_URLFIELDERROR) + + +_URLFIELDERRORENUM = _descriptor.Descriptor( + name='UrlFieldErrorEnum', + full_name='google.ads.googleads.v5.errors.UrlFieldErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _URLFIELDERRORENUM_URLFIELDERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=1971, +) + +_URLFIELDERRORENUM_URLFIELDERROR.containing_type = _URLFIELDERRORENUM +DESCRIPTOR.message_types_by_name['UrlFieldErrorEnum'] = _URLFIELDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UrlFieldErrorEnum = _reflection.GeneratedProtocolMessageType('UrlFieldErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _URLFIELDERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.url_field_error_pb2' + , + '__doc__': """Container for enum describing possible url field errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.UrlFieldErrorEnum) + }) +_sym_db.RegisterMessage(UrlFieldErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/url_field_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/url_field_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/url_field_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/user_data_error_pb2.py b/google/ads/google_ads/v5/proto/errors/user_data_error_pb2.py new file mode 100644 index 000000000..ac0e928b6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/user_data_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/user_data_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/user_data_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022UserDataErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/user_data_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xaf\x01\n\x11UserDataErrorEnum\"\x99\x01\n\rUserDataError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12-\n)OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED\x10\x02\x12\x1d\n\x19TOO_MANY_USER_IDENTIFIERS\x10\x03\x12\x1c\n\x18USER_LIST_NOT_APPLICABLE\x10\x04\x42\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12UserDataErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_USERDATAERRORENUM_USERDATAERROR = _descriptor.EnumDescriptor( + name='UserDataError', + full_name='google.ads.googleads.v5.errors.UserDataErrorEnum.UserDataError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_USER_IDENTIFIERS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER_LIST_NOT_APPLICABLE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=300, +) +_sym_db.RegisterEnumDescriptor(_USERDATAERRORENUM_USERDATAERROR) + + +_USERDATAERRORENUM = _descriptor.Descriptor( + name='UserDataErrorEnum', + full_name='google.ads.googleads.v5.errors.UserDataErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _USERDATAERRORENUM_USERDATAERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=300, +) + +_USERDATAERRORENUM_USERDATAERROR.containing_type = _USERDATAERRORENUM +DESCRIPTOR.message_types_by_name['UserDataErrorEnum'] = _USERDATAERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserDataErrorEnum = _reflection.GeneratedProtocolMessageType('UserDataErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _USERDATAERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.user_data_error_pb2' + , + '__doc__': """Container for enum describing possible user data errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.UserDataErrorEnum) + }) +_sym_db.RegisterMessage(UserDataErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/user_data_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/user_data_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/user_data_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/user_list_error_pb2.py b/google/ads/google_ads/v5/proto/errors/user_list_error_pb2.py new file mode 100644 index 000000000..a164cf49d --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/user_list_error_pb2.py @@ -0,0 +1,225 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/user_list_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/user_list_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\022UserListErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/errors/user_list_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xed\x07\n\x11UserListErrorEnum\"\xd7\x07\n\rUserListError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x37\n3EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED\x10\x02\x12\x1a\n\x16\x43ONCRETE_TYPE_REQUIRED\x10\x03\x12\x1f\n\x1b\x43ONVERSION_TYPE_ID_REQUIRED\x10\x04\x12\x1e\n\x1a\x44UPLICATE_CONVERSION_TYPES\x10\x05\x12\x1b\n\x17INVALID_CONVERSION_TYPE\x10\x06\x12\x17\n\x13INVALID_DESCRIPTION\x10\x07\x12\x10\n\x0cINVALID_NAME\x10\x08\x12\x10\n\x0cINVALID_TYPE\x10\t\x12\x34\n0CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND\x10\n\x12*\n&INVALID_USER_LIST_LOGICAL_RULE_OPERAND\x10\x0b\x12\x15\n\x11NAME_ALREADY_USED\x10\x0c\x12%\n!NEW_CONVERSION_TYPE_NAME_REQUIRED\x10\r\x12%\n!CONVERSION_TYPE_NAME_ALREADY_USED\x10\x0e\x12\x1e\n\x1aOWNERSHIP_REQUIRED_FOR_SET\x10\x0f\x12\"\n\x1eUSER_LIST_MUTATE_NOT_SUPPORTED\x10\x10\x12\x10\n\x0cINVALID_RULE\x10\x11\x12\x16\n\x12INVALID_DATE_RANGE\x10\x1b\x12%\n!CAN_NOT_MUTATE_SENSITIVE_USERLIST\x10\x1c\x12\x1f\n\x1bMAX_NUM_RULEBASED_USERLISTS\x10\x1d\x12\'\n#CANNOT_MODIFY_BILLABLE_RECORD_COUNT\x10\x1e\x12\x12\n\x0e\x41PP_ID_NOT_SET\x10\x1f\x12-\n)USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST\x10 \x12\x37\n3ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA\x10%\x12\x1e\n\x1aRULE_TYPE_IS_NOT_SUPPORTED\x10\"\x12:\n6CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND\x10#\x12:\n6CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS\x10$B\xed\x01\n\"com.google.ads.googleads.v5.errorsB\x12UserListErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_USERLISTERRORENUM_USERLISTERROR = _descriptor.EnumDescriptor( + name='UserListError', + full_name='google.ads.googleads.v5.errors.UserListErrorEnum.UserListError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONCRETE_TYPE_REQUIRED', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TYPE_ID_REQUIRED', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_CONVERSION_TYPES', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_CONVERSION_TYPE', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DESCRIPTION', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_NAME', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_TYPE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_LIST_LOGICAL_RULE_OPERAND', index=11, number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAME_ALREADY_USED', index=12, number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEW_CONVERSION_TYPE_NAME_REQUIRED', index=13, number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TYPE_NAME_ALREADY_USED', index=14, number=14, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OWNERSHIP_REQUIRED_FOR_SET', index=15, number=15, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USER_LIST_MUTATE_NOT_SUPPORTED', index=16, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_RULE', index=17, number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE_RANGE', index=18, number=27, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAN_NOT_MUTATE_SENSITIVE_USERLIST', index=19, number=28, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX_NUM_RULEBASED_USERLISTS', index=20, number=29, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_BILLABLE_RECORD_COUNT', index=21, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APP_ID_NOT_SET', index=22, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST', index=23, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA', index=24, number=37, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RULE_TYPE_IS_NOT_SUPPORTED', index=25, number=34, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND', index=26, number=35, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS', index=27, number=36, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=147, + serialized_end=1130, +) +_sym_db.RegisterEnumDescriptor(_USERLISTERRORENUM_USERLISTERROR) + + +_USERLISTERRORENUM = _descriptor.Descriptor( + name='UserListErrorEnum', + full_name='google.ads.googleads.v5.errors.UserListErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _USERLISTERRORENUM_USERLISTERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=1130, +) + +_USERLISTERRORENUM_USERLISTERROR.containing_type = _USERLISTERRORENUM +DESCRIPTOR.message_types_by_name['UserListErrorEnum'] = _USERLISTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserListErrorEnum = _reflection.GeneratedProtocolMessageType('UserListErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.user_list_error_pb2' + , + '__doc__': """Container for enum describing possible user list errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.UserListErrorEnum) + }) +_sym_db.RegisterMessage(UserListErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/user_list_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/user_list_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/user_list_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2.py b/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2.py new file mode 100644 index 000000000..1d797260c --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/errors/youtube_video_registration_error.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/errors/youtube_video_registration_error.proto', + package='google.ads.googleads.v5.errors', + syntax='proto3', + serialized_options=b'\n\"com.google.ads.googleads.v5.errorsB\"YoutubeVideoRegistrationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V5.Errors\312\002\036Google\\Ads\\GoogleAds\\V5\\Errors\352\002\"Google::Ads::GoogleAds::V5::Errors', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/errors/youtube_video_registration_error.proto\x12\x1egoogle.ads.googleads.v5.errors\x1a\x1cgoogle/api/annotations.proto\"\xaa\x01\n!YoutubeVideoRegistrationErrorEnum\"\x84\x01\n\x1dYoutubeVideoRegistrationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0fVIDEO_NOT_FOUND\x10\x02\x12\x18\n\x14VIDEO_NOT_ACCESSIBLE\x10\x03\x12\x16\n\x12VIDEO_NOT_ELIGIBLE\x10\x04\x42\xfd\x01\n\"com.google.ads.googleads.v5.errorsB\"YoutubeVideoRegistrationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v5/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V5.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V5\\Errors\xea\x02\"Google::Ads::GoogleAds::V5::Errorsb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_YOUTUBEVIDEOREGISTRATIONERRORENUM_YOUTUBEVIDEOREGISTRATIONERROR = _descriptor.EnumDescriptor( + name='YoutubeVideoRegistrationError', + full_name='google.ads.googleads.v5.errors.YoutubeVideoRegistrationErrorEnum.YoutubeVideoRegistrationError', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_NOT_FOUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_NOT_ACCESSIBLE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VIDEO_NOT_ELIGIBLE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=180, + serialized_end=312, +) +_sym_db.RegisterEnumDescriptor(_YOUTUBEVIDEOREGISTRATIONERRORENUM_YOUTUBEVIDEOREGISTRATIONERROR) + + +_YOUTUBEVIDEOREGISTRATIONERRORENUM = _descriptor.Descriptor( + name='YoutubeVideoRegistrationErrorEnum', + full_name='google.ads.googleads.v5.errors.YoutubeVideoRegistrationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _YOUTUBEVIDEOREGISTRATIONERRORENUM_YOUTUBEVIDEOREGISTRATIONERROR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=142, + serialized_end=312, +) + +_YOUTUBEVIDEOREGISTRATIONERRORENUM_YOUTUBEVIDEOREGISTRATIONERROR.containing_type = _YOUTUBEVIDEOREGISTRATIONERRORENUM +DESCRIPTOR.message_types_by_name['YoutubeVideoRegistrationErrorEnum'] = _YOUTUBEVIDEOREGISTRATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +YoutubeVideoRegistrationErrorEnum = _reflection.GeneratedProtocolMessageType('YoutubeVideoRegistrationErrorEnum', (_message.Message,), { + 'DESCRIPTOR' : _YOUTUBEVIDEOREGISTRATIONERRORENUM, + '__module__' : 'google.ads.googleads_v5.proto.errors.youtube_video_registration_error_pb2' + , + '__doc__': """Container for enum describing YouTube video registration errors.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.errors.YoutubeVideoRegistrationErrorEnum) + }) +_sym_db.RegisterMessage(YoutubeVideoRegistrationErrorEnum) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2_grpc.py b/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/errors/youtube_video_registration_error_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/__init__.py b/google/ads/google_ads/v5/proto/resources/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/proto/resources/account_budget_pb2.py b/google/ads/google_ads/v5/proto/resources/account_budget_pb2.py new file mode 100644 index 000000000..57bca18b0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/account_budget_pb2.py @@ -0,0 +1,721 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/account_budget.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import account_budget_proposal_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_account__budget__proposal__type__pb2 +from google.ads.google_ads.v5.proto.enums import account_budget_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_account__budget__status__pb2 +from google.ads.google_ads.v5.proto.enums import spending_limit_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_spending__limit__type__pb2 +from google.ads.google_ads.v5.proto.enums import time_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_time__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/account_budget.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\022AccountBudgetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/policy_review_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xd8\x05\n\x12\x41\x64GroupAdAssetView\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/AdGroupAdAssetView\x12]\n\x0b\x61\x64_group_ad\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12S\n\x05\x61sset\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueB&\xe0\x41\x03\xfa\x41 \n\x1egoogleads.googleapis.com/Asset\x12Y\n\nfield_type\x18\x02 \x01(\x0e\x32@.google.ads.googleads.v5.enums.AssetFieldTypeEnum.AssetFieldTypeB\x03\xe0\x41\x03\x12\x19\n\x07\x65nabled\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12[\n\x0epolicy_summary\x18\x03 \x01(\x0b\x32>.google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummaryB\x03\xe0\x41\x03\x12n\n\x11performance_label\x18\x04 \x01(\x0e\x32N.google.ads.googleads.v5.enums.AssetPerformanceLabelEnum.AssetPerformanceLabelB\x03\xe0\x41\x03:s\xea\x41p\n+googleads.googleapis.com/AdGroupAdAssetView\x12\x41\x63ustomers/{customer}/adGroupAdAssetViews/{ad_group_ad_asset_view}B\n\n\x08_enabled\"\xc4\x02\n\x1b\x41\x64GroupAdAssetPolicySummary\x12S\n\x14policy_topic_entries\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.PolicyTopicEntryB\x03\xe0\x41\x03\x12\x64\n\rreview_status\x18\x02 \x01(\x0e\x32H.google.ads.googleads.v5.enums.PolicyReviewStatusEnum.PolicyReviewStatusB\x03\xe0\x41\x03\x12j\n\x0f\x61pproval_status\x18\x03 \x01(\x0e\x32L.google.ads.googleads.v5.enums.PolicyApprovalStatusEnum.PolicyApprovalStatusB\x03\xe0\x41\x03\x42\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17\x41\x64GroupAdAssetViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__field__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__performance__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPADASSETVIEW = _descriptor.Descriptor( + name='AdGroupAdAssetView', + full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A-\n+googleads.googleapis.com/AdGroupAdAssetView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.ad_group_ad', index=1, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.asset', index=2, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A \n\036googleads.googleapis.com/Asset', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_type', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.field_type', index=3, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enabled', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.enabled', index=4, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_summary', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.policy_summary', index=5, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='performance_label', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView.performance_label', index=6, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ap\n+googleads.googleapis.com/AdGroupAdAssetView\022Acustomers/{customer}/adGroupAdAssetViews/{ad_group_ad_asset_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_enabled', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetView._enabled', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=538, + serialized_end=1266, +) + + +_ADGROUPADASSETPOLICYSUMMARY = _descriptor.Descriptor( + name='AdGroupAdAssetPolicySummary', + full_name='google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummary', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='policy_topic_entries', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummary.policy_topic_entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='review_status', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummary.review_status', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='approval_status', full_name='google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummary.approval_status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1269, + serialized_end=1593, +) + +_ADGROUPADASSETVIEW.fields_by_name['ad_group_ad'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPADASSETVIEW.fields_by_name['asset'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPADASSETVIEW.fields_by_name['field_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__field__type__pb2._ASSETFIELDTYPEENUM_ASSETFIELDTYPE +_ADGROUPADASSETVIEW.fields_by_name['policy_summary'].message_type = _ADGROUPADASSETPOLICYSUMMARY +_ADGROUPADASSETVIEW.fields_by_name['performance_label'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__performance__label__pb2._ASSETPERFORMANCELABELENUM_ASSETPERFORMANCELABEL +_ADGROUPADASSETVIEW.oneofs_by_name['_enabled'].fields.append( + _ADGROUPADASSETVIEW.fields_by_name['enabled']) +_ADGROUPADASSETVIEW.fields_by_name['enabled'].containing_oneof = _ADGROUPADASSETVIEW.oneofs_by_name['_enabled'] +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['policy_topic_entries'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYTOPICENTRY +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['review_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2._POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['approval_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2._POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS +DESCRIPTOR.message_types_by_name['AdGroupAdAssetView'] = _ADGROUPADASSETVIEW +DESCRIPTOR.message_types_by_name['AdGroupAdAssetPolicySummary'] = _ADGROUPADASSETPOLICYSUMMARY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupAdAssetView = _reflection.GeneratedProtocolMessageType('AdGroupAdAssetView', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADASSETVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_ad_asset_view_pb2' + , + '__doc__': """A link between an AdGroupAd and an Asset. + + Attributes: + resource_name: + Output only. The resource name of the ad group ad asset view. + Ad group ad asset view resource names have the form (Before + V4): ``customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsse + t.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset + _id}~{AdGroupAdAsset.field_type}`` Ad group ad asset view + resource names have the form (Beginning from V4): ``customers + /{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id + }~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdA + sset.field_type}`` + ad_group_ad: + Output only. The ad group ad to which the asset is linked. + asset: + Output only. The asset which is linked to the ad group ad. + field_type: + Output only. Role that the asset takes in the ad. + enabled: + Output only. The status between the asset and the latest + version of the ad. If true, the asset is linked to the latest + version of the ad. If false, it means the link once existed + but has been removed and is no longer present in the latest + version of the ad. + policy_summary: + Output only. Policy information for the ad group ad asset. + performance_label: + Output only. Performance of an asset linkage. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAdAssetView) + }) +_sym_db.RegisterMessage(AdGroupAdAssetView) + +AdGroupAdAssetPolicySummary = _reflection.GeneratedProtocolMessageType('AdGroupAdAssetPolicySummary', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADASSETPOLICYSUMMARY, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_ad_asset_view_pb2' + , + '__doc__': """Contains policy information for an ad group ad asset. + + Attributes: + policy_topic_entries: + Output only. The list of policy findings for the ad group ad + asset. + review_status: + Output only. Where in the review process this ad group ad + asset is. + approval_status: + Output only. The overall approval status of this ad group ad + asset, calculated based on the status of its individual policy + topic entries. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAdAssetPolicySummary) + }) +_sym_db.RegisterMessage(AdGroupAdAssetPolicySummary) + + +DESCRIPTOR._options = None +_ADGROUPADASSETVIEW.fields_by_name['resource_name']._options = None +_ADGROUPADASSETVIEW.fields_by_name['ad_group_ad']._options = None +_ADGROUPADASSETVIEW.fields_by_name['asset']._options = None +_ADGROUPADASSETVIEW.fields_by_name['field_type']._options = None +_ADGROUPADASSETVIEW.fields_by_name['enabled']._options = None +_ADGROUPADASSETVIEW.fields_by_name['policy_summary']._options = None +_ADGROUPADASSETVIEW.fields_by_name['performance_label']._options = None +_ADGROUPADASSETVIEW._options = None +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['policy_topic_entries']._options = None +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['review_status']._options = None +_ADGROUPADASSETPOLICYSUMMARY.fields_by_name['approval_status']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_ad_asset_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_ad_asset_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_ad_asset_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2.py new file mode 100644 index 000000000..5645c4d00 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_ad_label.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_ad_label.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023AdGroupAdLabelProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/ad_group_ad_label.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xf4\x02\n\x0e\x41\x64GroupAdLabel\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x05\xfa\x41)\n\'googleads.googleapis.com/AdGroupAdLabel\x12]\n\x0b\x61\x64_group_ad\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12S\n\x05label\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB&\xe0\x41\x05\xfa\x41 \n\x1egoogleads.googleapis.com/Label:f\xea\x41\x63\n\'googleads.googleapis.com/AdGroupAdLabel\x12\x38\x63ustomers/{customer}/adGroupAdLabels/{ad_group_ad_label}B\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x41\x64GroupAdLabelProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPADLABEL = _descriptor.Descriptor( + name='AdGroupAdLabel', + full_name='google.ads.googleads.v5.resources.AdGroupAdLabel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupAdLabel.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A)\n\'googleads.googleapis.com/AdGroupAdLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.resources.AdGroupAdLabel.ad_group_ad', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='google.ads.googleads.v5.resources.AdGroupAdLabel.label', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A \n\036googleads.googleapis.com/Label', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ac\n\'googleads.googleapis.com/AdGroupAdLabel\0228customers/{customer}/adGroupAdLabels/{ad_group_ad_label}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=225, + serialized_end=597, +) + +_ADGROUPADLABEL.fields_by_name['ad_group_ad'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPADLABEL.fields_by_name['label'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['AdGroupAdLabel'] = _ADGROUPADLABEL +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupAdLabel = _reflection.GeneratedProtocolMessageType('AdGroupAdLabel', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADLABEL, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_ad_label_pb2' + , + '__doc__': """A relationship between an ad group ad and a label. + + Attributes: + resource_name: + Immutable. The resource name of the ad group ad label. Ad + group ad label resource names have the form: ``customers/{cust + omer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`` + ad_group_ad: + Immutable. The ad group ad to which the label is attached. + label: + Immutable. The label assigned to the ad group ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAdLabel) + }) +_sym_db.RegisterMessage(AdGroupAdLabel) + + +DESCRIPTOR._options = None +_ADGROUPADLABEL.fields_by_name['resource_name']._options = None +_ADGROUPADLABEL.fields_by_name['ad_group_ad']._options = None +_ADGROUPADLABEL.fields_by_name['label']._options = None +_ADGROUPADLABEL._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_ad_label_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2.py new file mode 100644 index 000000000..84c232f62 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2.py @@ -0,0 +1,226 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_ad.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v5.proto.enums import ad_group_ad_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__ad__status__pb2 +from google.ads.google_ads.v5.proto.enums import ad_strength_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__strength__pb2 +from google.ads.google_ads.v5.proto.enums import policy_approval_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2 +from google.ads.google_ads.v5.proto.enums import policy_review_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2 +from google.ads.google_ads.v5.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_ad.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\016AdGroupAdProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/resources/ad_group_ad.proto\x12!google.ads.googleads.v5.resources\x1a\x31google/ads/googleads_v5/proto/common/policy.proto\x1agoogle/ads/googleads_v5/proto/enums/policy_review_status.proto\x1a\x30google/ads/googleads_v5/proto/resources/ad.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xac\x04\n\tAdGroupAd\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12R\n\x06status\x18\x03 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.AdGroupAdStatusEnum.AdGroupAdStatus\x12?\n\x08\x61\x64_group\x18\t \x01(\tB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x00\x88\x01\x01\x12\x36\n\x02\x61\x64\x18\x05 \x01(\x0b\x32%.google.ads.googleads.v5.resources.AdB\x03\xe0\x41\x05\x12V\n\x0epolicy_summary\x18\x06 \x01(\x0b\x32\x39.google.ads.googleads.v5.resources.AdGroupAdPolicySummaryB\x03\xe0\x41\x03\x12R\n\x0b\x61\x64_strength\x18\x07 \x01(\x0e\x32\x38.google.ads.googleads.v5.enums.AdStrengthEnum.AdStrengthB\x03\xe0\x41\x03:V\xea\x41S\n\"googleads.googleapis.com/AdGroupAd\x12-customers/{customer}/adGroupAds/{ad_group_ad}B\x0b\n\t_ad_group\"\xbf\x02\n\x16\x41\x64GroupAdPolicySummary\x12S\n\x14policy_topic_entries\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.PolicyTopicEntryB\x03\xe0\x41\x03\x12\x64\n\rreview_status\x18\x02 \x01(\x0e\x32H.google.ads.googleads.v5.enums.PolicyReviewStatusEnum.PolicyReviewStatusB\x03\xe0\x41\x03\x12j\n\x0f\x61pproval_status\x18\x03 \x01(\x0e\x32L.google.ads.googleads.v5.enums.PolicyApprovalStatusEnum.PolicyApprovalStatusB\x03\xe0\x41\x03\x42\xfb\x01\n%com.google.ads.googleads.v5.resourcesB\x0e\x41\x64GroupAdProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__ad__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__strength__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPAD = _descriptor.Descriptor( + name='AdGroupAd', + full_name='google.ads.googleads.v5.resources.AdGroupAd', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupAd.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.AdGroupAd.status', index=1, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.AdGroupAd.ad_group', index=2, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad', full_name='google.ads.googleads.v5.resources.AdGroupAd.ad', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_summary', full_name='google.ads.googleads.v5.resources.AdGroupAd.policy_summary', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_strength', full_name='google.ads.googleads.v5.resources.AdGroupAd.ad_strength', index=5, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AS\n\"googleads.googleapis.com/AdGroupAd\022-customers/{customer}/adGroupAds/{ad_group_ad}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ad_group', full_name='google.ads.googleads.v5.resources.AdGroupAd._ad_group', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=535, + serialized_end=1091, +) + + +_ADGROUPADPOLICYSUMMARY = _descriptor.Descriptor( + name='AdGroupAdPolicySummary', + full_name='google.ads.googleads.v5.resources.AdGroupAdPolicySummary', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='policy_topic_entries', full_name='google.ads.googleads.v5.resources.AdGroupAdPolicySummary.policy_topic_entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='review_status', full_name='google.ads.googleads.v5.resources.AdGroupAdPolicySummary.review_status', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='approval_status', full_name='google.ads.googleads.v5.resources.AdGroupAdPolicySummary.approval_status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1094, + serialized_end=1413, +) + +_ADGROUPAD.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__ad__status__pb2._ADGROUPADSTATUSENUM_ADGROUPADSTATUS +_ADGROUPAD.fields_by_name['ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD +_ADGROUPAD.fields_by_name['policy_summary'].message_type = _ADGROUPADPOLICYSUMMARY +_ADGROUPAD.fields_by_name['ad_strength'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__strength__pb2._ADSTRENGTHENUM_ADSTRENGTH +_ADGROUPAD.oneofs_by_name['_ad_group'].fields.append( + _ADGROUPAD.fields_by_name['ad_group']) +_ADGROUPAD.fields_by_name['ad_group'].containing_oneof = _ADGROUPAD.oneofs_by_name['_ad_group'] +_ADGROUPADPOLICYSUMMARY.fields_by_name['policy_topic_entries'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYTOPICENTRY +_ADGROUPADPOLICYSUMMARY.fields_by_name['review_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2._POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS +_ADGROUPADPOLICYSUMMARY.fields_by_name['approval_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2._POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS +DESCRIPTOR.message_types_by_name['AdGroupAd'] = _ADGROUPAD +DESCRIPTOR.message_types_by_name['AdGroupAdPolicySummary'] = _ADGROUPADPOLICYSUMMARY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupAd = _reflection.GeneratedProtocolMessageType('AdGroupAd', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPAD, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_ad_pb2' + , + '__doc__': """An ad group ad. + + Attributes: + resource_name: + Immutable. The resource name of the ad. Ad group ad resource + names have the form: + ``customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`` + status: + The status of the ad. + ad_group: + Immutable. The ad group to which the ad belongs. + ad: + Immutable. The ad. + policy_summary: + Output only. Policy information for the ad. + ad_strength: + Output only. Overall ad strength for this ad group ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAd) + }) +_sym_db.RegisterMessage(AdGroupAd) + +AdGroupAdPolicySummary = _reflection.GeneratedProtocolMessageType('AdGroupAdPolicySummary', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADPOLICYSUMMARY, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_ad_pb2' + , + '__doc__': """Contains policy information for an ad. + + Attributes: + policy_topic_entries: + Output only. The list of policy findings for this ad. + review_status: + Output only. Where in the review process this ad is. + approval_status: + Output only. The overall approval status of this ad, + calculated based on the status of its individual policy topic + entries. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAdPolicySummary) + }) +_sym_db.RegisterMessage(AdGroupAdPolicySummary) + + +DESCRIPTOR._options = None +_ADGROUPAD.fields_by_name['resource_name']._options = None +_ADGROUPAD.fields_by_name['ad_group']._options = None +_ADGROUPAD.fields_by_name['ad']._options = None +_ADGROUPAD.fields_by_name['policy_summary']._options = None +_ADGROUPAD.fields_by_name['ad_strength']._options = None +_ADGROUPAD._options = None +_ADGROUPADPOLICYSUMMARY.fields_by_name['policy_topic_entries']._options = None +_ADGROUPADPOLICYSUMMARY.fields_by_name['review_status']._options = None +_ADGROUPADPOLICYSUMMARY.fields_by_name['approval_status']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_ad_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2.py new file mode 100644 index 000000000..bde395c18 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_audience_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_audience_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\030AdGroupAudienceViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/resources/ad_group_audience_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xd9\x01\n\x13\x41\x64GroupAudienceView\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x03\xfa\x41.\n,googleads.googleapis.com/AdGroupAudienceView:u\xea\x41r\n,googleads.googleapis.com/AdGroupAudienceView\x12\x42\x63ustomers/{customer}/adGroupAudienceViews/{ad_group_audience_view}B\x85\x02\n%com.google.ads.googleads.v5.resourcesB\x18\x41\x64GroupAudienceViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPAUDIENCEVIEW = _descriptor.Descriptor( + name='AdGroupAudienceView', + full_name='google.ads.googleads.v5.resources.AdGroupAudienceView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupAudienceView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A.\n,googleads.googleapis.com/AdGroupAudienceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ar\n,googleads.googleapis.com/AdGroupAudienceView\022Bcustomers/{customer}/adGroupAudienceViews/{ad_group_audience_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=198, + serialized_end=415, +) + +DESCRIPTOR.message_types_by_name['AdGroupAudienceView'] = _ADGROUPAUDIENCEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupAudienceView = _reflection.GeneratedProtocolMessageType('AdGroupAudienceView', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPAUDIENCEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_audience_view_pb2' + , + '__doc__': """An ad group audience view. Includes performance data from interests + and remarketing lists for Display Network and YouTube Network ads, and + remarketing lists for search ads (RLSA), aggregated at the audience + level. + + Attributes: + resource_name: + Output only. The resource name of the ad group audience view. + Ad group audience view resource names have the form: ``custom + ers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterio + n_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupAudienceView) + }) +_sym_db.RegisterMessage(AdGroupAudienceView) + + +DESCRIPTOR._options = None +_ADGROUPAUDIENCEVIEW.fields_by_name['resource_name']._options = None +_ADGROUPAUDIENCEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_audience_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2.py new file mode 100644 index 000000000..ead8373a9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_bid_modifier.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.enums import bid_modifier_source_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bid__modifier__source__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_bid_modifier.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\027AdGroupBidModifierProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/resources/ad_group_bid_modifier.proto\x12!google.ads.googleads.v5.resources\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a=google/ads/googleads_v5/proto/enums/bid_modifier_source.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xef\x08\n\x12\x41\x64GroupBidModifier\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x05\xfa\x41-\n+googleads.googleapis.com/AdGroupBidModifier\x12?\n\x08\x61\x64_group\x18\r \x01(\tB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x01\x88\x01\x01\x12\x1e\n\x0c\x63riterion_id\x18\x0e \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x19\n\x0c\x62id_modifier\x18\x0f \x01(\x01H\x03\x88\x01\x01\x12\x44\n\rbase_ad_group\x18\x10 \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x04\x88\x01\x01\x12h\n\x13\x62id_modifier_source\x18\n \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.BidModifierSourceEnum.BidModifierSourceB\x03\xe0\x41\x03\x12\x64\n\x19hotel_date_selection_type\x18\x05 \x01(\x0b\x32:.google.ads.googleads.v5.common.HotelDateSelectionTypeInfoB\x03\xe0\x41\x05H\x00\x12j\n\x1chotel_advance_booking_window\x18\x06 \x01(\x0b\x32=.google.ads.googleads.v5.common.HotelAdvanceBookingWindowInfoB\x03\xe0\x41\x05H\x00\x12Z\n\x14hotel_length_of_stay\x18\x07 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.HotelLengthOfStayInfoB\x03\xe0\x41\x05H\x00\x12V\n\x12hotel_check_in_day\x18\x08 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.HotelCheckInDayInfoB\x03\xe0\x41\x05H\x00\x12\x41\n\x06\x64\x65vice\x18\x0b \x01(\x0b\x32*.google.ads.googleads.v5.common.DeviceInfoB\x03\xe0\x41\x05H\x00\x12V\n\x11preferred_content\x18\x0c \x01(\x0b\x32\x34.google.ads.googleads.v5.common.PreferredContentInfoB\x03\xe0\x41\x05H\x00:r\xea\x41o\n+googleads.googleapis.com/AdGroupBidModifier\x12@customers/{customer}/adGroupBidModifiers/{ad_group_bid_modifier}B\x0b\n\tcriterionB\x0b\n\t_ad_groupB\x0f\n\r_criterion_idB\x0f\n\r_bid_modifierB\x10\n\x0e_base_ad_groupB\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17\x41\x64GroupBidModifierProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bid__modifier__source__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPBIDMODIFIER = _descriptor.Descriptor( + name='AdGroupBidModifier', + full_name='google.ads.googleads.v5.resources.AdGroupBidModifier', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A-\n+googleads.googleapis.com/AdGroupBidModifier', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.ad_group', index=1, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.criterion_id', index=2, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.bid_modifier', index=3, + number=15, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='base_ad_group', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.base_ad_group', index=4, + number=16, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bid_modifier_source', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.bid_modifier_source', index=5, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_date_selection_type', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.hotel_date_selection_type', index=6, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_advance_booking_window', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.hotel_advance_booking_window', index=7, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_length_of_stay', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.hotel_length_of_stay', index=8, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_check_in_day', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.hotel_check_in_day', index=9, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.device', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preferred_content', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.preferred_content', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ao\n+googleads.googleapis.com/AdGroupBidModifier\022@customers/{customer}/adGroupBidModifiers/{ad_group_bid_modifier}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier.criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier._ad_group', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier._criterion_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_bid_modifier', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier._bid_modifier', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_base_ad_group', full_name='google.ads.googleads.v5.resources.AdGroupBidModifier._base_ad_group', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=313, + serialized_end=1448, +) + +_ADGROUPBIDMODIFIER.fields_by_name['bid_modifier_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bid__modifier__source__pb2._BIDMODIFIERSOURCEENUM_BIDMODIFIERSOURCE +_ADGROUPBIDMODIFIER.fields_by_name['hotel_date_selection_type'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._HOTELDATESELECTIONTYPEINFO +_ADGROUPBIDMODIFIER.fields_by_name['hotel_advance_booking_window'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._HOTELADVANCEBOOKINGWINDOWINFO +_ADGROUPBIDMODIFIER.fields_by_name['hotel_length_of_stay'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._HOTELLENGTHOFSTAYINFO +_ADGROUPBIDMODIFIER.fields_by_name['hotel_check_in_day'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._HOTELCHECKINDAYINFO +_ADGROUPBIDMODIFIER.fields_by_name['device'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO +_ADGROUPBIDMODIFIER.fields_by_name['preferred_content'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PREFERREDCONTENTINFO +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['hotel_date_selection_type']) +_ADGROUPBIDMODIFIER.fields_by_name['hotel_date_selection_type'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['hotel_advance_booking_window']) +_ADGROUPBIDMODIFIER.fields_by_name['hotel_advance_booking_window'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['hotel_length_of_stay']) +_ADGROUPBIDMODIFIER.fields_by_name['hotel_length_of_stay'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['hotel_check_in_day']) +_ADGROUPBIDMODIFIER.fields_by_name['hotel_check_in_day'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['device']) +_ADGROUPBIDMODIFIER.fields_by_name['device'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['criterion'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['preferred_content']) +_ADGROUPBIDMODIFIER.fields_by_name['preferred_content'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['criterion'] +_ADGROUPBIDMODIFIER.oneofs_by_name['_ad_group'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['ad_group']) +_ADGROUPBIDMODIFIER.fields_by_name['ad_group'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['_ad_group'] +_ADGROUPBIDMODIFIER.oneofs_by_name['_criterion_id'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['criterion_id']) +_ADGROUPBIDMODIFIER.fields_by_name['criterion_id'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['_criterion_id'] +_ADGROUPBIDMODIFIER.oneofs_by_name['_bid_modifier'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['bid_modifier']) +_ADGROUPBIDMODIFIER.fields_by_name['bid_modifier'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['_bid_modifier'] +_ADGROUPBIDMODIFIER.oneofs_by_name['_base_ad_group'].fields.append( + _ADGROUPBIDMODIFIER.fields_by_name['base_ad_group']) +_ADGROUPBIDMODIFIER.fields_by_name['base_ad_group'].containing_oneof = _ADGROUPBIDMODIFIER.oneofs_by_name['_base_ad_group'] +DESCRIPTOR.message_types_by_name['AdGroupBidModifier'] = _ADGROUPBIDMODIFIER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupBidModifier = _reflection.GeneratedProtocolMessageType('AdGroupBidModifier', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPBIDMODIFIER, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_bid_modifier_pb2' + , + '__doc__': """Represents an ad group bid modifier. + + Attributes: + resource_name: + Immutable. The resource name of the ad group bid modifier. Ad + group bid modifier resource names have the form: ``customers/ + {customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id} + `` + ad_group: + Immutable. The ad group to which this criterion belongs. + criterion_id: + Output only. The ID of the criterion to bid modify. This + field is ignored for mutates. + bid_modifier: + The modifier for the bid when the criterion matches. The + modifier must be in the range: 0.1 - 10.0. The range is 1.0 - + 6.0 for PreferredContent. Use 0 to opt out of a Device type. + base_ad_group: + Output only. The base ad group from which this draft/trial + adgroup bid modifier was created. If ad\_group is a base ad + group then this field will be equal to ad\_group. If the ad + group was created in the draft or trial and has no + corresponding base ad group, then this field will be null. + This field is readonly. + bid_modifier_source: + Output only. Bid modifier source. + criterion: + The criterion of this ad group bid modifier. Required in + create operations starting in V5. + hotel_date_selection_type: + Immutable. Criterion for hotel date selection (default dates + vs. user selected). + hotel_advance_booking_window: + Immutable. Criterion for number of days prior to the stay the + booking is being made. + hotel_length_of_stay: + Immutable. Criterion for length of hotel stay in nights. + hotel_check_in_day: + Immutable. Criterion for day of the week the booking is for. + device: + Immutable. A device criterion. + preferred_content: + Immutable. A preferred content criterion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupBidModifier) + }) +_sym_db.RegisterMessage(AdGroupBidModifier) + + +DESCRIPTOR._options = None +_ADGROUPBIDMODIFIER.fields_by_name['resource_name']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['ad_group']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['criterion_id']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['base_ad_group']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['bid_modifier_source']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['hotel_date_selection_type']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['hotel_advance_booking_window']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['hotel_length_of_stay']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['hotel_check_in_day']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['device']._options = None +_ADGROUPBIDMODIFIER.fields_by_name['preferred_content']._options = None +_ADGROUPBIDMODIFIER._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_bid_modifier_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2.py new file mode 100644 index 000000000..56ead4158 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_criterion_label.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_criterion_label.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\032AdGroupCriterionLabelProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/resources/ad_group_criterion_label.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xa5\x03\n\x15\x41\x64GroupCriterionLabel\x12M\n\rresource_name\x18\x01 \x01(\tB6\xe0\x41\x05\xfa\x41\x30\n.googleads.googleapis.com/AdGroupCriterionLabel\x12k\n\x12\x61\x64_group_criterion\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB1\xe0\x41\x05\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterion\x12S\n\x05label\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB&\xe0\x41\x05\xfa\x41 \n\x1egoogleads.googleapis.com/Label:{\xea\x41x\n.googleads.googleapis.com/AdGroupCriterionLabel\x12\x46\x63ustomers/{customer}/adGroupCriterionLabels/{ad_group_criterion_label}B\x87\x02\n%com.google.ads.googleads.v5.resourcesB\x1a\x41\x64GroupCriterionLabelProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPCRITERIONLABEL = _descriptor.Descriptor( + name='AdGroupCriterionLabel', + full_name='google.ads.googleads.v5.resources.AdGroupCriterionLabel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupCriterionLabel.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A0\n.googleads.googleapis.com/AdGroupCriterionLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.resources.AdGroupCriterionLabel.ad_group_criterion', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A+\n)googleads.googleapis.com/AdGroupCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='google.ads.googleads.v5.resources.AdGroupCriterionLabel.label', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A \n\036googleads.googleapis.com/Label', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ax\n.googleads.googleapis.com/AdGroupCriterionLabel\022Fcustomers/{customer}/adGroupCriterionLabels/{ad_group_criterion_label}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=232, + serialized_end=653, +) + +_ADGROUPCRITERIONLABEL.fields_by_name['ad_group_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPCRITERIONLABEL.fields_by_name['label'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['AdGroupCriterionLabel'] = _ADGROUPCRITERIONLABEL +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupCriterionLabel = _reflection.GeneratedProtocolMessageType('AdGroupCriterionLabel', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERIONLABEL, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_criterion_label_pb2' + , + '__doc__': """A relationship between an ad group criterion and a label. + + Attributes: + resource_name: + Immutable. The resource name of the ad group criterion label. + Ad group criterion label resource names have the form: ``custo + mers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{crite + rion_id}~{label_id}`` + ad_group_criterion: + Immutable. The ad group criterion to which the label is + attached. + label: + Immutable. The label assigned to the ad group criterion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupCriterionLabel) + }) +_sym_db.RegisterMessage(AdGroupCriterionLabel) + + +DESCRIPTOR._options = None +_ADGROUPCRITERIONLABEL.fields_by_name['resource_name']._options = None +_ADGROUPCRITERIONLABEL.fields_by_name['ad_group_criterion']._options = None +_ADGROUPCRITERIONLABEL.fields_by_name['label']._options = None +_ADGROUPCRITERIONLABEL._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_label_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2.py new file mode 100644 index 000000000..2911616b7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2.py @@ -0,0 +1,1002 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_criterion.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v5.proto.enums import ad_group_criterion_approval_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__approval__status__pb2 +from google.ads.google_ads.v5.proto.enums import ad_group_criterion_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__status__pb2 +from google.ads.google_ads.v5.proto.enums import bidding_source_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_system_serving_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__system__serving__status__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2 +from google.ads.google_ads.v5.proto.enums import quality_score_bucket_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_criterion.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025AdGroupCriterionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/resources/ad_group_criterion.proto\x12!google.ads.googleads.v5.resources\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a;google/ads/googleads_v5/proto/common/custom_parameter.proto\x1aLgoogle/ads/googleads_v5/proto/enums/ad_group_criterion_approval_status.proto\x1a\x43google/ads/googleads_v5/proto/enums/ad_group_criterion_status.proto\x1a\x38google/ads/googleads_v5/proto/enums/bidding_source.proto\x1aIgoogle/ads/googleads_v5/proto/enums/criterion_system_serving_status.proto\x1a\x38google/ads/googleads_v5/proto/enums/criterion_type.proto\x1a>google/ads/googleads_v5/proto/enums/quality_score_bucket.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xab#\n\x10\x41\x64GroupCriterion\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x05\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterion\x12\x1e\n\x0c\x63riterion_id\x18\x38 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12`\n\x06status\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v5.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus\x12Z\n\x0cquality_info\x18\x04 \x01(\x0b\x32?.google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfoB\x03\xe0\x41\x03\x12?\n\x08\x61\x64_group\x18\x39 \x01(\tB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12Q\n\x04type\x18\x19 \x01(\x0e\x32>.google.ads.googleads.v5.enums.CriterionTypeEnum.CriterionTypeB\x03\xe0\x41\x03\x12\x1a\n\x08negative\x18: \x01(\x08\x42\x03\xe0\x41\x05H\x03\x88\x01\x01\x12\x80\x01\n\x15system_serving_status\x18\x34 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.CriterionSystemServingStatusEnum.CriterionSystemServingStatusB\x03\xe0\x41\x03\x12~\n\x0f\x61pproval_status\x18\x35 \x01(\x0e\x32`.google.ads.googleads.v5.enums.AdGroupCriterionApprovalStatusEnum.AdGroupCriterionApprovalStatusB\x03\xe0\x41\x03\x12 \n\x13\x64isapproval_reasons\x18; \x03(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x62id_modifier\x18= \x01(\x01H\x04\x88\x01\x01\x12\x1b\n\x0e\x63pc_bid_micros\x18> \x01(\x03H\x05\x88\x01\x01\x12\x1b\n\x0e\x63pm_bid_micros\x18? \x01(\x03H\x06\x88\x01\x01\x12\x1b\n\x0e\x63pv_bid_micros\x18@ \x01(\x03H\x07\x88\x01\x01\x12#\n\x16percent_cpc_bid_micros\x18\x41 \x01(\x03H\x08\x88\x01\x01\x12*\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_micros\x18\x42 \x01(\x03\x42\x03\xe0\x41\x03H\t\x88\x01\x01\x12*\n\x18\x65\x66\x66\x65\x63tive_cpm_bid_micros\x18\x43 \x01(\x03\x42\x03\xe0\x41\x03H\n\x88\x01\x01\x12*\n\x18\x65\x66\x66\x65\x63tive_cpv_bid_micros\x18\x44 \x01(\x03\x42\x03\xe0\x41\x03H\x0b\x88\x01\x01\x12\x32\n effective_percent_cpc_bid_micros\x18\x45 \x01(\x03\x42\x03\xe0\x41\x03H\x0c\x88\x01\x01\x12\x65\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_source\x18\x15 \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\x65\n\x18\x65\x66\x66\x65\x63tive_cpm_bid_source\x18\x16 \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\x65\n\x18\x65\x66\x66\x65\x63tive_cpv_bid_source\x18\x17 \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12m\n effective_percent_cpc_bid_source\x18# \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\x66\n\x12position_estimates\x18\n \x01(\x0b\x32\x45.google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimatesB\x03\xe0\x41\x03\x12\x12\n\nfinal_urls\x18\x46 \x03(\t\x12\x19\n\x11\x66inal_mobile_urls\x18G \x03(\t\x12\x1d\n\x10\x66inal_url_suffix\x18H \x01(\tH\r\x88\x01\x01\x12\"\n\x15tracking_url_template\x18I \x01(\tH\x0e\x88\x01\x01\x12N\n\x15url_custom_parameters\x18\x0e \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12\x43\n\x07keyword\x18\x1b \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x05H\x00\x12G\n\tplacement\x18\x1c \x01(\x0b\x32-.google.ads.googleads.v5.common.PlacementInfoB\x03\xe0\x41\x05H\x00\x12Y\n\x13mobile_app_category\x18\x1d \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileAppCategoryInfoB\x03\xe0\x41\x05H\x00\x12X\n\x12mobile_application\x18\x1e \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileApplicationInfoB\x03\xe0\x41\x05H\x00\x12N\n\rlisting_group\x18 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.ListingGroupInfoB\x03\xe0\x41\x05H\x00\x12\x46\n\tage_range\x18$ \x01(\x0b\x32,.google.ads.googleads.v5.common.AgeRangeInfoB\x03\xe0\x41\x05H\x00\x12\x41\n\x06gender\x18% \x01(\x0b\x32*.google.ads.googleads.v5.common.GenderInfoB\x03\xe0\x41\x05H\x00\x12L\n\x0cincome_range\x18& \x01(\x0b\x32/.google.ads.googleads.v5.common.IncomeRangeInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fparental_status\x18\' \x01(\x0b\x32\x32.google.ads.googleads.v5.common.ParentalStatusInfoB\x03\xe0\x41\x05H\x00\x12\x46\n\tuser_list\x18* \x01(\x0b\x32,.google.ads.googleads.v5.common.UserListInfoB\x03\xe0\x41\x05H\x00\x12N\n\ryoutube_video\x18( \x01(\x0b\x32\x30.google.ads.googleads.v5.common.YouTubeVideoInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fyoutube_channel\x18) \x01(\x0b\x32\x32.google.ads.googleads.v5.common.YouTubeChannelInfoB\x03\xe0\x41\x05H\x00\x12?\n\x05topic\x18+ \x01(\x0b\x32).google.ads.googleads.v5.common.TopicInfoB\x03\xe0\x41\x05H\x00\x12N\n\ruser_interest\x18- \x01(\x0b\x32\x30.google.ads.googleads.v5.common.UserInterestInfoB\x03\xe0\x41\x05H\x00\x12\x43\n\x07webpage\x18. \x01(\x0b\x32+.google.ads.googleads.v5.common.WebpageInfoB\x03\xe0\x41\x05H\x00\x12U\n\x11\x61pp_payment_model\x18/ \x01(\x0b\x32\x33.google.ads.googleads.v5.common.AppPaymentModelInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0f\x63ustom_affinity\x18\x30 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.CustomAffinityInfoB\x03\xe0\x41\x05H\x00\x12N\n\rcustom_intent\x18\x31 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.CustomIntentInfoB\x03\xe0\x41\x05H\x00\x1a\x8d\x03\n\x0bQualityInfo\x12\x1f\n\rquality_score\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12m\n\x16\x63reative_quality_score\x18\x02 \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucketB\x03\xe0\x41\x03\x12o\n\x18post_click_quality_score\x18\x03 \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucketB\x03\xe0\x41\x03\x12k\n\x14search_predicted_ctr\x18\x04 \x01(\x0e\x32H.google.ads.googleads.v5.enums.QualityScoreBucketEnum.QualityScoreBucketB\x03\xe0\x41\x03\x42\x10\n\x0e_quality_score\x1a\xbc\x03\n\x11PositionEstimates\x12\'\n\x15\x66irst_page_cpc_micros\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12+\n\x19\x66irst_position_cpc_micros\x18\x07 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12(\n\x16top_of_page_cpc_micros\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12<\n*estimated_add_clicks_at_first_position_cpc\x18\t \x01(\x03\x42\x03\xe0\x41\x03H\x03\x88\x01\x01\x12:\n(estimated_add_cost_at_first_position_cpc\x18\n \x01(\x03\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x42\x18\n\x16_first_page_cpc_microsB\x1c\n\x1a_first_position_cpc_microsB\x19\n\x17_top_of_page_cpc_microsB-\n+_estimated_add_clicks_at_first_position_cpcB+\n)_estimated_add_cost_at_first_position_cpc:i\xea\x41\x66\n)googleads.googleapis.com/AdGroupCriterion\x12\x39\x63ustomers/{customer}/adGroupCriteria/{ad_group_criterion}B\x0b\n\tcriterionB\x0f\n\r_criterion_idB\x0b\n\t_ad_groupB\x0b\n\t_negativeB\x0f\n\r_bid_modifierB\x11\n\x0f_cpc_bid_microsB\x11\n\x0f_cpm_bid_microsB\x11\n\x0f_cpv_bid_microsB\x19\n\x17_percent_cpc_bid_microsB\x1b\n\x19_effective_cpc_bid_microsB\x1b\n\x19_effective_cpm_bid_microsB\x1b\n\x19_effective_cpv_bid_microsB#\n!_effective_percent_cpc_bid_microsB\x13\n\x11_final_url_suffixB\x18\n\x16_tracking_url_templateB\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15\x41\x64GroupCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__approval__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__system__serving__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPCRITERION_QUALITYINFO = _descriptor.Descriptor( + name='QualityInfo', + full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='quality_score', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo.quality_score', index=0, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='creative_quality_score', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo.creative_quality_score', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='post_click_quality_score', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo.post_click_quality_score', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_predicted_ctr', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo.search_predicted_ctr', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_quality_score', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo._quality_score', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3954, + serialized_end=4351, +) + +_ADGROUPCRITERION_POSITIONESTIMATES = _descriptor.Descriptor( + name='PositionEstimates', + full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='first_page_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates.first_page_cpc_micros', index=0, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='first_position_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates.first_position_cpc_micros', index=1, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_of_page_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates.top_of_page_cpc_micros', index=2, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='estimated_add_clicks_at_first_position_cpc', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates.estimated_add_clicks_at_first_position_cpc', index=3, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='estimated_add_cost_at_first_position_cpc', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates.estimated_add_cost_at_first_position_cpc', index=4, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_first_page_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates._first_page_cpc_micros', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_first_position_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates._first_position_cpc_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_top_of_page_cpc_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates._top_of_page_cpc_micros', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_estimated_add_clicks_at_first_position_cpc', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates._estimated_add_clicks_at_first_position_cpc', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_estimated_add_cost_at_first_position_cpc', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates._estimated_add_cost_at_first_position_cpc', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4354, + serialized_end=4798, +) + +_ADGROUPCRITERION = _descriptor.Descriptor( + name='AdGroupCriterion', + full_name='google.ads.googleads.v5.resources.AdGroupCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A+\n)googleads.googleapis.com/AdGroupCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.criterion_id', index=1, + number=56, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quality_info', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.quality_info', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.ad_group', index=4, + number=57, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.type', index=5, + number=25, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='negative', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.negative', index=6, + number=58, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='system_serving_status', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.system_serving_status', index=7, + number=52, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='approval_status', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.approval_status', index=8, + number=53, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='disapproval_reasons', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.disapproval_reasons', index=9, + number=59, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.bid_modifier', index=10, + number=61, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.cpc_bid_micros', index=11, + number=62, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.cpm_bid_micros', index=12, + number=63, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.cpv_bid_micros', index=13, + number=64, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.percent_cpc_bid_micros', index=14, + number=65, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpc_bid_micros', index=15, + number=66, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpm_bid_micros', index=16, + number=67, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpv_bid_micros', index=17, + number=68, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_percent_cpc_bid_micros', index=18, + number=69, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpc_bid_source', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpc_bid_source', index=19, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpm_bid_source', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpm_bid_source', index=20, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_cpv_bid_source', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_cpv_bid_source', index=21, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_percent_cpc_bid_source', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.effective_percent_cpc_bid_source', index=22, + number=35, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='position_estimates', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.position_estimates', index=23, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.final_urls', index=24, + number=70, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.final_mobile_urls', index=25, + number=71, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.final_url_suffix', index=26, + number=72, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.tracking_url_template', index=27, + number=73, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.url_custom_parameters', index=28, + number=14, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.keyword', index=29, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.placement', index=30, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_category', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.mobile_app_category', index=31, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_application', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.mobile_application', index=32, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='listing_group', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.listing_group', index=33, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='age_range', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.age_range', index=34, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gender', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.gender', index=35, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='income_range', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.income_range', index=36, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parental_status', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.parental_status', index=37, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.user_list', index=38, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.youtube_video', index=39, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_channel', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.youtube_channel', index=40, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='topic', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.topic', index=41, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_interest', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.user_interest', index=42, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='webpage', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.webpage', index=43, + number=46, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_payment_model', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.app_payment_model', index=44, + number=47, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_affinity', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.custom_affinity', index=45, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_intent', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.custom_intent', index=46, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_ADGROUPCRITERION_QUALITYINFO, _ADGROUPCRITERION_POSITIONESTIMATES, ], + enum_types=[ + ], + serialized_options=b'\352Af\n)googleads.googleapis.com/AdGroupCriterion\0229customers/{customer}/adGroupCriteria/{ad_group_criterion}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v5.resources.AdGroupCriterion.criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._criterion_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._ad_group', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_negative', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._negative', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_bid_modifier', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._bid_modifier', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._cpc_bid_micros', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._cpm_bid_micros', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._cpv_bid_micros', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._percent_cpc_bid_micros', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._effective_cpc_bid_micros', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._effective_cpm_bid_micros', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._effective_cpv_bid_micros', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._effective_percent_cpc_bid_micros', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_final_url_suffix', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._final_url_suffix', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tracking_url_template', full_name='google.ads.googleads.v5.resources.AdGroupCriterion._tracking_url_template', + index=14, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=710, + serialized_end=5233, +) + +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['creative_quality_score'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['post_click_quality_score'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['search_predicted_ctr'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.containing_type = _ADGROUPCRITERION +_ADGROUPCRITERION_QUALITYINFO.oneofs_by_name['_quality_score'].fields.append( + _ADGROUPCRITERION_QUALITYINFO.fields_by_name['quality_score']) +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['quality_score'].containing_oneof = _ADGROUPCRITERION_QUALITYINFO.oneofs_by_name['_quality_score'] +_ADGROUPCRITERION_POSITIONESTIMATES.containing_type = _ADGROUPCRITERION +_ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_first_page_cpc_micros'].fields.append( + _ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_page_cpc_micros']) +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_page_cpc_micros'].containing_oneof = _ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_first_page_cpc_micros'] +_ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_first_position_cpc_micros'].fields.append( + _ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_position_cpc_micros']) +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_position_cpc_micros'].containing_oneof = _ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_first_position_cpc_micros'] +_ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_top_of_page_cpc_micros'].fields.append( + _ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['top_of_page_cpc_micros']) +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['top_of_page_cpc_micros'].containing_oneof = _ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_top_of_page_cpc_micros'] +_ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_estimated_add_clicks_at_first_position_cpc'].fields.append( + _ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_clicks_at_first_position_cpc']) +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_clicks_at_first_position_cpc'].containing_oneof = _ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_estimated_add_clicks_at_first_position_cpc'] +_ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_estimated_add_cost_at_first_position_cpc'].fields.append( + _ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_cost_at_first_position_cpc']) +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_cost_at_first_position_cpc'].containing_oneof = _ADGROUPCRITERION_POSITIONESTIMATES.oneofs_by_name['_estimated_add_cost_at_first_position_cpc'] +_ADGROUPCRITERION.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__status__pb2._ADGROUPCRITERIONSTATUSENUM_ADGROUPCRITERIONSTATUS +_ADGROUPCRITERION.fields_by_name['quality_info'].message_type = _ADGROUPCRITERION_QUALITYINFO +_ADGROUPCRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_ADGROUPCRITERION.fields_by_name['system_serving_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__system__serving__status__pb2._CRITERIONSYSTEMSERVINGSTATUSENUM_CRITERIONSYSTEMSERVINGSTATUS +_ADGROUPCRITERION.fields_by_name['approval_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__criterion__approval__status__pb2._ADGROUPCRITERIONAPPROVALSTATUSENUM_ADGROUPCRITERIONAPPROVALSTATUS +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['position_estimates'].message_type = _ADGROUPCRITERION_POSITIONESTIMATES +_ADGROUPCRITERION.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_ADGROUPCRITERION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_ADGROUPCRITERION.fields_by_name['placement'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PLACEMENTINFO +_ADGROUPCRITERION.fields_by_name['mobile_app_category'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPCATEGORYINFO +_ADGROUPCRITERION.fields_by_name['mobile_application'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPLICATIONINFO +_ADGROUPCRITERION.fields_by_name['listing_group'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._LISTINGGROUPINFO +_ADGROUPCRITERION.fields_by_name['age_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._AGERANGEINFO +_ADGROUPCRITERION.fields_by_name['gender'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO +_ADGROUPCRITERION.fields_by_name['income_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._INCOMERANGEINFO +_ADGROUPCRITERION.fields_by_name['parental_status'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PARENTALSTATUSINFO +_ADGROUPCRITERION.fields_by_name['user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._USERLISTINFO +_ADGROUPCRITERION.fields_by_name['youtube_video'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBEVIDEOINFO +_ADGROUPCRITERION.fields_by_name['youtube_channel'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBECHANNELINFO +_ADGROUPCRITERION.fields_by_name['topic'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._TOPICINFO +_ADGROUPCRITERION.fields_by_name['user_interest'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._USERINTERESTINFO +_ADGROUPCRITERION.fields_by_name['webpage'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._WEBPAGEINFO +_ADGROUPCRITERION.fields_by_name['app_payment_model'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._APPPAYMENTMODELINFO +_ADGROUPCRITERION.fields_by_name['custom_affinity'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CUSTOMAFFINITYINFO +_ADGROUPCRITERION.fields_by_name['custom_intent'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CUSTOMINTENTINFO +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['keyword']) +_ADGROUPCRITERION.fields_by_name['keyword'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['placement']) +_ADGROUPCRITERION.fields_by_name['placement'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['mobile_app_category']) +_ADGROUPCRITERION.fields_by_name['mobile_app_category'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['mobile_application']) +_ADGROUPCRITERION.fields_by_name['mobile_application'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['listing_group']) +_ADGROUPCRITERION.fields_by_name['listing_group'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['age_range']) +_ADGROUPCRITERION.fields_by_name['age_range'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['gender']) +_ADGROUPCRITERION.fields_by_name['gender'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['income_range']) +_ADGROUPCRITERION.fields_by_name['income_range'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['parental_status']) +_ADGROUPCRITERION.fields_by_name['parental_status'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['user_list']) +_ADGROUPCRITERION.fields_by_name['user_list'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['youtube_video']) +_ADGROUPCRITERION.fields_by_name['youtube_video'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['youtube_channel']) +_ADGROUPCRITERION.fields_by_name['youtube_channel'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['topic']) +_ADGROUPCRITERION.fields_by_name['topic'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['user_interest']) +_ADGROUPCRITERION.fields_by_name['user_interest'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['webpage']) +_ADGROUPCRITERION.fields_by_name['webpage'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['app_payment_model']) +_ADGROUPCRITERION.fields_by_name['app_payment_model'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['custom_affinity']) +_ADGROUPCRITERION.fields_by_name['custom_affinity'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['custom_intent']) +_ADGROUPCRITERION.fields_by_name['custom_intent'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['_criterion_id'].fields.append( + _ADGROUPCRITERION.fields_by_name['criterion_id']) +_ADGROUPCRITERION.fields_by_name['criterion_id'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_criterion_id'] +_ADGROUPCRITERION.oneofs_by_name['_ad_group'].fields.append( + _ADGROUPCRITERION.fields_by_name['ad_group']) +_ADGROUPCRITERION.fields_by_name['ad_group'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_ad_group'] +_ADGROUPCRITERION.oneofs_by_name['_negative'].fields.append( + _ADGROUPCRITERION.fields_by_name['negative']) +_ADGROUPCRITERION.fields_by_name['negative'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_negative'] +_ADGROUPCRITERION.oneofs_by_name['_bid_modifier'].fields.append( + _ADGROUPCRITERION.fields_by_name['bid_modifier']) +_ADGROUPCRITERION.fields_by_name['bid_modifier'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_bid_modifier'] +_ADGROUPCRITERION.oneofs_by_name['_cpc_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['cpc_bid_micros']) +_ADGROUPCRITERION.fields_by_name['cpc_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_cpc_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_cpm_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['cpm_bid_micros']) +_ADGROUPCRITERION.fields_by_name['cpm_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_cpm_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_cpv_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['cpv_bid_micros']) +_ADGROUPCRITERION.fields_by_name['cpv_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_cpv_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_percent_cpc_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['percent_cpc_bid_micros']) +_ADGROUPCRITERION.fields_by_name['percent_cpc_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_percent_cpc_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_effective_cpc_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['effective_cpc_bid_micros']) +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_effective_cpc_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_effective_cpm_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['effective_cpm_bid_micros']) +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_effective_cpm_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_effective_cpv_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['effective_cpv_bid_micros']) +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_effective_cpv_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_effective_percent_cpc_bid_micros'].fields.append( + _ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_micros']) +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_micros'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_effective_percent_cpc_bid_micros'] +_ADGROUPCRITERION.oneofs_by_name['_final_url_suffix'].fields.append( + _ADGROUPCRITERION.fields_by_name['final_url_suffix']) +_ADGROUPCRITERION.fields_by_name['final_url_suffix'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_final_url_suffix'] +_ADGROUPCRITERION.oneofs_by_name['_tracking_url_template'].fields.append( + _ADGROUPCRITERION.fields_by_name['tracking_url_template']) +_ADGROUPCRITERION.fields_by_name['tracking_url_template'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['_tracking_url_template'] +DESCRIPTOR.message_types_by_name['AdGroupCriterion'] = _ADGROUPCRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupCriterion = _reflection.GeneratedProtocolMessageType('AdGroupCriterion', (_message.Message,), { + + 'QualityInfo' : _reflection.GeneratedProtocolMessageType('QualityInfo', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERION_QUALITYINFO, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_criterion_pb2' + , + '__doc__': """A container for ad group criterion quality information. + + Attributes: + quality_score: + Output only. The quality score. This field may not be + populated if Google does not have enough information to + determine a value. + creative_quality_score: + Output only. The performance of the ad compared to other + advertisers. + post_click_quality_score: + Output only. The quality score of the landing page. + search_predicted_ctr: + Output only. The click-through rate compared to that of other + advertisers. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupCriterion.QualityInfo) + }) + , + + 'PositionEstimates' : _reflection.GeneratedProtocolMessageType('PositionEstimates', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERION_POSITIONESTIMATES, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_criterion_pb2' + , + '__doc__': """Estimates for criterion bids at various positions. + + Attributes: + first_page_cpc_micros: + Output only. The estimate of the CPC bid required for ad to be + shown on first page of search results. + first_position_cpc_micros: + Output only. The estimate of the CPC bid required for ad to be + displayed in first position, at the top of the first page of + search results. + top_of_page_cpc_micros: + Output only. The estimate of the CPC bid required for ad to be + displayed at the top of the first page of search results. + estimated_add_clicks_at_first_position_cpc: + Output only. Estimate of how many clicks per week you might + get by changing your keyword bid to the value in + first\_position\_cpc\_micros. + estimated_add_cost_at_first_position_cpc: + Output only. Estimate of how your cost per week might change + when changing your keyword bid to the value in + first\_position\_cpc\_micros. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupCriterion.PositionEstimates) + }) + , + 'DESCRIPTOR' : _ADGROUPCRITERION, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_criterion_pb2' + , + '__doc__': """An ad group criterion. + + Attributes: + resource_name: + Immutable. The resource name of the ad group criterion. Ad + group criterion resource names have the form: ``customers/{cu + stomer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`` + criterion_id: + Output only. The ID of the criterion. This field is ignored + for mutates. + status: + The status of the criterion. This is the status of the ad + group criterion entity, set by the client. Note: UI reports + may incorporate additional information that affects whether a + criterion is eligible to run. In some cases a criterion that's + REMOVED in the API can still show as enabled in the UI. For + example, campaigns by default show to users of all age ranges + unless excluded. The UI will show each age range as "enabled", + since they're eligible to see the ads; but + AdGroupCriterion.status will show "removed", since no positive + criterion was added. + quality_info: + Output only. Information regarding the quality of the + criterion. + ad_group: + Immutable. The ad group to which the criterion belongs. + type: + Output only. The type of the criterion. + negative: + Immutable. Whether to target (``false``) or exclude (``true``) + the criterion. This field is immutable. To switch a criterion + from positive to negative, remove then re-add it. + system_serving_status: + Output only. Serving status of the criterion. + approval_status: + Output only. Approval status of the criterion. + disapproval_reasons: + Output only. List of disapproval reasons of the criterion. + The different reasons for disapproving a criterion can be + found here: + https://support.google.com/adspolicy/answer/6008942 This + field is read-only. + bid_modifier: + The modifier for the bid when the criterion matches. The + modifier must be in the range: 0.1 - 10.0. Most targetable + criteria types support modifiers. + cpc_bid_micros: + The CPC (cost-per-click) bid. + cpm_bid_micros: + The CPM (cost-per-thousand viewable impressions) bid. + cpv_bid_micros: + The CPV (cost-per-view) bid. + percent_cpc_bid_micros: + The CPC bid amount, expressed as a fraction of the advertised + price for some good or service. The valid range for the + fraction is [0,1) and the value stored here is 1,000,000 \* + [fraction]. + effective_cpc_bid_micros: + Output only. The effective CPC (cost-per-click) bid. + effective_cpm_bid_micros: + Output only. The effective CPM (cost-per-thousand viewable + impressions) bid. + effective_cpv_bid_micros: + Output only. The effective CPV (cost-per-view) bid. + effective_percent_cpc_bid_micros: + Output only. The effective Percent CPC bid amount. + effective_cpc_bid_source: + Output only. Source of the effective CPC bid. + effective_cpm_bid_source: + Output only. Source of the effective CPM bid. + effective_cpv_bid_source: + Output only. Source of the effective CPV bid. + effective_percent_cpc_bid_source: + Output only. Source of the effective Percent CPC bid. + position_estimates: + Output only. Estimates for criterion bids at various + positions. + final_urls: + The list of possible final URLs after all cross-domain + redirects for the ad. + final_mobile_urls: + The list of possible final mobile URLs after all cross-domain + redirects. + final_url_suffix: + URL template for appending params to final URL. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + criterion: + The ad group criterion. Exactly one must be set. + keyword: + Immutable. Keyword. + placement: + Immutable. Placement. + mobile_app_category: + Immutable. Mobile app category. + mobile_application: + Immutable. Mobile application. + listing_group: + Immutable. Listing group. + age_range: + Immutable. Age range. + gender: + Immutable. Gender. + income_range: + Immutable. Income range. + parental_status: + Immutable. Parental status. + user_list: + Immutable. User List. + youtube_video: + Immutable. YouTube Video. + youtube_channel: + Immutable. YouTube Channel. + topic: + Immutable. Topic. + user_interest: + Immutable. User Interest. + webpage: + Immutable. Webpage + app_payment_model: + Immutable. App Payment Model. + custom_affinity: + Immutable. Custom Affinity. + custom_intent: + Immutable. Custom Intent. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupCriterion) + }) +_sym_db.RegisterMessage(AdGroupCriterion) +_sym_db.RegisterMessage(AdGroupCriterion.QualityInfo) +_sym_db.RegisterMessage(AdGroupCriterion.PositionEstimates) + + +DESCRIPTOR._options = None +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['quality_score']._options = None +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['creative_quality_score']._options = None +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['post_click_quality_score']._options = None +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['search_predicted_ctr']._options = None +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_page_cpc_micros']._options = None +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_position_cpc_micros']._options = None +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['top_of_page_cpc_micros']._options = None +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_clicks_at_first_position_cpc']._options = None +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['estimated_add_cost_at_first_position_cpc']._options = None +_ADGROUPCRITERION.fields_by_name['resource_name']._options = None +_ADGROUPCRITERION.fields_by_name['criterion_id']._options = None +_ADGROUPCRITERION.fields_by_name['quality_info']._options = None +_ADGROUPCRITERION.fields_by_name['ad_group']._options = None +_ADGROUPCRITERION.fields_by_name['type']._options = None +_ADGROUPCRITERION.fields_by_name['negative']._options = None +_ADGROUPCRITERION.fields_by_name['system_serving_status']._options = None +_ADGROUPCRITERION.fields_by_name['approval_status']._options = None +_ADGROUPCRITERION.fields_by_name['disapproval_reasons']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_micros']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_micros']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_micros']._options = None +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_micros']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_source']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_source']._options = None +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_source']._options = None +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_source']._options = None +_ADGROUPCRITERION.fields_by_name['position_estimates']._options = None +_ADGROUPCRITERION.fields_by_name['keyword']._options = None +_ADGROUPCRITERION.fields_by_name['placement']._options = None +_ADGROUPCRITERION.fields_by_name['mobile_app_category']._options = None +_ADGROUPCRITERION.fields_by_name['mobile_application']._options = None +_ADGROUPCRITERION.fields_by_name['listing_group']._options = None +_ADGROUPCRITERION.fields_by_name['age_range']._options = None +_ADGROUPCRITERION.fields_by_name['gender']._options = None +_ADGROUPCRITERION.fields_by_name['income_range']._options = None +_ADGROUPCRITERION.fields_by_name['parental_status']._options = None +_ADGROUPCRITERION.fields_by_name['user_list']._options = None +_ADGROUPCRITERION.fields_by_name['youtube_video']._options = None +_ADGROUPCRITERION.fields_by_name['youtube_channel']._options = None +_ADGROUPCRITERION.fields_by_name['topic']._options = None +_ADGROUPCRITERION.fields_by_name['user_interest']._options = None +_ADGROUPCRITERION.fields_by_name['webpage']._options = None +_ADGROUPCRITERION.fields_by_name['app_payment_model']._options = None +_ADGROUPCRITERION.fields_by_name['custom_affinity']._options = None +_ADGROUPCRITERION.fields_by_name['custom_intent']._options = None +_ADGROUPCRITERION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2.py new file mode 100644 index 000000000..0c1824f6f --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_criterion_simulation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_modification_method_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_criterion_simulation.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\037AdGroupCriterionSimulationProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/resources/ad_group_criterion_simulation.proto\x12!google.ads.googleads.v5.resources\x1a\x35google/ads/googleads_v5/proto/common/simulation.proto\x1aHgoogle/ads/googleads_v5/proto/enums/simulation_modification_method.proto\x1a\x39google/ads/googleads_v5/proto/enums/simulation_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xe2\x06\n\x1a\x41\x64GroupCriterionSimulation\x12R\n\rresource_name\x18\x01 \x01(\tB;\xe0\x41\x03\xfa\x41\x35\n3googleads.googleapis.com/AdGroupCriterionSimulation\x12\x1d\n\x0b\x61\x64_group_id\x18\t \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1e\n\x0c\x63riterion_id\x18\n \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12S\n\x04type\x18\x04 \x01(\x0e\x32@.google.ads.googleads.v5.enums.SimulationTypeEnum.SimulationTypeB\x03\xe0\x41\x03\x12~\n\x13modification_method\x18\x05 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.SimulationModificationMethodEnum.SimulationModificationMethodB\x03\xe0\x41\x03\x12\x1c\n\nstart_date\x18\x0b \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12\x1a\n\x08\x65nd_date\x18\x0c \x01(\tB\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\\\n\x12\x63pc_bid_point_list\x18\x08 \x01(\x0b\x32\x39.google.ads.googleads.v5.common.CpcBidSimulationPointListB\x03\xe0\x41\x03H\x00\x12k\n\x1apercent_cpc_bid_point_list\x18\r \x01(\x0b\x32@.google.ads.googleads.v5.common.PercentCpcBidSimulationPointListB\x03\xe0\x41\x03H\x00:\x8b\x01\xea\x41\x87\x01\n3googleads.googleapis.com/AdGroupCriterionSimulation\x12Pcustomers/{customer}/adGroupCriterionSimulations/{ad_group_criterion_simulation}B\x0c\n\npoint_listB\x0e\n\x0c_ad_group_idB\x0f\n\r_criterion_idB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\x8c\x02\n%com.google.ads.googleads.v5.resourcesB\x1f\x41\x64GroupCriterionSimulationProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPCRITERIONSIMULATION = _descriptor.Descriptor( + name='AdGroupCriterionSimulation', + full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A5\n3googleads.googleapis.com/AdGroupCriterionSimulation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.ad_group_id', index=1, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.criterion_id', index=2, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.type', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='modification_method', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.modification_method', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.start_date', index=5, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.end_date', index=6, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_point_list', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.cpc_bid_point_list', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_cpc_bid_point_list', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.percent_cpc_bid_point_list', index=8, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\207\001\n3googleads.googleapis.com/AdGroupCriterionSimulation\022Pcustomers/{customer}/adGroupCriterionSimulations/{ad_group_criterion_simulation}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='point_list', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation.point_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation._ad_group_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation._criterion_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_start_date', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation._start_date', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_date', full_name='google.ads.googleads.v5.resources.AdGroupCriterionSimulation._end_date', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=393, + serialized_end=1259, +) + +_ADGROUPCRITERIONSIMULATION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2._SIMULATIONTYPEENUM_SIMULATIONTYPE +_ADGROUPCRITERIONSIMULATION.fields_by_name['modification_method'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2._SIMULATIONMODIFICATIONMETHODENUM_SIMULATIONMODIFICATIONMETHOD +_ADGROUPCRITERIONSIMULATION.fields_by_name['cpc_bid_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._CPCBIDSIMULATIONPOINTLIST +_ADGROUPCRITERIONSIMULATION.fields_by_name['percent_cpc_bid_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._PERCENTCPCBIDSIMULATIONPOINTLIST +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['cpc_bid_point_list']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['cpc_bid_point_list'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['point_list'] +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['percent_cpc_bid_point_list']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['percent_cpc_bid_point_list'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['point_list'] +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['_ad_group_id'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['ad_group_id']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['ad_group_id'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['_ad_group_id'] +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['_criterion_id'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['criterion_id']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['criterion_id'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['_criterion_id'] +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['_start_date'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['start_date']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['start_date'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['_start_date'] +_ADGROUPCRITERIONSIMULATION.oneofs_by_name['_end_date'].fields.append( + _ADGROUPCRITERIONSIMULATION.fields_by_name['end_date']) +_ADGROUPCRITERIONSIMULATION.fields_by_name['end_date'].containing_oneof = _ADGROUPCRITERIONSIMULATION.oneofs_by_name['_end_date'] +DESCRIPTOR.message_types_by_name['AdGroupCriterionSimulation'] = _ADGROUPCRITERIONSIMULATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupCriterionSimulation = _reflection.GeneratedProtocolMessageType('AdGroupCriterionSimulation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERIONSIMULATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_criterion_simulation_pb2' + , + '__doc__': """An ad group criterion simulation. Supported combinations of + advertising channel type, criterion type, simulation type, and + simulation modification method are detailed below respectively. 1. + DISPLAY - KEYWORD - CPC\_BID - UNIFORM 2. SEARCH - KEYWORD - CPC\_BID + - UNIFORM 3. SHOPPING - LISTING\_GROUP - CPC\_BID - UNIFORM + + Attributes: + resource_name: + Output only. The resource name of the ad group criterion + simulation. Ad group criterion simulation resource names have + the form: ``customers/{customer_id}/adGroupCriterionSimulatio + ns/{ad_group_id}~{criterion_id}~{type}~{modification_method}~{ + start_date}~{end_date}`` + ad_group_id: + Output only. AdGroup ID of the simulation. + criterion_id: + Output only. Criterion ID of the simulation. + type: + Output only. The field that the simulation modifies. + modification_method: + Output only. How the simulation modifies the field. + start_date: + Output only. First day on which the simulation is based, in + YYYY-MM-DD format. + end_date: + Output only. Last day on which the simulation is based, in + YYYY-MM-DD format. + point_list: + List of simulation points. + cpc_bid_point_list: + Output only. Simulation points if the simulation type is + CPC\_BID. + percent_cpc_bid_point_list: + Output only. Simulation points if the simulation type is + PERCENT\_CPC\_BID. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupCriterionSimulation) + }) +_sym_db.RegisterMessage(AdGroupCriterionSimulation) + + +DESCRIPTOR._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['resource_name']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['ad_group_id']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['criterion_id']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['type']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['modification_method']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['start_date']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['end_date']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['cpc_bid_point_list']._options = None +_ADGROUPCRITERIONSIMULATION.fields_by_name['percent_cpc_bid_point_list']._options = None +_ADGROUPCRITERIONSIMULATION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_criterion_simulation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2.py new file mode 100644 index 000000000..f19beba07 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_extension_setting.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import extension_setting_device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2 +from google.ads.google_ads.v5.proto.enums import extension_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_extension_setting.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\034AdGroupExtensionSettingProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/resources/ad_group_extension_setting.proto\x12!google.ads.googleads.v5.resources\x1a\x42google/ads/googleads_v5/proto/enums/extension_setting_device.proto\x1a\x38google/ads/googleads_v5/proto/enums/extension_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xf4\x04\n\x17\x41\x64GroupExtensionSetting\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x05\xfa\x41\x32\n0googleads.googleapis.com/AdGroupExtensionSetting\x12[\n\x0e\x65xtension_type\x18\x02 \x01(\x0e\x32>.google.ads.googleads.v5.enums.ExtensionTypeEnum.ExtensionTypeB\x03\xe0\x41\x05\x12X\n\x08\x61\x64_group\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroup\x12k\n\x14\x65xtension_feed_items\x18\x04 \x03(\x0b\x32\x1c.google.protobuf.StringValueB/\xfa\x41,\n*googleads.googleapis.com/ExtensionFeedItem\x12`\n\x06\x64\x65vice\x18\x05 \x01(\x0e\x32P.google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice:\x81\x01\xea\x41~\n0googleads.googleapis.com/AdGroupExtensionSetting\x12Jcustomers/{customer}/adGroupExtensionSettings/{ad_group_extension_setting}B\x89\x02\n%com.google.ads.googleads.v5.resourcesB\x1c\x41\x64GroupExtensionSettingProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPEXTENSIONSETTING = _descriptor.Descriptor( + name='AdGroupExtensionSetting', + full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A2\n0googleads.googleapis.com/AdGroupExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_type', full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting.extension_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting.ad_group', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_items', full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting.extension_feed_items', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A,\n*googleads.googleapis.com/ExtensionFeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.AdGroupExtensionSetting.device', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A~\n0googleads.googleapis.com/AdGroupExtensionSetting\022Jcustomers/{customer}/adGroupExtensionSettings/{ad_group_extension_setting}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=360, + serialized_end=988, +) + +_ADGROUPEXTENSIONSETTING.fields_by_name['extension_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2._EXTENSIONTYPEENUM_EXTENSIONTYPE +_ADGROUPEXTENSIONSETTING.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPEXTENSIONSETTING.fields_by_name['extension_feed_items'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPEXTENSIONSETTING.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2._EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE +DESCRIPTOR.message_types_by_name['AdGroupExtensionSetting'] = _ADGROUPEXTENSIONSETTING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupExtensionSetting = _reflection.GeneratedProtocolMessageType('AdGroupExtensionSetting', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPEXTENSIONSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_extension_setting_pb2' + , + '__doc__': """An ad group extension setting. + + Attributes: + resource_name: + Immutable. The resource name of the ad group extension + setting. AdGroupExtensionSetting resource names have the form: + ``customers/{customer_id}/adGroupExtensionSettings/{ad_group_i + d}~{extension_type}`` + extension_type: + Immutable. The extension type of the ad group extension + setting. + ad_group: + Immutable. The resource name of the ad group. The linked + extension feed items will serve under this ad group. AdGroup + resource names have the form: + ``customers/{customer_id}/adGroups/{ad_group_id}`` + extension_feed_items: + The resource names of the extension feed items to serve under + the ad group. ExtensionFeedItem resource names have the form: + ``customers/{customer_id}/extensionFeedItems/{feed_item_id}`` + device: + The device for which the extensions will serve. Optional. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupExtensionSetting) + }) +_sym_db.RegisterMessage(AdGroupExtensionSetting) + + +DESCRIPTOR._options = None +_ADGROUPEXTENSIONSETTING.fields_by_name['resource_name']._options = None +_ADGROUPEXTENSIONSETTING.fields_by_name['extension_type']._options = None +_ADGROUPEXTENSIONSETTING.fields_by_name['ad_group']._options = None +_ADGROUPEXTENSIONSETTING.fields_by_name['extension_feed_items']._options = None +_ADGROUPEXTENSIONSETTING._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_extension_setting_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_feed_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_feed_pb2.py new file mode 100644 index 000000000..d5bc4fa56 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_feed_pb2.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_feed.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import matching_function_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_matching__function__pb2 +from google.ads.google_ads.v5.proto.enums import feed_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__link__status__pb2 +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_feed.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\020AdGroupFeedProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/ad_group_feed.proto\x12!google.ads.googleads.v5.resources\x1a.google.ads.googleads.v5.enums.AdGroupStatusEnum.AdGroupStatus\x12M\n\x04type\x18\x0c \x01(\x0e\x32:.google.ads.googleads.v5.enums.AdGroupTypeEnum.AdGroupTypeB\x03\xe0\x41\x05\x12h\n\x10\x61\x64_rotation_mode\x18\x16 \x01(\x0e\x32N.google.ads.googleads.v5.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode\x12\x44\n\rbase_ad_group\x18$ \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x02\x88\x01\x01\x12\"\n\x15tracking_url_template\x18% \x01(\tH\x03\x88\x01\x01\x12N\n\x15url_custom_parameters\x18\x06 \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12@\n\x08\x63\x61mpaign\x18& \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/CampaignH\x04\x88\x01\x01\x12\x1b\n\x0e\x63pc_bid_micros\x18\' \x01(\x03H\x05\x88\x01\x01\x12\x1b\n\x0e\x63pm_bid_micros\x18( \x01(\x03H\x06\x88\x01\x01\x12\x1e\n\x11target_cpa_micros\x18) \x01(\x03H\x07\x88\x01\x01\x12 \n\x0e\x63pv_bid_micros\x18* \x01(\x03\x42\x03\xe0\x41\x03H\x08\x88\x01\x01\x12\x1e\n\x11target_cpm_micros\x18+ \x01(\x03H\t\x88\x01\x01\x12\x18\n\x0btarget_roas\x18, \x01(\x01H\n\x88\x01\x01\x12#\n\x16percent_cpc_bid_micros\x18- \x01(\x03H\x0b\x88\x01\x01\x12\x65\n\x1f\x65xplorer_auto_optimizer_setting\x18\x15 \x01(\x0b\x32<.google.ads.googleads.v5.common.ExplorerAutoOptimizerSetting\x12n\n\x1c\x64isplay_custom_bid_dimension\x18\x17 \x01(\x0e\x32H.google.ads.googleads.v5.enums.TargetingDimensionEnum.TargetingDimension\x12\x1d\n\x10\x66inal_url_suffix\x18. \x01(\tH\x0c\x88\x01\x01\x12K\n\x11targeting_setting\x18\x19 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.TargetingSetting\x12-\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_micros\x18/ \x01(\x03\x42\x03\xe0\x41\x03H\r\x88\x01\x01\x12h\n\x1b\x65\x66\x66\x65\x63tive_target_cpa_source\x18\x1d \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12\'\n\x15\x65\x66\x66\x65\x63tive_target_roas\x18\x30 \x01(\x01\x42\x03\xe0\x41\x03H\x0e\x88\x01\x01\x12i\n\x1c\x65\x66\x66\x65\x63tive_target_roas_source\x18 \x01(\x0e\x32>.google.ads.googleads.v5.enums.BiddingSourceEnum.BiddingSourceB\x03\xe0\x41\x03\x12=\n\x06labels\x18\x31 \x03(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/AdGroupLabel:O\xea\x41L\n googleads.googleapis.com/AdGroup\x12(customers/{customer}/adGroups/{ad_group}B\x05\n\x03_idB\x07\n\x05_nameB\x10\n\x0e_base_ad_groupB\x18\n\x16_tracking_url_templateB\x0b\n\t_campaignB\x11\n\x0f_cpc_bid_microsB\x11\n\x0f_cpm_bid_microsB\x14\n\x12_target_cpa_microsB\x11\n\x0f_cpv_bid_microsB\x14\n\x12_target_cpm_microsB\x0e\n\x0c_target_roasB\x19\n\x17_percent_cpc_bid_microsB\x13\n\x11_final_url_suffixB\x1e\n\x1c_effective_target_cpa_microsB\x18\n\x16_effective_target_roasB\xf9\x01\n%com.google.ads.googleads.v5.resourcesB\x0c\x41\x64GroupProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_explorer__auto__optimizer__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_targeting__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__ad__rotation__mode__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_targeting__dimension__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUP = _descriptor.Descriptor( + name='AdGroup', + full_name='google.ads.googleads.v5.resources.AdGroup', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroup.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.AdGroup.id', index=1, + number=34, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.AdGroup.name', index=2, + number=35, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.AdGroup.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.AdGroup.type', index=4, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_rotation_mode', full_name='google.ads.googleads.v5.resources.AdGroup.ad_rotation_mode', index=5, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='base_ad_group', full_name='google.ads.googleads.v5.resources.AdGroup.base_ad_group', index=6, + number=36, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.resources.AdGroup.tracking_url_template', index=7, + number=37, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.resources.AdGroup.url_custom_parameters', index=8, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.AdGroup.campaign', index=9, + number=38, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup.cpc_bid_micros', index=10, + number=39, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup.cpm_bid_micros', index=11, + number=40, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v5.resources.AdGroup.target_cpa_micros', index=12, + number=41, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup.cpv_bid_micros', index=13, + number=42, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpm_micros', full_name='google.ads.googleads.v5.resources.AdGroup.target_cpm_micros', index=14, + number=43, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.resources.AdGroup.target_roas', index=15, + number=44, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup.percent_cpc_bid_micros', index=16, + number=45, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='explorer_auto_optimizer_setting', full_name='google.ads.googleads.v5.resources.AdGroup.explorer_auto_optimizer_setting', index=17, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_custom_bid_dimension', full_name='google.ads.googleads.v5.resources.AdGroup.display_custom_bid_dimension', index=18, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.resources.AdGroup.final_url_suffix', index=19, + number=46, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting_setting', full_name='google.ads.googleads.v5.resources.AdGroup.targeting_setting', index=20, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_target_cpa_micros', full_name='google.ads.googleads.v5.resources.AdGroup.effective_target_cpa_micros', index=21, + number=47, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_target_cpa_source', full_name='google.ads.googleads.v5.resources.AdGroup.effective_target_cpa_source', index=22, + number=29, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_target_roas', full_name='google.ads.googleads.v5.resources.AdGroup.effective_target_roas', index=23, + number=48, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_target_roas_source', full_name='google.ads.googleads.v5.resources.AdGroup.effective_target_roas_source', index=24, + number=32, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='labels', full_name='google.ads.googleads.v5.resources.AdGroup.labels', index=25, + number=49, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\'\n%googleads.googleapis.com/AdGroupLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AL\n googleads.googleapis.com/AdGroup\022(customers/{customer}/adGroups/{ad_group}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.AdGroup._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.AdGroup._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_base_ad_group', full_name='google.ads.googleads.v5.resources.AdGroup._base_ad_group', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tracking_url_template', full_name='google.ads.googleads.v5.resources.AdGroup._tracking_url_template', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.resources.AdGroup._campaign', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup._cpc_bid_micros', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpm_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup._cpm_bid_micros', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_cpa_micros', full_name='google.ads.googleads.v5.resources.AdGroup._target_cpa_micros', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cpv_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup._cpv_bid_micros', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_cpm_micros', full_name='google.ads.googleads.v5.resources.AdGroup._target_cpm_micros', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_roas', full_name='google.ads.googleads.v5.resources.AdGroup._target_roas', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_percent_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.AdGroup._percent_cpc_bid_micros', + index=11, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_final_url_suffix', full_name='google.ads.googleads.v5.resources.AdGroup._final_url_suffix', + index=12, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_target_cpa_micros', full_name='google.ads.googleads.v5.resources.AdGroup._effective_target_cpa_micros', + index=13, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_target_roas', full_name='google.ads.googleads.v5.resources.AdGroup._effective_target_roas', + index=14, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=689, + serialized_end=2604, +) + +_ADGROUP.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__status__pb2._ADGROUPSTATUSENUM_ADGROUPSTATUS +_ADGROUP.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__type__pb2._ADGROUPTYPEENUM_ADGROUPTYPE +_ADGROUP.fields_by_name['ad_rotation_mode'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__group__ad__rotation__mode__pb2._ADGROUPADROTATIONMODEENUM_ADGROUPADROTATIONMODE +_ADGROUP.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_ADGROUP.fields_by_name['explorer_auto_optimizer_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_explorer__auto__optimizer__setting__pb2._EXPLORERAUTOOPTIMIZERSETTING +_ADGROUP.fields_by_name['display_custom_bid_dimension'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_targeting__dimension__pb2._TARGETINGDIMENSIONENUM_TARGETINGDIMENSION +_ADGROUP.fields_by_name['targeting_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_targeting__setting__pb2._TARGETINGSETTING +_ADGROUP.fields_by_name['effective_target_cpa_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUP.fields_by_name['effective_target_roas_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUP.oneofs_by_name['_id'].fields.append( + _ADGROUP.fields_by_name['id']) +_ADGROUP.fields_by_name['id'].containing_oneof = _ADGROUP.oneofs_by_name['_id'] +_ADGROUP.oneofs_by_name['_name'].fields.append( + _ADGROUP.fields_by_name['name']) +_ADGROUP.fields_by_name['name'].containing_oneof = _ADGROUP.oneofs_by_name['_name'] +_ADGROUP.oneofs_by_name['_base_ad_group'].fields.append( + _ADGROUP.fields_by_name['base_ad_group']) +_ADGROUP.fields_by_name['base_ad_group'].containing_oneof = _ADGROUP.oneofs_by_name['_base_ad_group'] +_ADGROUP.oneofs_by_name['_tracking_url_template'].fields.append( + _ADGROUP.fields_by_name['tracking_url_template']) +_ADGROUP.fields_by_name['tracking_url_template'].containing_oneof = _ADGROUP.oneofs_by_name['_tracking_url_template'] +_ADGROUP.oneofs_by_name['_campaign'].fields.append( + _ADGROUP.fields_by_name['campaign']) +_ADGROUP.fields_by_name['campaign'].containing_oneof = _ADGROUP.oneofs_by_name['_campaign'] +_ADGROUP.oneofs_by_name['_cpc_bid_micros'].fields.append( + _ADGROUP.fields_by_name['cpc_bid_micros']) +_ADGROUP.fields_by_name['cpc_bid_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_cpc_bid_micros'] +_ADGROUP.oneofs_by_name['_cpm_bid_micros'].fields.append( + _ADGROUP.fields_by_name['cpm_bid_micros']) +_ADGROUP.fields_by_name['cpm_bid_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_cpm_bid_micros'] +_ADGROUP.oneofs_by_name['_target_cpa_micros'].fields.append( + _ADGROUP.fields_by_name['target_cpa_micros']) +_ADGROUP.fields_by_name['target_cpa_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_target_cpa_micros'] +_ADGROUP.oneofs_by_name['_cpv_bid_micros'].fields.append( + _ADGROUP.fields_by_name['cpv_bid_micros']) +_ADGROUP.fields_by_name['cpv_bid_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_cpv_bid_micros'] +_ADGROUP.oneofs_by_name['_target_cpm_micros'].fields.append( + _ADGROUP.fields_by_name['target_cpm_micros']) +_ADGROUP.fields_by_name['target_cpm_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_target_cpm_micros'] +_ADGROUP.oneofs_by_name['_target_roas'].fields.append( + _ADGROUP.fields_by_name['target_roas']) +_ADGROUP.fields_by_name['target_roas'].containing_oneof = _ADGROUP.oneofs_by_name['_target_roas'] +_ADGROUP.oneofs_by_name['_percent_cpc_bid_micros'].fields.append( + _ADGROUP.fields_by_name['percent_cpc_bid_micros']) +_ADGROUP.fields_by_name['percent_cpc_bid_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_percent_cpc_bid_micros'] +_ADGROUP.oneofs_by_name['_final_url_suffix'].fields.append( + _ADGROUP.fields_by_name['final_url_suffix']) +_ADGROUP.fields_by_name['final_url_suffix'].containing_oneof = _ADGROUP.oneofs_by_name['_final_url_suffix'] +_ADGROUP.oneofs_by_name['_effective_target_cpa_micros'].fields.append( + _ADGROUP.fields_by_name['effective_target_cpa_micros']) +_ADGROUP.fields_by_name['effective_target_cpa_micros'].containing_oneof = _ADGROUP.oneofs_by_name['_effective_target_cpa_micros'] +_ADGROUP.oneofs_by_name['_effective_target_roas'].fields.append( + _ADGROUP.fields_by_name['effective_target_roas']) +_ADGROUP.fields_by_name['effective_target_roas'].containing_oneof = _ADGROUP.oneofs_by_name['_effective_target_roas'] +DESCRIPTOR.message_types_by_name['AdGroup'] = _ADGROUP +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroup = _reflection.GeneratedProtocolMessageType('AdGroup', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUP, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_pb2' + , + '__doc__': """An ad group. + + Attributes: + resource_name: + Immutable. The resource name of the ad group. Ad group + resource names have the form: + ``customers/{customer_id}/adGroups/{ad_group_id}`` + id: + Output only. The ID of the ad group. + name: + The name of the ad group. This field is required and should + not be empty when creating new ad groups. It must contain + fewer than 255 UTF-8 full-width characters. It must not + contain any null (code point 0x0), NL line feed (code point + 0xA) or carriage return (code point 0xD) characters. + status: + The status of the ad group. + type: + Immutable. The type of the ad group. + ad_rotation_mode: + The ad rotation mode of the ad group. + base_ad_group: + Output only. For draft or experiment ad groups, this field is + the resource name of the base ad group from which this ad + group was created. If a draft or experiment ad group does not + have a base ad group, then this field is null. For base ad + groups, this field equals the ad group resource name. This + field is read-only. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + campaign: + Immutable. The campaign to which the ad group belongs. + cpc_bid_micros: + The maximum CPC (cost-per-click) bid. + cpm_bid_micros: + The maximum CPM (cost-per-thousand viewable impressions) bid. + target_cpa_micros: + The target CPA (cost-per-acquisition). + cpv_bid_micros: + Output only. The CPV (cost-per-view) bid. + target_cpm_micros: + Average amount in micros that the advertiser is willing to pay + for every thousand times the ad is shown. + target_roas: + The target ROAS (return-on-ad-spend) override. If the ad + group's campaign bidding strategy is a standard Target ROAS + strategy, then this field overrides the target ROAS specified + in the campaign's bidding strategy. Otherwise, this value is + ignored. + percent_cpc_bid_micros: + The percent cpc bid amount, expressed as a fraction of the + advertised price for some good or service. The valid range for + the fraction is [0,1) and the value stored here is 1,000,000 + \* [fraction]. + explorer_auto_optimizer_setting: + Settings for the Display Campaign Optimizer, initially termed + "Explorer". + display_custom_bid_dimension: + Allows advertisers to specify a targeting dimension on which + to place absolute bids. This is only applicable for campaigns + that target only the display network and not search. + final_url_suffix: + URL template for appending params to Final URL. + targeting_setting: + Setting for targeting related features. + effective_target_cpa_micros: + Output only. The effective target CPA (cost-per-acquisition). + This field is read-only. + effective_target_cpa_source: + Output only. Source of the effective target CPA. This field is + read-only. + effective_target_roas: + Output only. The effective target ROAS (return-on-ad-spend). + This field is read-only. + effective_target_roas_source: + Output only. Source of the effective target ROAS. This field + is read-only. + labels: + Output only. The resource names of labels attached to this ad + group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroup) + }) +_sym_db.RegisterMessage(AdGroup) + + +DESCRIPTOR._options = None +_ADGROUP.fields_by_name['resource_name']._options = None +_ADGROUP.fields_by_name['id']._options = None +_ADGROUP.fields_by_name['type']._options = None +_ADGROUP.fields_by_name['base_ad_group']._options = None +_ADGROUP.fields_by_name['campaign']._options = None +_ADGROUP.fields_by_name['cpv_bid_micros']._options = None +_ADGROUP.fields_by_name['effective_target_cpa_micros']._options = None +_ADGROUP.fields_by_name['effective_target_cpa_source']._options = None +_ADGROUP.fields_by_name['effective_target_roas']._options = None +_ADGROUP.fields_by_name['effective_target_roas_source']._options = None +_ADGROUP.fields_by_name['labels']._options = None +_ADGROUP._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2.py new file mode 100644 index 000000000..5ceb374a7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2.py @@ -0,0 +1,241 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_group_simulation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_modification_method_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_group_simulation.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\026AdGroupSimulationProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/resources/ad_group_simulation.proto\x12!google.ads.googleads.v5.resources\x1a\x35google/ads/googleads_v5/proto/common/simulation.proto\x1aHgoogle/ads/googleads_v5/proto/enums/simulation_modification_method.proto\x1a\x39google/ads/googleads_v5/proto/enums/simulation_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xbc\x07\n\x11\x41\x64GroupSimulation\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/AdGroupSimulation\x12\x1d\n\x0b\x61\x64_group_id\x18\x0c \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12S\n\x04type\x18\x03 \x01(\x0e\x32@.google.ads.googleads.v5.enums.SimulationTypeEnum.SimulationTypeB\x03\xe0\x41\x03\x12~\n\x13modification_method\x18\x04 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.SimulationModificationMethodEnum.SimulationModificationMethodB\x03\xe0\x41\x03\x12\x1c\n\nstart_date\x18\r \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1a\n\x08\x65nd_date\x18\x0e \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12\\\n\x12\x63pc_bid_point_list\x18\x08 \x01(\x0b\x32\x39.google.ads.googleads.v5.common.CpcBidSimulationPointListB\x03\xe0\x41\x03H\x00\x12\\\n\x12\x63pv_bid_point_list\x18\n \x01(\x0b\x32\x39.google.ads.googleads.v5.common.CpvBidSimulationPointListB\x03\xe0\x41\x03H\x00\x12\x62\n\x15target_cpa_point_list\x18\t \x01(\x0b\x32<.google.ads.googleads.v5.common.TargetCpaSimulationPointListB\x03\xe0\x41\x03H\x00\x12\x64\n\x16target_roas_point_list\x18\x0b \x01(\x0b\x32=.google.ads.googleads.v5.common.TargetRoasSimulationPointListB\x03\xe0\x41\x03H\x00:n\xea\x41k\n*googleads.googleapis.com/AdGroupSimulation\x12=customers/{customer}/adGroupSimulations/{ad_group_simulation}B\x0c\n\npoint_listB\x0e\n\x0c_ad_group_idB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\x83\x02\n%com.google.ads.googleads.v5.resourcesB\x16\x41\x64GroupSimulationProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADGROUPSIMULATION = _descriptor.Descriptor( + name='AdGroupSimulation', + full_name='google.ads.googleads.v5.resources.AdGroupSimulation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A,\n*googleads.googleapis.com/AdGroupSimulation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_id', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.ad_group_id', index=1, + number=12, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='modification_method', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.modification_method', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.start_date', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.end_date', index=5, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_point_list', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.cpc_bid_point_list', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpv_bid_point_list', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.cpv_bid_point_list', index=7, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa_point_list', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.target_cpa_point_list', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas_point_list', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.target_roas_point_list', index=9, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ak\n*googleads.googleapis.com/AdGroupSimulation\022=customers/{customer}/adGroupSimulations/{ad_group_simulation}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='point_list', full_name='google.ads.googleads.v5.resources.AdGroupSimulation.point_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group_id', full_name='google.ads.googleads.v5.resources.AdGroupSimulation._ad_group_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_start_date', full_name='google.ads.googleads.v5.resources.AdGroupSimulation._start_date', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_date', full_name='google.ads.googleads.v5.resources.AdGroupSimulation._end_date', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=383, + serialized_end=1339, +) + +_ADGROUPSIMULATION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2._SIMULATIONTYPEENUM_SIMULATIONTYPE +_ADGROUPSIMULATION.fields_by_name['modification_method'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2._SIMULATIONMODIFICATIONMETHODENUM_SIMULATIONMODIFICATIONMETHOD +_ADGROUPSIMULATION.fields_by_name['cpc_bid_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._CPCBIDSIMULATIONPOINTLIST +_ADGROUPSIMULATION.fields_by_name['cpv_bid_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._CPVBIDSIMULATIONPOINTLIST +_ADGROUPSIMULATION.fields_by_name['target_cpa_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._TARGETCPASIMULATIONPOINTLIST +_ADGROUPSIMULATION.fields_by_name['target_roas_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._TARGETROASSIMULATIONPOINTLIST +_ADGROUPSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPSIMULATION.fields_by_name['cpc_bid_point_list']) +_ADGROUPSIMULATION.fields_by_name['cpc_bid_point_list'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['point_list'] +_ADGROUPSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPSIMULATION.fields_by_name['cpv_bid_point_list']) +_ADGROUPSIMULATION.fields_by_name['cpv_bid_point_list'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['point_list'] +_ADGROUPSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPSIMULATION.fields_by_name['target_cpa_point_list']) +_ADGROUPSIMULATION.fields_by_name['target_cpa_point_list'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['point_list'] +_ADGROUPSIMULATION.oneofs_by_name['point_list'].fields.append( + _ADGROUPSIMULATION.fields_by_name['target_roas_point_list']) +_ADGROUPSIMULATION.fields_by_name['target_roas_point_list'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['point_list'] +_ADGROUPSIMULATION.oneofs_by_name['_ad_group_id'].fields.append( + _ADGROUPSIMULATION.fields_by_name['ad_group_id']) +_ADGROUPSIMULATION.fields_by_name['ad_group_id'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['_ad_group_id'] +_ADGROUPSIMULATION.oneofs_by_name['_start_date'].fields.append( + _ADGROUPSIMULATION.fields_by_name['start_date']) +_ADGROUPSIMULATION.fields_by_name['start_date'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['_start_date'] +_ADGROUPSIMULATION.oneofs_by_name['_end_date'].fields.append( + _ADGROUPSIMULATION.fields_by_name['end_date']) +_ADGROUPSIMULATION.fields_by_name['end_date'].containing_oneof = _ADGROUPSIMULATION.oneofs_by_name['_end_date'] +DESCRIPTOR.message_types_by_name['AdGroupSimulation'] = _ADGROUPSIMULATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupSimulation = _reflection.GeneratedProtocolMessageType('AdGroupSimulation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPSIMULATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_group_simulation_pb2' + , + '__doc__': """An ad group simulation. Supported combinations of advertising channel + type, simulation type and simulation modification method is detailed + below respectively. 1. SEARCH - CPC\_BID - DEFAULT 2. SEARCH - + CPC\_BID - UNIFORM 3. SEARCH - TARGET\_CPA - UNIFORM 4. SEARCH - + TARGET\_ROAS - UNIFORM 5. DISPLAY - CPC\_BID - DEFAULT 6. DISPLAY - + CPC\_BID - UNIFORM 7. DISPLAY - TARGET\_CPA - UNIFORM 8. VIDEO - + CPV\_BID - DEFAULT 9. VIDEO - CPV\_BID - UNIFORM + + Attributes: + resource_name: + Output only. The resource name of the ad group simulation. Ad + group simulation resource names have the form: ``customers/{c + ustomer_id}/adGroupSimulations/{ad_group_id}~{type}~{modificat + ion_method}~{start_date}~{end_date}`` + ad_group_id: + Output only. Ad group id of the simulation. + type: + Output only. The field that the simulation modifies. + modification_method: + Output only. How the simulation modifies the field. + start_date: + Output only. First day on which the simulation is based, in + YYYY-MM-DD format. + end_date: + Output only. Last day on which the simulation is based, in + YYYY-MM-DD format + point_list: + List of simulation points. + cpc_bid_point_list: + Output only. Simulation points if the simulation type is + CPC\_BID. + cpv_bid_point_list: + Output only. Simulation points if the simulation type is + CPV\_BID. + target_cpa_point_list: + Output only. Simulation points if the simulation type is + TARGET\_CPA. + target_roas_point_list: + Output only. Simulation points if the simulation type is + TARGET\_ROAS. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdGroupSimulation) + }) +_sym_db.RegisterMessage(AdGroupSimulation) + + +DESCRIPTOR._options = None +_ADGROUPSIMULATION.fields_by_name['resource_name']._options = None +_ADGROUPSIMULATION.fields_by_name['ad_group_id']._options = None +_ADGROUPSIMULATION.fields_by_name['type']._options = None +_ADGROUPSIMULATION.fields_by_name['modification_method']._options = None +_ADGROUPSIMULATION.fields_by_name['start_date']._options = None +_ADGROUPSIMULATION.fields_by_name['end_date']._options = None +_ADGROUPSIMULATION.fields_by_name['cpc_bid_point_list']._options = None +_ADGROUPSIMULATION.fields_by_name['cpv_bid_point_list']._options = None +_ADGROUPSIMULATION.fields_by_name['target_cpa_point_list']._options = None +_ADGROUPSIMULATION.fields_by_name['target_roas_point_list']._options = None +_ADGROUPSIMULATION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_group_simulation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2.py new file mode 100644 index 000000000..00beb1f51 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_parameter.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_parameter.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\020AdParameterProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/resources/ad_parameter.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x81\x03\n\x0b\x41\x64Parameter\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x05\xfa\x41&\n$googleads.googleapis.com/AdParameter\x12R\n\x12\x61\x64_group_criterion\x18\x05 \x01(\tB1\xe0\x41\x05\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterionH\x00\x88\x01\x01\x12!\n\x0fparameter_index\x18\x06 \x01(\x03\x42\x03\xe0\x41\x05H\x01\x88\x01\x01\x12\x1b\n\x0einsertion_text\x18\x07 \x01(\tH\x02\x88\x01\x01:[\xea\x41X\n$googleads.googleapis.com/AdParameter\x12\x30\x63ustomers/{customer}/adParameters/{ad_parameter}B\x15\n\x13_ad_group_criterionB\x12\n\x10_parameter_indexB\x11\n\x0f_insertion_textB\xfd\x01\n%com.google.ads.googleads.v5.resourcesB\x10\x41\x64ParameterProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADPARAMETER = _descriptor.Descriptor( + name='AdParameter', + full_name='google.ads.googleads.v5.resources.AdParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdParameter.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A&\n$googleads.googleapis.com/AdParameter', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.resources.AdParameter.ad_group_criterion', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A+\n)googleads.googleapis.com/AdGroupCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parameter_index', full_name='google.ads.googleads.v5.resources.AdParameter.parameter_index', index=2, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='insertion_text', full_name='google.ads.googleads.v5.resources.AdParameter.insertion_text', index=3, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AX\n$googleads.googleapis.com/AdParameter\0220customers/{customer}/adParameters/{ad_parameter}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ad_group_criterion', full_name='google.ads.googleads.v5.resources.AdParameter._ad_group_criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parameter_index', full_name='google.ads.googleads.v5.resources.AdParameter._parameter_index', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_insertion_text', full_name='google.ads.googleads.v5.resources.AdParameter._insertion_text', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=188, + serialized_end=573, +) + +_ADPARAMETER.oneofs_by_name['_ad_group_criterion'].fields.append( + _ADPARAMETER.fields_by_name['ad_group_criterion']) +_ADPARAMETER.fields_by_name['ad_group_criterion'].containing_oneof = _ADPARAMETER.oneofs_by_name['_ad_group_criterion'] +_ADPARAMETER.oneofs_by_name['_parameter_index'].fields.append( + _ADPARAMETER.fields_by_name['parameter_index']) +_ADPARAMETER.fields_by_name['parameter_index'].containing_oneof = _ADPARAMETER.oneofs_by_name['_parameter_index'] +_ADPARAMETER.oneofs_by_name['_insertion_text'].fields.append( + _ADPARAMETER.fields_by_name['insertion_text']) +_ADPARAMETER.fields_by_name['insertion_text'].containing_oneof = _ADPARAMETER.oneofs_by_name['_insertion_text'] +DESCRIPTOR.message_types_by_name['AdParameter'] = _ADPARAMETER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdParameter = _reflection.GeneratedProtocolMessageType('AdParameter', (_message.Message,), { + 'DESCRIPTOR' : _ADPARAMETER, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_parameter_pb2' + , + '__doc__': """An ad parameter that is used to update numeric values (such as prices + or inventory levels) in any text line of an ad (including URLs). There + can be a maximum of two AdParameters per ad group criterion. (One with + parameter\_index = 1 and one with parameter\_index = 2.) In the ad the + parameters are referenced by a placeholder of the form + "{param#:value}". E.g. "{param1:$17}" + + Attributes: + resource_name: + Immutable. The resource name of the ad parameter. Ad parameter + resource names have the form: ``customers/{customer_id}/adPar + ameters/{ad_group_id}~{criterion_id}~{parameter_index}`` + ad_group_criterion: + Immutable. The ad group criterion that this ad parameter + belongs to. + parameter_index: + Immutable. The unique index of this ad parameter. Must be + either 1 or 2. + insertion_text: + Numeric value to insert into the ad text. The following + restrictions apply: - Can use comma or period as a separator, + with an optional period or comma (respectively) for fractional + values. For example, 1,000,000.00 and 2.000.000,10 are valid. + - Can be prepended or appended with a currency symbol. For + example, $99.99 is valid. - Can be prepended or appended with + a currency code. For example, 99.99USD and EUR200 are valid. - + Can use '%'. For example, 1.0% and 1,0% are valid. - Can use + plus or minus. For example, -10.99 and 25+ are valid. - Can + use '/' between two numbers. For example 4/1 and 0.95/0.45 are + valid. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdParameter) + }) +_sym_db.RegisterMessage(AdParameter) + + +DESCRIPTOR._options = None +_ADPARAMETER.fields_by_name['resource_name']._options = None +_ADPARAMETER.fields_by_name['ad_group_criterion']._options = None +_ADPARAMETER.fields_by_name['parameter_index']._options = None +_ADPARAMETER._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_parameter_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_pb2.py new file mode 100644 index 000000000..3fa703a48 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_pb2.py @@ -0,0 +1,576 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import ad_type_infos_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2 +from google.ads.google_ads.v5.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v5.proto.common import final_app_url_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_final__app__url__pb2 +from google.ads.google_ads.v5.proto.common import url_collection_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_url__collection__pb2 +from google.ads.google_ads.v5.proto.enums import ad_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__type__pb2 +from google.ads.google_ads.v5.proto.enums import device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2 +from google.ads.google_ads.v5.proto.enums import system_managed_entity_source_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_system__managed__entity__source__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\007AdProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n0google/ads/googleads_v5/proto/resources/ad.proto\x12!google.ads.googleads.v5.resources\x1a\x38google/ads/googleads_v5/proto/common/ad_type_infos.proto\x1a;google/ads/googleads_v5/proto/common/custom_parameter.proto\x1a\x38google/ads/googleads_v5/proto/common/final_app_url.proto\x1a\x39google/ads/googleads_v5/proto/common/url_collection.proto\x1a\x31google/ads/googleads_v5/proto/enums/ad_type.proto\x1a\x30google/ads/googleads_v5/proto/enums/device.proto\x1a\x46google/ads/googleads_v5/proto/enums/system_managed_entity_source.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xa1\x14\n\x02\x41\x64\x12:\n\rresource_name\x18% \x01(\tB#\xe0\x41\x05\xfa\x41\x1d\n\x1bgoogleads.googleapis.com/Ad\x12\x14\n\x02id\x18( \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x12\n\nfinal_urls\x18) \x03(\t\x12\x43\n\x0e\x66inal_app_urls\x18# \x03(\x0b\x32+.google.ads.googleads.v5.common.FinalAppUrl\x12\x19\n\x11\x66inal_mobile_urls\x18* \x03(\t\x12\"\n\x15tracking_url_template\x18+ \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10\x66inal_url_suffix\x18, \x01(\tH\x03\x88\x01\x01\x12N\n\x15url_custom_parameters\x18\n \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12\x18\n\x0b\x64isplay_url\x18- \x01(\tH\x04\x88\x01\x01\x12\x43\n\x04type\x18\x05 \x01(\x0e\x32\x30.google.ads.googleads.v5.enums.AdTypeEnum.AdTypeB\x03\xe0\x41\x03\x12%\n\x13\x61\x64\x64\x65\x64_by_google_ads\x18. \x01(\x08\x42\x03\xe0\x41\x03H\x05\x88\x01\x01\x12K\n\x11\x64\x65vice_preference\x18\x14 \x01(\x0e\x32\x30.google.ads.googleads.v5.enums.DeviceEnum.Device\x12\x46\n\x0furl_collections\x18\x1a \x03(\x0b\x32-.google.ads.googleads.v5.common.UrlCollection\x12\x16\n\x04name\x18/ \x01(\tB\x03\xe0\x41\x05H\x06\x88\x01\x01\x12\x87\x01\n\x1esystem_managed_resource_source\x18\x1b \x01(\x0e\x32Z.google.ads.googleads.v5.enums.SystemManagedResourceSourceEnum.SystemManagedResourceSourceB\x03\xe0\x41\x03\x12\x42\n\x07text_ad\x18\x06 \x01(\x0b\x32*.google.ads.googleads.v5.common.TextAdInfoB\x03\xe0\x41\x05H\x00\x12N\n\x10\x65xpanded_text_ad\x18\x07 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.ExpandedTextAdInfoH\x00\x12\x46\n\x0c\x63\x61ll_only_ad\x18\r \x01(\x0b\x32..google.ads.googleads.v5.common.CallOnlyAdInfoH\x00\x12\x66\n\x1a\x65xpanded_dynamic_search_ad\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v5.common.ExpandedDynamicSearchAdInfoB\x03\xe0\x41\x05H\x00\x12?\n\x08hotel_ad\x18\x0f \x01(\x0b\x32+.google.ads.googleads.v5.common.HotelAdInfoH\x00\x12P\n\x11shopping_smart_ad\x18\x11 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.ShoppingSmartAdInfoH\x00\x12T\n\x13shopping_product_ad\x18\x12 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.ShoppingProductAdInfoH\x00\x12\x44\n\x08gmail_ad\x18\x15 \x01(\x0b\x32+.google.ads.googleads.v5.common.GmailAdInfoB\x03\xe0\x41\x05H\x00\x12\x44\n\x08image_ad\x18\x16 \x01(\x0b\x32+.google.ads.googleads.v5.common.ImageAdInfoB\x03\xe0\x41\x05H\x00\x12?\n\x08video_ad\x18\x18 \x01(\x0b\x32+.google.ads.googleads.v5.common.VideoAdInfoH\x00\x12T\n\x13video_responsive_ad\x18\' \x01(\x0b\x32\x35.google.ads.googleads.v5.common.VideoResponsiveAdInfoH\x00\x12V\n\x14responsive_search_ad\x18\x19 \x01(\x0b\x32\x36.google.ads.googleads.v5.common.ResponsiveSearchAdInfoH\x00\x12\x65\n\x1clegacy_responsive_display_ad\x18\x1c \x01(\x0b\x32=.google.ads.googleads.v5.common.LegacyResponsiveDisplayAdInfoH\x00\x12;\n\x06\x61pp_ad\x18\x1d \x01(\x0b\x32).google.ads.googleads.v5.common.AppAdInfoH\x00\x12\\\n\x15legacy_app_install_ad\x18\x1e \x01(\x0b\x32\x36.google.ads.googleads.v5.common.LegacyAppInstallAdInfoB\x03\xe0\x41\x05H\x00\x12X\n\x15responsive_display_ad\x18\x1f \x01(\x0b\x32\x37.google.ads.googleads.v5.common.ResponsiveDisplayAdInfoH\x00\x12?\n\x08local_ad\x18 \x01(\x0b\x32+.google.ads.googleads.v5.common.LocalAdInfoH\x00\x12P\n\x11\x64isplay_upload_ad\x18! \x01(\x0b\x32\x33.google.ads.googleads.v5.common.DisplayUploadAdInfoH\x00\x12P\n\x11\x61pp_engagement_ad\x18\" \x01(\x0b\x32\x33.google.ads.googleads.v5.common.AppEngagementAdInfoH\x00\x12i\n\x1eshopping_comparison_listing_ad\x18$ \x01(\x0b\x32?.google.ads.googleads.v5.common.ShoppingComparisonListingAdInfoH\x00:?\xea\x41<\n\x1bgoogleads.googleapis.com/Ad\x12\x1d\x63ustomers/{customer}/ads/{ad}B\t\n\x07\x61\x64_dataB\x05\n\x03_idB\x18\n\x16_tracking_url_templateB\x13\n\x11_final_url_suffixB\x0e\n\x0c_display_urlB\x16\n\x14_added_by_google_adsB\x07\n\x05_nameB\xf4\x01\n%com.google.ads.googleads.v5.resourcesB\x07\x41\x64ProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_final__app__url__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_url__collection__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_system__managed__entity__source__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_AD = _descriptor.Descriptor( + name='Ad', + full_name='google.ads.googleads.v5.resources.Ad', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Ad.resource_name', index=0, + number=37, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\035\n\033googleads.googleapis.com/Ad', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Ad.id', index=1, + number=40, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v5.resources.Ad.final_urls', index=2, + number=41, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_app_urls', full_name='google.ads.googleads.v5.resources.Ad.final_app_urls', index=3, + number=35, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v5.resources.Ad.final_mobile_urls', index=4, + number=42, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.resources.Ad.tracking_url_template', index=5, + number=43, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.resources.Ad.final_url_suffix', index=6, + number=44, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.resources.Ad.url_custom_parameters', index=7, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_url', full_name='google.ads.googleads.v5.resources.Ad.display_url', index=8, + number=45, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.Ad.type', index=9, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='added_by_google_ads', full_name='google.ads.googleads.v5.resources.Ad.added_by_google_ads', index=10, + number=46, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_preference', full_name='google.ads.googleads.v5.resources.Ad.device_preference', index=11, + number=20, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_collections', full_name='google.ads.googleads.v5.resources.Ad.url_collections', index=12, + number=26, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.Ad.name', index=13, + number=47, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='system_managed_resource_source', full_name='google.ads.googleads.v5.resources.Ad.system_managed_resource_source', index=14, + number=27, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_ad', full_name='google.ads.googleads.v5.resources.Ad.text_ad', index=15, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='expanded_text_ad', full_name='google.ads.googleads.v5.resources.Ad.expanded_text_ad', index=16, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_only_ad', full_name='google.ads.googleads.v5.resources.Ad.call_only_ad', index=17, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='expanded_dynamic_search_ad', full_name='google.ads.googleads.v5.resources.Ad.expanded_dynamic_search_ad', index=18, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_ad', full_name='google.ads.googleads.v5.resources.Ad.hotel_ad', index=19, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shopping_smart_ad', full_name='google.ads.googleads.v5.resources.Ad.shopping_smart_ad', index=20, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shopping_product_ad', full_name='google.ads.googleads.v5.resources.Ad.shopping_product_ad', index=21, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gmail_ad', full_name='google.ads.googleads.v5.resources.Ad.gmail_ad', index=22, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='image_ad', full_name='google.ads.googleads.v5.resources.Ad.image_ad', index=23, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_ad', full_name='google.ads.googleads.v5.resources.Ad.video_ad', index=24, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_responsive_ad', full_name='google.ads.googleads.v5.resources.Ad.video_responsive_ad', index=25, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='responsive_search_ad', full_name='google.ads.googleads.v5.resources.Ad.responsive_search_ad', index=26, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='legacy_responsive_display_ad', full_name='google.ads.googleads.v5.resources.Ad.legacy_responsive_display_ad', index=27, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_ad', full_name='google.ads.googleads.v5.resources.Ad.app_ad', index=28, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='legacy_app_install_ad', full_name='google.ads.googleads.v5.resources.Ad.legacy_app_install_ad', index=29, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='responsive_display_ad', full_name='google.ads.googleads.v5.resources.Ad.responsive_display_ad', index=30, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='local_ad', full_name='google.ads.googleads.v5.resources.Ad.local_ad', index=31, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_upload_ad', full_name='google.ads.googleads.v5.resources.Ad.display_upload_ad', index=32, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_engagement_ad', full_name='google.ads.googleads.v5.resources.Ad.app_engagement_ad', index=33, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shopping_comparison_listing_ad', full_name='google.ads.googleads.v5.resources.Ad.shopping_comparison_listing_ad', index=34, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A<\n\033googleads.googleapis.com/Ad\022\035customers/{customer}/ads/{ad}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='ad_data', full_name='google.ads.googleads.v5.resources.Ad.ad_data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.Ad._id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tracking_url_template', full_name='google.ads.googleads.v5.resources.Ad._tracking_url_template', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_final_url_suffix', full_name='google.ads.googleads.v5.resources.Ad._final_url_suffix', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_display_url', full_name='google.ads.googleads.v5.resources.Ad._display_url', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_added_by_google_ads', full_name='google.ads.googleads.v5.resources.Ad._added_by_google_ads', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.Ad._name', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=587, + serialized_end=3180, +) + +_AD.fields_by_name['final_app_urls'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_final__app__url__pb2._FINALAPPURL +_AD.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_AD.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__type__pb2._ADTYPEENUM_ADTYPE +_AD.fields_by_name['device_preference'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_device__pb2._DEVICEENUM_DEVICE +_AD.fields_by_name['url_collections'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_url__collection__pb2._URLCOLLECTION +_AD.fields_by_name['system_managed_resource_source'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_system__managed__entity__source__pb2._SYSTEMMANAGEDRESOURCESOURCEENUM_SYSTEMMANAGEDRESOURCESOURCE +_AD.fields_by_name['text_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._TEXTADINFO +_AD.fields_by_name['expanded_text_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._EXPANDEDTEXTADINFO +_AD.fields_by_name['call_only_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._CALLONLYADINFO +_AD.fields_by_name['expanded_dynamic_search_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._EXPANDEDDYNAMICSEARCHADINFO +_AD.fields_by_name['hotel_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._HOTELADINFO +_AD.fields_by_name['shopping_smart_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._SHOPPINGSMARTADINFO +_AD.fields_by_name['shopping_product_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._SHOPPINGPRODUCTADINFO +_AD.fields_by_name['gmail_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._GMAILADINFO +_AD.fields_by_name['image_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._IMAGEADINFO +_AD.fields_by_name['video_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._VIDEOADINFO +_AD.fields_by_name['video_responsive_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._VIDEORESPONSIVEADINFO +_AD.fields_by_name['responsive_search_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._RESPONSIVESEARCHADINFO +_AD.fields_by_name['legacy_responsive_display_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._LEGACYRESPONSIVEDISPLAYADINFO +_AD.fields_by_name['app_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._APPADINFO +_AD.fields_by_name['legacy_app_install_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._LEGACYAPPINSTALLADINFO +_AD.fields_by_name['responsive_display_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._RESPONSIVEDISPLAYADINFO +_AD.fields_by_name['local_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._LOCALADINFO +_AD.fields_by_name['display_upload_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._DISPLAYUPLOADADINFO +_AD.fields_by_name['app_engagement_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._APPENGAGEMENTADINFO +_AD.fields_by_name['shopping_comparison_listing_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_ad__type__infos__pb2._SHOPPINGCOMPARISONLISTINGADINFO +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['text_ad']) +_AD.fields_by_name['text_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['expanded_text_ad']) +_AD.fields_by_name['expanded_text_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['call_only_ad']) +_AD.fields_by_name['call_only_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['expanded_dynamic_search_ad']) +_AD.fields_by_name['expanded_dynamic_search_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['hotel_ad']) +_AD.fields_by_name['hotel_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['shopping_smart_ad']) +_AD.fields_by_name['shopping_smart_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['shopping_product_ad']) +_AD.fields_by_name['shopping_product_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['gmail_ad']) +_AD.fields_by_name['gmail_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['image_ad']) +_AD.fields_by_name['image_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['video_ad']) +_AD.fields_by_name['video_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['video_responsive_ad']) +_AD.fields_by_name['video_responsive_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['responsive_search_ad']) +_AD.fields_by_name['responsive_search_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['legacy_responsive_display_ad']) +_AD.fields_by_name['legacy_responsive_display_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['app_ad']) +_AD.fields_by_name['app_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['legacy_app_install_ad']) +_AD.fields_by_name['legacy_app_install_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['responsive_display_ad']) +_AD.fields_by_name['responsive_display_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['local_ad']) +_AD.fields_by_name['local_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['display_upload_ad']) +_AD.fields_by_name['display_upload_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['app_engagement_ad']) +_AD.fields_by_name['app_engagement_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['shopping_comparison_listing_ad']) +_AD.fields_by_name['shopping_comparison_listing_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['_id'].fields.append( + _AD.fields_by_name['id']) +_AD.fields_by_name['id'].containing_oneof = _AD.oneofs_by_name['_id'] +_AD.oneofs_by_name['_tracking_url_template'].fields.append( + _AD.fields_by_name['tracking_url_template']) +_AD.fields_by_name['tracking_url_template'].containing_oneof = _AD.oneofs_by_name['_tracking_url_template'] +_AD.oneofs_by_name['_final_url_suffix'].fields.append( + _AD.fields_by_name['final_url_suffix']) +_AD.fields_by_name['final_url_suffix'].containing_oneof = _AD.oneofs_by_name['_final_url_suffix'] +_AD.oneofs_by_name['_display_url'].fields.append( + _AD.fields_by_name['display_url']) +_AD.fields_by_name['display_url'].containing_oneof = _AD.oneofs_by_name['_display_url'] +_AD.oneofs_by_name['_added_by_google_ads'].fields.append( + _AD.fields_by_name['added_by_google_ads']) +_AD.fields_by_name['added_by_google_ads'].containing_oneof = _AD.oneofs_by_name['_added_by_google_ads'] +_AD.oneofs_by_name['_name'].fields.append( + _AD.fields_by_name['name']) +_AD.fields_by_name['name'].containing_oneof = _AD.oneofs_by_name['_name'] +DESCRIPTOR.message_types_by_name['Ad'] = _AD +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Ad = _reflection.GeneratedProtocolMessageType('Ad', (_message.Message,), { + 'DESCRIPTOR' : _AD, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_pb2' + , + '__doc__': """An ad. + + Attributes: + resource_name: + Immutable. The resource name of the ad. Ad resource names have + the form: ``customers/{customer_id}/ads/{ad_id}`` + id: + Output only. The ID of the ad. + final_urls: + The list of possible final URLs after all cross-domain + redirects for the ad. + final_app_urls: + A list of final app URLs that will be used on mobile if the + user has the specific app installed. + final_mobile_urls: + The list of possible final mobile URLs after all cross-domain + redirects for the ad. + tracking_url_template: + The URL template for constructing a tracking URL. + final_url_suffix: + The suffix to use when constructing a final URL. + url_custom_parameters: + The list of mappings that can be used to substitute custom + parameter tags in a ``tracking_url_template``, ``final_urls``, + or ``mobile_final_urls``. For mutates, please use url custom + parameter operations. + display_url: + The URL that appears in the ad description for some ad + formats. + type: + Output only. The type of ad. + added_by_google_ads: + Output only. Indicates if this ad was automatically added by + Google Ads and not by a user. For example, this could happen + when ads are automatically created as suggestions for new ads + based on knowledge of how existing ads are performing. + device_preference: + The device preference for the ad. You can only specify a + preference for mobile devices. When this preference is set the + ad will be preferred over other ads when being displayed on a + mobile device. The ad can still be displayed on other device + types, e.g. if no other ads are available. If unspecified (no + device preference), all devices are targeted. This is only + supported by some ad types. + url_collections: + Additional URLs for the ad that are tagged with a unique + identifier that can be referenced from other fields in the ad. + name: + Immutable. The name of the ad. This is only used to be able to + identify the ad. It does not need to be unique and does not + affect the served ad. The name field is currently only + supported for DisplayUploadAd, ImageAd, + ShoppingComparisonListingAd and VideoAd. + system_managed_resource_source: + Output only. If this ad is system managed, then this field + will indicate the source. This field is read-only. + ad_data: + Details pertinent to the ad type. Exactly one value must be + set. + text_ad: + Immutable. Details pertaining to a text ad. + expanded_text_ad: + Details pertaining to an expanded text ad. + call_only_ad: + Details pertaining to a call-only ad. + expanded_dynamic_search_ad: + Immutable. Details pertaining to an Expanded Dynamic Search + Ad. This type of ad has its headline, final URLs, and display + URL auto-generated at serving time according to domain name + specific information provided by + ``dynamic_search_ads_setting`` linked at the campaign level. + hotel_ad: + Details pertaining to a hotel ad. + shopping_smart_ad: + Details pertaining to a Smart Shopping ad. + shopping_product_ad: + Details pertaining to a Shopping product ad. + gmail_ad: + Immutable. Details pertaining to a Gmail ad. + image_ad: + Immutable. Details pertaining to an Image ad. + video_ad: + Details pertaining to a Video ad. + video_responsive_ad: + Details pertaining to a Video responsive ad. + responsive_search_ad: + Details pertaining to a responsive search ad. + legacy_responsive_display_ad: + Details pertaining to a legacy responsive display ad. + app_ad: + Details pertaining to an app ad. + legacy_app_install_ad: + Immutable. Details pertaining to a legacy app install ad. + responsive_display_ad: + Details pertaining to a responsive display ad. + local_ad: + Details pertaining to a local ad. + display_upload_ad: + Details pertaining to a display upload ad. + app_engagement_ad: + Details pertaining to an app engagement ad. + shopping_comparison_listing_ad: + Details pertaining to a Shopping Comparison Listing ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Ad) + }) +_sym_db.RegisterMessage(Ad) + + +DESCRIPTOR._options = None +_AD.fields_by_name['resource_name']._options = None +_AD.fields_by_name['id']._options = None +_AD.fields_by_name['type']._options = None +_AD.fields_by_name['added_by_google_ads']._options = None +_AD.fields_by_name['name']._options = None +_AD.fields_by_name['system_managed_resource_source']._options = None +_AD.fields_by_name['text_ad']._options = None +_AD.fields_by_name['expanded_dynamic_search_ad']._options = None +_AD.fields_by_name['gmail_ad']._options = None +_AD.fields_by_name['image_ad']._options = None +_AD.fields_by_name['legacy_app_install_ad']._options = None +_AD._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2.py b/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2.py new file mode 100644 index 000000000..8ff4e6091 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/ad_schedule_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/ad_schedule_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023AdScheduleViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/resources/ad_schedule_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xbf\x01\n\x0e\x41\x64ScheduleView\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/AdScheduleView:e\xea\x41\x62\n\'googleads.googleapis.com/AdScheduleView\x12\x37\x63ustomers/{customer}/adScheduleViews/{ad_schedule_view}B\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x41\x64ScheduleViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_ADSCHEDULEVIEW = _descriptor.Descriptor( + name='AdScheduleView', + full_name='google.ads.googleads.v5.resources.AdScheduleView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.AdScheduleView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/AdScheduleView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n\'googleads.googleapis.com/AdScheduleView\0227customers/{customer}/adScheduleViews/{ad_schedule_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=192, + serialized_end=383, +) + +DESCRIPTOR.message_types_by_name['AdScheduleView'] = _ADSCHEDULEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdScheduleView = _reflection.GeneratedProtocolMessageType('AdScheduleView', (_message.Message,), { + 'DESCRIPTOR' : _ADSCHEDULEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.ad_schedule_view_pb2' + , + '__doc__': """An ad schedule view summarizes the performance of campaigns by + AdSchedule criteria. + + Attributes: + resource_name: + Output only. The resource name of the ad schedule view. + AdSchedule view resource names have the form: ``customers/{cu + stomer_id}/adScheduleViews/{campaign_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AdScheduleView) + }) +_sym_db.RegisterMessage(AdScheduleView) + + +DESCRIPTOR._options = None +_ADSCHEDULEVIEW.fields_by_name['resource_name']._options = None +_ADSCHEDULEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/ad_schedule_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/age_range_view_pb2.py b/google/ads/google_ads/v5/proto/resources/age_range_view_pb2.py new file mode 100644 index 000000000..68a60ce8d --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/age_range_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/age_range_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/age_range_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021AgeRangeViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/resources/bidding_strategy.proto\x12!google.ads.googleads.v5.resources\x1a\x32google/ads/googleads_v5/proto/common/bidding.proto\x1a\x41google/ads/googleads_v5/proto/enums/bidding_strategy_status.proto\x1a?google/ads/googleads_v5/proto/enums/bidding_strategy_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xfc\x07\n\x0f\x42iddingStrategy\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x05\xfa\x41*\n(googleads.googleapis.com/BiddingStrategy\x12\x14\n\x02id\x18\x10 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x11\n\x04name\x18\x11 \x01(\tH\x02\x88\x01\x01\x12\x63\n\x06status\x18\x0f \x01(\x0e\x32N.google.ads.googleads.v5.enums.BiddingStrategyStatusEnum.BiddingStrategyStatusB\x03\xe0\x41\x03\x12]\n\x04type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.BiddingStrategyTypeEnum.BiddingStrategyTypeB\x03\xe0\x41\x03\x12)\n\x17\x65\x66\x66\x65\x63tive_currency_code\x18\x14 \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12 \n\x0e\x63\x61mpaign_count\x18\x12 \x01(\x03\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12,\n\x1anon_removed_campaign_count\x18\x13 \x01(\x03\x42\x03\xe0\x41\x03H\x05\x88\x01\x01\x12\x43\n\x0c\x65nhanced_cpc\x18\x07 \x01(\x0b\x32+.google.ads.googleads.v5.common.EnhancedCpcH\x00\x12?\n\ntarget_cpa\x18\t \x01(\x0b\x32).google.ads.googleads.v5.common.TargetCpaH\x00\x12X\n\x17target_impression_share\x18\x30 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.TargetImpressionShareH\x00\x12\x41\n\x0btarget_roas\x18\x0b \x01(\x0b\x32*.google.ads.googleads.v5.common.TargetRoasH\x00\x12\x43\n\x0ctarget_spend\x18\x0c \x01(\x0b\x32+.google.ads.googleads.v5.common.TargetSpendH\x00:h\xea\x41\x65\n(googleads.googleapis.com/BiddingStrategy\x12\x39\x63ustomers/{customer}/biddingStrategies/{bidding_strategy}B\x08\n\x06schemeB\x05\n\x03_idB\x07\n\x05_nameB\x1a\n\x18_effective_currency_codeB\x11\n\x0f_campaign_countB\x1d\n\x1b_non_removed_campaign_countB\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14\x42iddingStrategyProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_BIDDINGSTRATEGY = _descriptor.Descriptor( + name='BiddingStrategy', + full_name='google.ads.googleads.v5.resources.BiddingStrategy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.BiddingStrategy.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A*\n(googleads.googleapis.com/BiddingStrategy', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.BiddingStrategy.id', index=1, + number=16, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.BiddingStrategy.name', index=2, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.BiddingStrategy.status', index=3, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.BiddingStrategy.type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='effective_currency_code', full_name='google.ads.googleads.v5.resources.BiddingStrategy.effective_currency_code', index=5, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_count', full_name='google.ads.googleads.v5.resources.BiddingStrategy.campaign_count', index=6, + number=18, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='non_removed_campaign_count', full_name='google.ads.googleads.v5.resources.BiddingStrategy.non_removed_campaign_count', index=7, + number=19, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enhanced_cpc', full_name='google.ads.googleads.v5.resources.BiddingStrategy.enhanced_cpc', index=8, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa', full_name='google.ads.googleads.v5.resources.BiddingStrategy.target_cpa', index=9, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_impression_share', full_name='google.ads.googleads.v5.resources.BiddingStrategy.target_impression_share', index=10, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.resources.BiddingStrategy.target_roas', index=11, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_spend', full_name='google.ads.googleads.v5.resources.BiddingStrategy.target_spend', index=12, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ae\n(googleads.googleapis.com/BiddingStrategy\0229customers/{customer}/biddingStrategies/{bidding_strategy}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='scheme', full_name='google.ads.googleads.v5.resources.BiddingStrategy.scheme', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.BiddingStrategy._id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.BiddingStrategy._name', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_effective_currency_code', full_name='google.ads.googleads.v5.resources.BiddingStrategy._effective_currency_code', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign_count', full_name='google.ads.googleads.v5.resources.BiddingStrategy._campaign_count', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_non_removed_campaign_count', full_name='google.ads.googleads.v5.resources.BiddingStrategy._non_removed_campaign_count', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=376, + serialized_end=1396, +) + +_BIDDINGSTRATEGY.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__status__pb2._BIDDINGSTRATEGYSTATUSENUM_BIDDINGSTRATEGYSTATUS +_BIDDINGSTRATEGY.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__type__pb2._BIDDINGSTRATEGYTYPEENUM_BIDDINGSTRATEGYTYPE +_BIDDINGSTRATEGY.fields_by_name['enhanced_cpc'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._ENHANCEDCPC +_BIDDINGSTRATEGY.fields_by_name['target_cpa'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETCPA +_BIDDINGSTRATEGY.fields_by_name['target_impression_share'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETIMPRESSIONSHARE +_BIDDINGSTRATEGY.fields_by_name['target_roas'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETROAS +_BIDDINGSTRATEGY.fields_by_name['target_spend'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETSPEND +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['enhanced_cpc']) +_BIDDINGSTRATEGY.fields_by_name['enhanced_cpc'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_cpa']) +_BIDDINGSTRATEGY.fields_by_name['target_cpa'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_impression_share']) +_BIDDINGSTRATEGY.fields_by_name['target_impression_share'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_roas']) +_BIDDINGSTRATEGY.fields_by_name['target_roas'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_spend']) +_BIDDINGSTRATEGY.fields_by_name['target_spend'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['_id'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['id']) +_BIDDINGSTRATEGY.fields_by_name['id'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['_id'] +_BIDDINGSTRATEGY.oneofs_by_name['_name'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['name']) +_BIDDINGSTRATEGY.fields_by_name['name'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['_name'] +_BIDDINGSTRATEGY.oneofs_by_name['_effective_currency_code'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['effective_currency_code']) +_BIDDINGSTRATEGY.fields_by_name['effective_currency_code'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['_effective_currency_code'] +_BIDDINGSTRATEGY.oneofs_by_name['_campaign_count'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['campaign_count']) +_BIDDINGSTRATEGY.fields_by_name['campaign_count'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['_campaign_count'] +_BIDDINGSTRATEGY.oneofs_by_name['_non_removed_campaign_count'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['non_removed_campaign_count']) +_BIDDINGSTRATEGY.fields_by_name['non_removed_campaign_count'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['_non_removed_campaign_count'] +DESCRIPTOR.message_types_by_name['BiddingStrategy'] = _BIDDINGSTRATEGY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BiddingStrategy = _reflection.GeneratedProtocolMessageType('BiddingStrategy', (_message.Message,), { + 'DESCRIPTOR' : _BIDDINGSTRATEGY, + '__module__' : 'google.ads.googleads_v5.proto.resources.bidding_strategy_pb2' + , + '__doc__': """A bidding strategy. + + Attributes: + resource_name: + Immutable. The resource name of the bidding strategy. Bidding + strategy resource names have the form: ``customers/{customer_ + id}/biddingStrategies/{bidding_strategy_id}`` + id: + Output only. The ID of the bidding strategy. + name: + The name of the bidding strategy. All bidding strategies + within an account must be named distinctly. The length of + this string should be between 1 and 255, inclusive, in UTF-8 + bytes, (trimmed). + status: + Output only. The status of the bidding strategy. This field + is read-only. + type: + Output only. The type of the bidding strategy. Create a + bidding strategy by setting the bidding scheme. This field is + read-only. + effective_currency_code: + Output only. The currency used by the bidding strategy (ISO + 4217 three-letter code). For bidding strategies in manager + customers, this is the currency set by the advertiser when + creating the strategy. For serving customers, this is the + customer's currency\_code. Bidding strategy metrics are + reported in this currency. This field is read-only. + campaign_count: + Output only. The number of campaigns attached to this bidding + strategy. This field is read-only. + non_removed_campaign_count: + Output only. The number of non-removed campaigns attached to + this bidding strategy. This field is read-only. + scheme: + The bidding scheme. Only one can be set. + enhanced_cpc: + A bidding strategy that raises bids for clicks that seem more + likely to lead to a conversion and lowers them for clicks + where they seem less likely. + target_cpa: + A bidding strategy that sets bids to help get as many + conversions as possible at the target cost-per-acquisition + (CPA) you set. + target_impression_share: + A bidding strategy that automatically optimizes towards a + desired percentage of impressions. + target_roas: + A bidding strategy that helps you maximize revenue while + averaging a specific target Return On Ad Spend (ROAS). + target_spend: + A bid strategy that sets your bids to help get as many clicks + as possible within your budget. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.BiddingStrategy) + }) +_sym_db.RegisterMessage(BiddingStrategy) + + +DESCRIPTOR._options = None +_BIDDINGSTRATEGY.fields_by_name['resource_name']._options = None +_BIDDINGSTRATEGY.fields_by_name['id']._options = None +_BIDDINGSTRATEGY.fields_by_name['status']._options = None +_BIDDINGSTRATEGY.fields_by_name['type']._options = None +_BIDDINGSTRATEGY.fields_by_name['effective_currency_code']._options = None +_BIDDINGSTRATEGY.fields_by_name['campaign_count']._options = None +_BIDDINGSTRATEGY.fields_by_name['non_removed_campaign_count']._options = None +_BIDDINGSTRATEGY._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/bidding_strategy_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/bidding_strategy_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/bidding_strategy_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/billing_setup_pb2.py b/google/ads/google_ads/v5/proto/resources/billing_setup_pb2.py new file mode 100644 index 000000000..9f6b8deb8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/billing_setup_pb2.py @@ -0,0 +1,328 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/billing_setup.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import billing_setup_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_billing__setup__status__pb2 +from google.ads.google_ads.v5.proto.enums import time_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_time__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/billing_setup.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021BillingSetupProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/billing_setup.proto\x12!google.ads.googleads.v5.resources\x1a>google/ads/googleads_v5/proto/enums/billing_setup_status.proto\x1a\x33google/ads/googleads_v5/proto/enums/time_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xb8\t\n\x0c\x42illingSetup\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x05\xfa\x41\'\n%googleads.googleapis.com/BillingSetup\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12]\n\x06status\x18\x03 \x01(\x0e\x32H.google.ads.googleads.v5.enums.BillingSetupStatusEnum.BillingSetupStatusB\x03\xe0\x41\x03\x12h\n\x10payments_account\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValueB0\xe0\x41\x05\xfa\x41*\n(googleads.googleapis.com/PaymentsAccount\x12g\n\x15payments_account_info\x18\x0c \x01(\x0b\x32\x43.google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfoB\x03\xe0\x41\x05\x12<\n\x0fstart_date_time\x18\t \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x05H\x00\x12T\n\x0fstart_time_type\x18\n \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.TimeTypeEnum.TimeTypeB\x03\xe0\x41\x05H\x00\x12:\n\rend_date_time\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03H\x01\x12R\n\rend_time_type\x18\x0e \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.TimeTypeEnum.TimeTypeB\x03\xe0\x41\x03H\x01\x1a\xe3\x02\n\x13PaymentsAccountInfo\x12>\n\x13payments_account_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12@\n\x15payments_account_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x05\x12>\n\x13payments_profile_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x05\x12@\n\x15payments_profile_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12H\n\x1dsecondary_payments_profile_id\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:^\xea\x41[\n%googleads.googleapis.com/BillingSetup\x12\x32\x63ustomers/{customer}/billingSetups/{billing_setup}B\x0c\n\nstart_timeB\n\n\x08\x65nd_timeB\xfe\x01\n%com.google.ads.googleads.v5.resourcesB\x11\x42illingSetupProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_billing__setup__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_time__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_BILLINGSETUP_PAYMENTSACCOUNTINFO = _descriptor.Descriptor( + name='PaymentsAccountInfo', + full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='payments_account_id', full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo.payments_account_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account_name', full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo.payments_account_name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_profile_id', full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo.payments_profile_id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_profile_name', full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo.payments_profile_name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='secondary_payments_profile_id', full_name='google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo.secondary_payments_profile_id', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1069, + serialized_end=1424, +) + +_BILLINGSETUP = _descriptor.Descriptor( + name='BillingSetup', + full_name='google.ads.googleads.v5.resources.BillingSetup', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.BillingSetup.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\'\n%googleads.googleapis.com/BillingSetup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.BillingSetup.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.BillingSetup.status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account', full_name='google.ads.googleads.v5.resources.BillingSetup.payments_account', index=3, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A*\n(googleads.googleapis.com/PaymentsAccount', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account_info', full_name='google.ads.googleads.v5.resources.BillingSetup.payments_account_info', index=4, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date_time', full_name='google.ads.googleads.v5.resources.BillingSetup.start_date_time', index=5, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_time_type', full_name='google.ads.googleads.v5.resources.BillingSetup.start_time_type', index=6, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date_time', full_name='google.ads.googleads.v5.resources.BillingSetup.end_date_time', index=7, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_time_type', full_name='google.ads.googleads.v5.resources.BillingSetup.end_time_type', index=8, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_BILLINGSETUP_PAYMENTSACCOUNTINFO, ], + enum_types=[ + ], + serialized_options=b'\352A[\n%googleads.googleapis.com/BillingSetup\0222customers/{customer}/billingSetups/{billing_setup}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='start_time', full_name='google.ads.googleads.v5.resources.BillingSetup.start_time', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='end_time', full_name='google.ads.googleads.v5.resources.BillingSetup.end_time', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=338, + serialized_end=1546, +) + +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_account_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_account_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_profile_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_profile_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['secondary_payments_profile_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP_PAYMENTSACCOUNTINFO.containing_type = _BILLINGSETUP +_BILLINGSETUP.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_BILLINGSETUP.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_billing__setup__status__pb2._BILLINGSETUPSTATUSENUM_BILLINGSETUPSTATUS +_BILLINGSETUP.fields_by_name['payments_account'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP.fields_by_name['payments_account_info'].message_type = _BILLINGSETUP_PAYMENTSACCOUNTINFO +_BILLINGSETUP.fields_by_name['start_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP.fields_by_name['start_time_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_time__type__pb2._TIMETYPEENUM_TIMETYPE +_BILLINGSETUP.fields_by_name['end_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BILLINGSETUP.fields_by_name['end_time_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_time__type__pb2._TIMETYPEENUM_TIMETYPE +_BILLINGSETUP.oneofs_by_name['start_time'].fields.append( + _BILLINGSETUP.fields_by_name['start_date_time']) +_BILLINGSETUP.fields_by_name['start_date_time'].containing_oneof = _BILLINGSETUP.oneofs_by_name['start_time'] +_BILLINGSETUP.oneofs_by_name['start_time'].fields.append( + _BILLINGSETUP.fields_by_name['start_time_type']) +_BILLINGSETUP.fields_by_name['start_time_type'].containing_oneof = _BILLINGSETUP.oneofs_by_name['start_time'] +_BILLINGSETUP.oneofs_by_name['end_time'].fields.append( + _BILLINGSETUP.fields_by_name['end_date_time']) +_BILLINGSETUP.fields_by_name['end_date_time'].containing_oneof = _BILLINGSETUP.oneofs_by_name['end_time'] +_BILLINGSETUP.oneofs_by_name['end_time'].fields.append( + _BILLINGSETUP.fields_by_name['end_time_type']) +_BILLINGSETUP.fields_by_name['end_time_type'].containing_oneof = _BILLINGSETUP.oneofs_by_name['end_time'] +DESCRIPTOR.message_types_by_name['BillingSetup'] = _BILLINGSETUP +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BillingSetup = _reflection.GeneratedProtocolMessageType('BillingSetup', (_message.Message,), { + + 'PaymentsAccountInfo' : _reflection.GeneratedProtocolMessageType('PaymentsAccountInfo', (_message.Message,), { + 'DESCRIPTOR' : _BILLINGSETUP_PAYMENTSACCOUNTINFO, + '__module__' : 'google.ads.googleads_v5.proto.resources.billing_setup_pb2' + , + '__doc__': """Container of payments account information for this billing. + + Attributes: + payments_account_id: + Output only. A 16 digit id used to identify the payments + account associated with the billing setup. This must be + passed as a string with dashes, e.g. "1234-5678-9012-3456". + payments_account_name: + Immutable. The name of the payments account associated with + the billing setup. This enables the user to specify a + meaningful name for a payments account to aid in reconciling + monthly invoices. This name will be printed in the monthly + invoices. + payments_profile_id: + Immutable. A 12 digit id used to identify the payments profile + associated with the billing setup. This must be passed in as + a string with dashes, e.g. "1234-5678-9012". + payments_profile_name: + Output only. The name of the payments profile associated with + the billing setup. + secondary_payments_profile_id: + Output only. A secondary payments profile id present in + uncommon situations, e.g. when a sequential liability + agreement has been arranged. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.BillingSetup.PaymentsAccountInfo) + }) + , + 'DESCRIPTOR' : _BILLINGSETUP, + '__module__' : 'google.ads.googleads_v5.proto.resources.billing_setup_pb2' + , + '__doc__': """A billing setup, which associates a payments account and an + advertiser. A billing setup is specific to one advertiser. + + Attributes: + resource_name: + Immutable. The resource name of the billing setup. + BillingSetup resource names have the form: + ``customers/{customer_id}/billingSetups/{billing_setup_id}`` + id: + Output only. The ID of the billing setup. + status: + Output only. The status of the billing setup. + payments_account: + Immutable. The resource name of the payments account + associated with this billing setup. Payments resource names + have the form: ``customers/{customer_id}/paymentsAccounts/{pa + yments_account_id}`` When setting up billing, this is used to + signup with an existing payments account (and then + payments\_account\_info should not be set). When getting a + billing setup, this and payments\_account\_info will be + populated. + payments_account_info: + Immutable. The payments account information associated with + this billing setup. When setting up billing, this is used to + signup with a new payments account (and then payments\_account + should not be set). When getting a billing setup, this and + payments\_account will be populated. + start_time: + When creating a new billing setup, this is when the setup + should take effect. NOW is the only acceptable start time if + the customer doesn't have any approved setups. When fetching + an existing billing setup, this is the requested start time. + However, if the setup was approved (see status) after the + requested start time, then this is the approval time. + start_date_time: + Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd + HH:mm:ss format. Only a future time is allowed. + start_time_type: + Immutable. The start time as a type. Only NOW is allowed. + end_time: + When the billing setup ends / ended. This is either FOREVER or + the start time of the next scheduled billing setup. + end_date_time: + Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd + HH:mm:ss format. + end_time_type: + Output only. The end time as a type. The only possible value + is FOREVER. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.BillingSetup) + }) +_sym_db.RegisterMessage(BillingSetup) +_sym_db.RegisterMessage(BillingSetup.PaymentsAccountInfo) + + +DESCRIPTOR._options = None +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_account_id']._options = None +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_account_name']._options = None +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_profile_id']._options = None +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['payments_profile_name']._options = None +_BILLINGSETUP_PAYMENTSACCOUNTINFO.fields_by_name['secondary_payments_profile_id']._options = None +_BILLINGSETUP.fields_by_name['resource_name']._options = None +_BILLINGSETUP.fields_by_name['id']._options = None +_BILLINGSETUP.fields_by_name['status']._options = None +_BILLINGSETUP.fields_by_name['payments_account']._options = None +_BILLINGSETUP.fields_by_name['payments_account_info']._options = None +_BILLINGSETUP.fields_by_name['start_date_time']._options = None +_BILLINGSETUP.fields_by_name['start_time_type']._options = None +_BILLINGSETUP.fields_by_name['end_date_time']._options = None +_BILLINGSETUP.fields_by_name['end_time_type']._options = None +_BILLINGSETUP._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/billing_setup_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/billing_setup_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/billing_setup_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_asset_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_asset_pb2.py new file mode 100644 index 000000000..b90cfa225 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_asset_pb2.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_asset.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import asset_field_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__field__type__pb2 +from google.ads.google_ads.v5.proto.enums import asset_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_asset__link__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_asset.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\022CampaignAssetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n.google.ads.googleads.v5.enums.CriterionTypeEnum.CriterionTypeB\x03\xe0\x41\x03\x12\x62\n\x06status\x18# \x01(\x0e\x32R.google.ads.googleads.v5.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus\x12\x43\n\x07keyword\x18\x08 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x05H\x00\x12G\n\tplacement\x18\t \x01(\x0b\x32-.google.ads.googleads.v5.common.PlacementInfoB\x03\xe0\x41\x05H\x00\x12Y\n\x13mobile_app_category\x18\n \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileAppCategoryInfoB\x03\xe0\x41\x05H\x00\x12X\n\x12mobile_application\x18\x0b \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileApplicationInfoB\x03\xe0\x41\x05H\x00\x12\x45\n\x08location\x18\x0c \x01(\x0b\x32,.google.ads.googleads.v5.common.LocationInfoB\x03\xe0\x41\x05H\x00\x12\x41\n\x06\x64\x65vice\x18\r \x01(\x0b\x32*.google.ads.googleads.v5.common.DeviceInfoB\x03\xe0\x41\x05H\x00\x12J\n\x0b\x61\x64_schedule\x18\x0f \x01(\x0b\x32..google.ads.googleads.v5.common.AdScheduleInfoB\x03\xe0\x41\x05H\x00\x12\x46\n\tage_range\x18\x10 \x01(\x0b\x32,.google.ads.googleads.v5.common.AgeRangeInfoB\x03\xe0\x41\x05H\x00\x12\x41\n\x06gender\x18\x11 \x01(\x0b\x32*.google.ads.googleads.v5.common.GenderInfoB\x03\xe0\x41\x05H\x00\x12L\n\x0cincome_range\x18\x12 \x01(\x0b\x32/.google.ads.googleads.v5.common.IncomeRangeInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fparental_status\x18\x13 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.ParentalStatusInfoB\x03\xe0\x41\x05H\x00\x12\x46\n\tuser_list\x18\x16 \x01(\x0b\x32,.google.ads.googleads.v5.common.UserListInfoB\x03\xe0\x41\x05H\x00\x12N\n\ryoutube_video\x18\x14 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.YouTubeVideoInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fyoutube_channel\x18\x15 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.YouTubeChannelInfoB\x03\xe0\x41\x05H\x00\x12G\n\tproximity\x18\x17 \x01(\x0b\x32-.google.ads.googleads.v5.common.ProximityInfoB\x03\xe0\x41\x05H\x00\x12?\n\x05topic\x18\x18 \x01(\x0b\x32).google.ads.googleads.v5.common.TopicInfoB\x03\xe0\x41\x05H\x00\x12N\n\rlisting_scope\x18\x19 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.ListingScopeInfoB\x03\xe0\x41\x05H\x00\x12\x45\n\x08language\x18\x1a \x01(\x0b\x32,.google.ads.googleads.v5.common.LanguageInfoB\x03\xe0\x41\x05H\x00\x12\x44\n\x08ip_block\x18\x1b \x01(\x0b\x32+.google.ads.googleads.v5.common.IpBlockInfoB\x03\xe0\x41\x05H\x00\x12N\n\rcontent_label\x18\x1c \x01(\x0b\x32\x30.google.ads.googleads.v5.common.ContentLabelInfoB\x03\xe0\x41\x05H\x00\x12\x43\n\x07\x63\x61rrier\x18\x1d \x01(\x0b\x32+.google.ads.googleads.v5.common.CarrierInfoB\x03\xe0\x41\x05H\x00\x12N\n\ruser_interest\x18\x1e \x01(\x0b\x32\x30.google.ads.googleads.v5.common.UserInterestInfoB\x03\xe0\x41\x05H\x00\x12\x43\n\x07webpage\x18\x1f \x01(\x0b\x32+.google.ads.googleads.v5.common.WebpageInfoB\x03\xe0\x41\x05H\x00\x12\x63\n\x18operating_system_version\x18 \x01(\x0b\x32:.google.ads.googleads.v5.common.OperatingSystemVersionInfoB\x03\xe0\x41\x05H\x00\x12N\n\rmobile_device\x18! \x01(\x0b\x32\x30.google.ads.googleads.v5.common.MobileDeviceInfoB\x03\xe0\x41\x05H\x00\x12P\n\x0elocation_group\x18\" \x01(\x0b\x32\x31.google.ads.googleads.v5.common.LocationGroupInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0f\x63ustom_affinity\x18$ \x01(\x0b\x32\x32.google.ads.googleads.v5.common.CustomAffinityInfoB\x03\xe0\x41\x05H\x00:k\xea\x41h\n*googleads.googleapis.com/CampaignCriterion\x12:customers/{customer}/campaignCriteria/{campaign_criterion}B\x0b\n\tcriterionB\x0b\n\t_campaignB\x0f\n\r_criterion_idB\x0f\n\r_bid_modifierB\x0b\n\t_negativeB\x83\x02\n%com.google.ads.googleads.v5.resourcesB\x16\x43\x61mpaignCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__criterion__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNCRITERION = _descriptor.Descriptor( + name='CampaignCriterion', + full_name='google.ads.googleads.v5.resources.CampaignCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CampaignCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A,\n*googleads.googleapis.com/CampaignCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.CampaignCriterion.campaign', index=1, + number=37, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.CampaignCriterion.criterion_id', index=2, + number=38, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v5.resources.CampaignCriterion.bid_modifier', index=3, + number=39, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='negative', full_name='google.ads.googleads.v5.resources.CampaignCriterion.negative', index=4, + number=40, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.CampaignCriterion.type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.CampaignCriterion.status', index=6, + number=35, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.CampaignCriterion.keyword', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.CampaignCriterion.placement', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_category', full_name='google.ads.googleads.v5.resources.CampaignCriterion.mobile_app_category', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_application', full_name='google.ads.googleads.v5.resources.CampaignCriterion.mobile_application', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location', full_name='google.ads.googleads.v5.resources.CampaignCriterion.location', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.CampaignCriterion.device', index=12, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_schedule', full_name='google.ads.googleads.v5.resources.CampaignCriterion.ad_schedule', index=13, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='age_range', full_name='google.ads.googleads.v5.resources.CampaignCriterion.age_range', index=14, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gender', full_name='google.ads.googleads.v5.resources.CampaignCriterion.gender', index=15, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='income_range', full_name='google.ads.googleads.v5.resources.CampaignCriterion.income_range', index=16, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parental_status', full_name='google.ads.googleads.v5.resources.CampaignCriterion.parental_status', index=17, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.resources.CampaignCriterion.user_list', index=18, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video', full_name='google.ads.googleads.v5.resources.CampaignCriterion.youtube_video', index=19, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_channel', full_name='google.ads.googleads.v5.resources.CampaignCriterion.youtube_channel', index=20, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='proximity', full_name='google.ads.googleads.v5.resources.CampaignCriterion.proximity', index=21, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='topic', full_name='google.ads.googleads.v5.resources.CampaignCriterion.topic', index=22, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='listing_scope', full_name='google.ads.googleads.v5.resources.CampaignCriterion.listing_scope', index=23, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language', full_name='google.ads.googleads.v5.resources.CampaignCriterion.language', index=24, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ip_block', full_name='google.ads.googleads.v5.resources.CampaignCriterion.ip_block', index=25, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='content_label', full_name='google.ads.googleads.v5.resources.CampaignCriterion.content_label', index=26, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='carrier', full_name='google.ads.googleads.v5.resources.CampaignCriterion.carrier', index=27, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_interest', full_name='google.ads.googleads.v5.resources.CampaignCriterion.user_interest', index=28, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='webpage', full_name='google.ads.googleads.v5.resources.CampaignCriterion.webpage', index=29, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operating_system_version', full_name='google.ads.googleads.v5.resources.CampaignCriterion.operating_system_version', index=30, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_device', full_name='google.ads.googleads.v5.resources.CampaignCriterion.mobile_device', index=31, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_group', full_name='google.ads.googleads.v5.resources.CampaignCriterion.location_group', index=32, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_affinity', full_name='google.ads.googleads.v5.resources.CampaignCriterion.custom_affinity', index=33, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ah\n*googleads.googleapis.com/CampaignCriterion\022:customers/{customer}/campaignCriteria/{campaign_criterion}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v5.resources.CampaignCriterion.criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.resources.CampaignCriterion._campaign', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.CampaignCriterion._criterion_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_bid_modifier', full_name='google.ads.googleads.v5.resources.CampaignCriterion._bid_modifier', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_negative', full_name='google.ads.googleads.v5.resources.CampaignCriterion._negative', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=374, + serialized_end=3064, +) + +_CAMPAIGNCRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_CAMPAIGNCRITERION.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__criterion__status__pb2._CAMPAIGNCRITERIONSTATUSENUM_CAMPAIGNCRITERIONSTATUS +_CAMPAIGNCRITERION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_CAMPAIGNCRITERION.fields_by_name['placement'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PLACEMENTINFO +_CAMPAIGNCRITERION.fields_by_name['mobile_app_category'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPCATEGORYINFO +_CAMPAIGNCRITERION.fields_by_name['mobile_application'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPLICATIONINFO +_CAMPAIGNCRITERION.fields_by_name['location'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._LOCATIONINFO +_CAMPAIGNCRITERION.fields_by_name['device'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO +_CAMPAIGNCRITERION.fields_by_name['ad_schedule'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._ADSCHEDULEINFO +_CAMPAIGNCRITERION.fields_by_name['age_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._AGERANGEINFO +_CAMPAIGNCRITERION.fields_by_name['gender'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO +_CAMPAIGNCRITERION.fields_by_name['income_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._INCOMERANGEINFO +_CAMPAIGNCRITERION.fields_by_name['parental_status'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PARENTALSTATUSINFO +_CAMPAIGNCRITERION.fields_by_name['user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._USERLISTINFO +_CAMPAIGNCRITERION.fields_by_name['youtube_video'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBEVIDEOINFO +_CAMPAIGNCRITERION.fields_by_name['youtube_channel'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBECHANNELINFO +_CAMPAIGNCRITERION.fields_by_name['proximity'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PROXIMITYINFO +_CAMPAIGNCRITERION.fields_by_name['topic'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._TOPICINFO +_CAMPAIGNCRITERION.fields_by_name['listing_scope'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._LISTINGSCOPEINFO +_CAMPAIGNCRITERION.fields_by_name['language'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._LANGUAGEINFO +_CAMPAIGNCRITERION.fields_by_name['ip_block'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._IPBLOCKINFO +_CAMPAIGNCRITERION.fields_by_name['content_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CONTENTLABELINFO +_CAMPAIGNCRITERION.fields_by_name['carrier'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CARRIERINFO +_CAMPAIGNCRITERION.fields_by_name['user_interest'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._USERINTERESTINFO +_CAMPAIGNCRITERION.fields_by_name['webpage'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._WEBPAGEINFO +_CAMPAIGNCRITERION.fields_by_name['operating_system_version'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._OPERATINGSYSTEMVERSIONINFO +_CAMPAIGNCRITERION.fields_by_name['mobile_device'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEDEVICEINFO +_CAMPAIGNCRITERION.fields_by_name['location_group'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._LOCATIONGROUPINFO +_CAMPAIGNCRITERION.fields_by_name['custom_affinity'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CUSTOMAFFINITYINFO +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['keyword']) +_CAMPAIGNCRITERION.fields_by_name['keyword'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['placement']) +_CAMPAIGNCRITERION.fields_by_name['placement'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['mobile_app_category']) +_CAMPAIGNCRITERION.fields_by_name['mobile_app_category'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['mobile_application']) +_CAMPAIGNCRITERION.fields_by_name['mobile_application'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['location']) +_CAMPAIGNCRITERION.fields_by_name['location'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['device']) +_CAMPAIGNCRITERION.fields_by_name['device'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['ad_schedule']) +_CAMPAIGNCRITERION.fields_by_name['ad_schedule'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['age_range']) +_CAMPAIGNCRITERION.fields_by_name['age_range'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['gender']) +_CAMPAIGNCRITERION.fields_by_name['gender'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['income_range']) +_CAMPAIGNCRITERION.fields_by_name['income_range'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['parental_status']) +_CAMPAIGNCRITERION.fields_by_name['parental_status'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['user_list']) +_CAMPAIGNCRITERION.fields_by_name['user_list'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['youtube_video']) +_CAMPAIGNCRITERION.fields_by_name['youtube_video'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['youtube_channel']) +_CAMPAIGNCRITERION.fields_by_name['youtube_channel'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['proximity']) +_CAMPAIGNCRITERION.fields_by_name['proximity'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['topic']) +_CAMPAIGNCRITERION.fields_by_name['topic'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['listing_scope']) +_CAMPAIGNCRITERION.fields_by_name['listing_scope'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['language']) +_CAMPAIGNCRITERION.fields_by_name['language'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['ip_block']) +_CAMPAIGNCRITERION.fields_by_name['ip_block'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['content_label']) +_CAMPAIGNCRITERION.fields_by_name['content_label'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['carrier']) +_CAMPAIGNCRITERION.fields_by_name['carrier'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['user_interest']) +_CAMPAIGNCRITERION.fields_by_name['user_interest'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['webpage']) +_CAMPAIGNCRITERION.fields_by_name['webpage'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['operating_system_version']) +_CAMPAIGNCRITERION.fields_by_name['operating_system_version'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['mobile_device']) +_CAMPAIGNCRITERION.fields_by_name['mobile_device'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['location_group']) +_CAMPAIGNCRITERION.fields_by_name['location_group'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['custom_affinity']) +_CAMPAIGNCRITERION.fields_by_name['custom_affinity'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['_campaign'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['campaign']) +_CAMPAIGNCRITERION.fields_by_name['campaign'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['_campaign'] +_CAMPAIGNCRITERION.oneofs_by_name['_criterion_id'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['criterion_id']) +_CAMPAIGNCRITERION.fields_by_name['criterion_id'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['_criterion_id'] +_CAMPAIGNCRITERION.oneofs_by_name['_bid_modifier'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['bid_modifier']) +_CAMPAIGNCRITERION.fields_by_name['bid_modifier'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['_bid_modifier'] +_CAMPAIGNCRITERION.oneofs_by_name['_negative'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['negative']) +_CAMPAIGNCRITERION.fields_by_name['negative'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['_negative'] +DESCRIPTOR.message_types_by_name['CampaignCriterion'] = _CAMPAIGNCRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterion = _reflection.GeneratedProtocolMessageType('CampaignCriterion', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNCRITERION, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_criterion_pb2' + , + '__doc__': """A campaign criterion. + + Attributes: + resource_name: + Immutable. The resource name of the campaign criterion. + Campaign criterion resource names have the form: ``customers/ + {customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`` + campaign: + Immutable. The campaign to which the criterion belongs. + criterion_id: + Output only. The ID of the criterion. This field is ignored + during mutate. + bid_modifier: + The modifier for the bids when the criterion matches. The + modifier must be in the range: 0.1 - 10.0. Most targetable + criteria types support modifiers. Use 0 to opt out of a Device + type. + negative: + Immutable. Whether to target (``false``) or exclude (``true``) + the criterion. + type: + Output only. The type of the criterion. + status: + The status of the criterion. + criterion: + The campaign criterion. Exactly one must be set. + keyword: + Immutable. Keyword. + placement: + Immutable. Placement. + mobile_app_category: + Immutable. Mobile app category. + mobile_application: + Immutable. Mobile application. + location: + Immutable. Location. + device: + Immutable. Device. + ad_schedule: + Immutable. Ad Schedule. + age_range: + Immutable. Age range. + gender: + Immutable. Gender. + income_range: + Immutable. Income range. + parental_status: + Immutable. Parental status. + user_list: + Immutable. User List. + youtube_video: + Immutable. YouTube Video. + youtube_channel: + Immutable. YouTube Channel. + proximity: + Immutable. Proximity. + topic: + Immutable. Topic. + listing_scope: + Immutable. Listing scope. + language: + Immutable. Language. + ip_block: + Immutable. IpBlock. + content_label: + Immutable. ContentLabel. + carrier: + Immutable. Carrier. + user_interest: + Immutable. User Interest. + webpage: + Immutable. Webpage. + operating_system_version: + Immutable. Operating system version. + mobile_device: + Immutable. Mobile Device. + location_group: + Immutable. Location Group + custom_affinity: + Immutable. Custom Affinity. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CampaignCriterion) + }) +_sym_db.RegisterMessage(CampaignCriterion) + + +DESCRIPTOR._options = None +_CAMPAIGNCRITERION.fields_by_name['resource_name']._options = None +_CAMPAIGNCRITERION.fields_by_name['campaign']._options = None +_CAMPAIGNCRITERION.fields_by_name['criterion_id']._options = None +_CAMPAIGNCRITERION.fields_by_name['negative']._options = None +_CAMPAIGNCRITERION.fields_by_name['type']._options = None +_CAMPAIGNCRITERION.fields_by_name['keyword']._options = None +_CAMPAIGNCRITERION.fields_by_name['placement']._options = None +_CAMPAIGNCRITERION.fields_by_name['mobile_app_category']._options = None +_CAMPAIGNCRITERION.fields_by_name['mobile_application']._options = None +_CAMPAIGNCRITERION.fields_by_name['location']._options = None +_CAMPAIGNCRITERION.fields_by_name['device']._options = None +_CAMPAIGNCRITERION.fields_by_name['ad_schedule']._options = None +_CAMPAIGNCRITERION.fields_by_name['age_range']._options = None +_CAMPAIGNCRITERION.fields_by_name['gender']._options = None +_CAMPAIGNCRITERION.fields_by_name['income_range']._options = None +_CAMPAIGNCRITERION.fields_by_name['parental_status']._options = None +_CAMPAIGNCRITERION.fields_by_name['user_list']._options = None +_CAMPAIGNCRITERION.fields_by_name['youtube_video']._options = None +_CAMPAIGNCRITERION.fields_by_name['youtube_channel']._options = None +_CAMPAIGNCRITERION.fields_by_name['proximity']._options = None +_CAMPAIGNCRITERION.fields_by_name['topic']._options = None +_CAMPAIGNCRITERION.fields_by_name['listing_scope']._options = None +_CAMPAIGNCRITERION.fields_by_name['language']._options = None +_CAMPAIGNCRITERION.fields_by_name['ip_block']._options = None +_CAMPAIGNCRITERION.fields_by_name['content_label']._options = None +_CAMPAIGNCRITERION.fields_by_name['carrier']._options = None +_CAMPAIGNCRITERION.fields_by_name['user_interest']._options = None +_CAMPAIGNCRITERION.fields_by_name['webpage']._options = None +_CAMPAIGNCRITERION.fields_by_name['operating_system_version']._options = None +_CAMPAIGNCRITERION.fields_by_name['mobile_device']._options = None +_CAMPAIGNCRITERION.fields_by_name['location_group']._options = None +_CAMPAIGNCRITERION.fields_by_name['custom_affinity']._options = None +_CAMPAIGNCRITERION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_criterion_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_criterion_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_criterion_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2.py new file mode 100644 index 000000000..cb6943f38 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2.py @@ -0,0 +1,214 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_criterion_simulation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_modification_method_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2 +from google.ads.google_ads.v5.proto.enums import simulation_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_criterion_simulation.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB CampaignCriterionSimulationProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/resources/campaign_criterion_simulation.proto\x12!google.ads.googleads.v5.resources\x1a\x35google/ads/googleads_v5/proto/common/simulation.proto\x1aHgoogle/ads/googleads_v5/proto/enums/simulation_modification_method.proto\x1a\x39google/ads/googleads_v5/proto/enums/simulation_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x83\x06\n\x1b\x43\x61mpaignCriterionSimulation\x12S\n\rresource_name\x18\x01 \x01(\tB<\xe0\x41\x03\xfa\x41\x36\n4googleads.googleapis.com/CampaignCriterionSimulation\x12\x1d\n\x0b\x63\x61mpaign_id\x18\t \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1e\n\x0c\x63riterion_id\x18\n \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12S\n\x04type\x18\x04 \x01(\x0e\x32@.google.ads.googleads.v5.enums.SimulationTypeEnum.SimulationTypeB\x03\xe0\x41\x03\x12~\n\x13modification_method\x18\x05 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.SimulationModificationMethodEnum.SimulationModificationMethodB\x03\xe0\x41\x03\x12\x1c\n\nstart_date\x18\x0b \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12\x1a\n\x08\x65nd_date\x18\x0c \x01(\tB\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\x66\n\x17\x62id_modifier_point_list\x18\x08 \x01(\x0b\x32>.google.ads.googleads.v5.common.BidModifierSimulationPointListB\x03\xe0\x41\x03H\x00:\x8d\x01\xea\x41\x89\x01\n4googleads.googleapis.com/CampaignCriterionSimulation\x12Qcustomers/{customer}/campaignCriterionSimulations/{campaign_criterion_simulation}B\x0c\n\npoint_listB\x0e\n\x0c_campaign_idB\x0f\n\r_criterion_idB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\x8d\x02\n%com.google.ads.googleads.v5.resourcesB CampaignCriterionSimulationProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNCRITERIONSIMULATION = _descriptor.Descriptor( + name='CampaignCriterionSimulation', + full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A6\n4googleads.googleapis.com/CampaignCriterionSimulation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_id', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.campaign_id', index=1, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.criterion_id', index=2, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.type', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='modification_method', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.modification_method', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.start_date', index=5, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.end_date', index=6, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bid_modifier_point_list', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.bid_modifier_point_list', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\211\001\n4googleads.googleapis.com/CampaignCriterionSimulation\022Qcustomers/{customer}/campaignCriterionSimulations/{campaign_criterion_simulation}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='point_list', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation.point_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign_id', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation._campaign_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation._criterion_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_start_date', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation._start_date', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_date', full_name='google.ads.googleads.v5.resources.CampaignCriterionSimulation._end_date', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=393, + serialized_end=1164, +) + +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__type__pb2._SIMULATIONTYPEENUM_SIMULATIONTYPE +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['modification_method'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_simulation__modification__method__pb2._SIMULATIONMODIFICATIONMETHODENUM_SIMULATIONMODIFICATIONMETHOD +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['bid_modifier_point_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_simulation__pb2._BIDMODIFIERSIMULATIONPOINTLIST +_CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['point_list'].fields.append( + _CAMPAIGNCRITERIONSIMULATION.fields_by_name['bid_modifier_point_list']) +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['bid_modifier_point_list'].containing_oneof = _CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['point_list'] +_CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_campaign_id'].fields.append( + _CAMPAIGNCRITERIONSIMULATION.fields_by_name['campaign_id']) +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['campaign_id'].containing_oneof = _CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_campaign_id'] +_CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_criterion_id'].fields.append( + _CAMPAIGNCRITERIONSIMULATION.fields_by_name['criterion_id']) +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['criterion_id'].containing_oneof = _CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_criterion_id'] +_CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_start_date'].fields.append( + _CAMPAIGNCRITERIONSIMULATION.fields_by_name['start_date']) +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['start_date'].containing_oneof = _CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_start_date'] +_CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_end_date'].fields.append( + _CAMPAIGNCRITERIONSIMULATION.fields_by_name['end_date']) +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['end_date'].containing_oneof = _CAMPAIGNCRITERIONSIMULATION.oneofs_by_name['_end_date'] +DESCRIPTOR.message_types_by_name['CampaignCriterionSimulation'] = _CAMPAIGNCRITERIONSIMULATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterionSimulation = _reflection.GeneratedProtocolMessageType('CampaignCriterionSimulation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNCRITERIONSIMULATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_criterion_simulation_pb2' + , + '__doc__': """A campaign criterion simulation. Supported combinations of advertising + channel type, criterion ids, simulation type and simulation + modification method is detailed below respectively. 1. SEARCH - + 30000,30001,30002 - BID\_MODIFIER - UNIFORM 2. SHOPPING - + 30000,30001,30002 - BID\_MODIFIER - UNIFORM 3. DISPLAY - 30001 - + BID\_MODIFIER - UNIFORM + + Attributes: + resource_name: + Output only. The resource name of the campaign criterion + simulation. Campaign criterion simulation resource names have + the form: ``customers/{customer_id}/campaignCriterionSimulati + ons/{campaign_id}~{criterion_id}~{type}~{modification_method}~ + {start_date}~{end_date}`` + campaign_id: + Output only. Campaign ID of the simulation. + criterion_id: + Output only. Criterion ID of the simulation. + type: + Output only. The field that the simulation modifies. + modification_method: + Output only. How the simulation modifies the field. + start_date: + Output only. First day on which the simulation is based, in + YYYY-MM-DD format. + end_date: + Output only. Last day on which the simulation is based, in + YYYY-MM-DD format. + point_list: + List of simulation points. + bid_modifier_point_list: + Output only. Simulation points if the simulation type is + BID\_MODIFIER. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CampaignCriterionSimulation) + }) +_sym_db.RegisterMessage(CampaignCriterionSimulation) + + +DESCRIPTOR._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['resource_name']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['campaign_id']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['criterion_id']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['type']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['modification_method']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['start_date']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['end_date']._options = None +_CAMPAIGNCRITERIONSIMULATION.fields_by_name['bid_modifier_point_list']._options = None +_CAMPAIGNCRITERIONSIMULATION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_criterion_simulation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_draft_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_draft_pb2.py new file mode 100644 index 000000000..c4a732cdc --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_draft_pb2.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_draft.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import campaign_draft_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__draft__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_draft.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\022CampaignDraftProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ncustomers/{customer}/campaignExperiments/{campaign_experiment}B\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17\x43\x61mpaignExperimentProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__traffic__split__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNEXPERIMENT = _descriptor.Descriptor( + name='CampaignExperiment', + full_name='google.ads.googleads.v5.resources.CampaignExperiment', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CampaignExperiment.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A-\n+googleads.googleapis.com/CampaignExperiment', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.CampaignExperiment.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft', full_name='google.ads.googleads.v5.resources.CampaignExperiment.campaign_draft', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A(\n&googleads.googleapis.com/CampaignDraft', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.CampaignExperiment.name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.resources.CampaignExperiment.description', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='traffic_split_percent', full_name='google.ads.googleads.v5.resources.CampaignExperiment.traffic_split_percent', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='traffic_split_type', full_name='google.ads.googleads.v5.resources.CampaignExperiment.traffic_split_type', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='experiment_campaign', full_name='google.ads.googleads.v5.resources.CampaignExperiment.experiment_campaign', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.CampaignExperiment.status', index=8, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='long_running_operation', full_name='google.ads.googleads.v5.resources.CampaignExperiment.long_running_operation', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.resources.CampaignExperiment.start_date', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.resources.CampaignExperiment.end_date', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Am\n+googleads.googleapis.com/CampaignExperiment\022>customers/{customer}/campaignExperiments/{campaign_experiment}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=379, + serialized_end=1411, +) + +_CAMPAIGNEXPERIMENT.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGNEXPERIMENT.fields_by_name['campaign_draft'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['traffic_split_percent'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGNEXPERIMENT.fields_by_name['traffic_split_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__traffic__split__type__pb2._CAMPAIGNEXPERIMENTTRAFFICSPLITTYPEENUM_CAMPAIGNEXPERIMENTTRAFFICSPLITTYPE +_CAMPAIGNEXPERIMENT.fields_by_name['experiment_campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__status__pb2._CAMPAIGNEXPERIMENTSTATUSENUM_CAMPAIGNEXPERIMENTSTATUS +_CAMPAIGNEXPERIMENT.fields_by_name['long_running_operation'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['start_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXPERIMENT.fields_by_name['end_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['CampaignExperiment'] = _CAMPAIGNEXPERIMENT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExperiment = _reflection.GeneratedProtocolMessageType('CampaignExperiment', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENT, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_experiment_pb2' + , + '__doc__': """An A/B experiment that compares the performance of the base campaign + (the control) and a variation of that campaign (the experiment). + + Attributes: + resource_name: + Immutable. The resource name of the campaign experiment. + Campaign experiment resource names have the form: ``customers + /{customer_id}/campaignExperiments/{campaign_experiment_id}`` + id: + Output only. The ID of the campaign experiment. This field is + read-only. + campaign_draft: + Immutable. The campaign draft with staged changes to the base + campaign. + name: + The name of the campaign experiment. This field is required + when creating new campaign experiments and must not conflict + with the name of another non-removed campaign experiment or + campaign. It must not contain any null (code point 0x0), NL + line feed (code point 0xA) or carriage return (code point 0xD) + characters. + description: + The description of the experiment. + traffic_split_percent: + Immutable. Share of traffic directed to experiment as a + percent (must be between 1 and 99 inclusive. Base campaign + receives the remainder of the traffic (100 - + traffic\_split\_percent). Required for create. + traffic_split_type: + Immutable. Determines the behavior of the traffic split. + experiment_campaign: + Output only. The experiment campaign, as opposed to the base + campaign. + status: + Output only. The status of the campaign experiment. This field + is read-only. + long_running_operation: + Output only. The resource name of the long-running operation + that can be used to poll for completion of experiment create + or promote. The most recent long running operation is + returned. + start_date: + Date when the campaign experiment starts. By default, the + experiment starts now or on the campaign's start date, + whichever is later. If this field is set, then the experiment + starts at the beginning of the specified date in the + customer's time zone. Cannot be changed once the experiment + starts. Format: YYYY-MM-DD Example: 2019-03-14 + end_date: + Date when the campaign experiment ends. By default, the + experiment ends on the campaign's end date. If this field is + set, then the experiment ends at the end of the specified date + in the customer's time zone. Format: YYYY-MM-DD Example: + 2019-04-18 + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CampaignExperiment) + }) +_sym_db.RegisterMessage(CampaignExperiment) + + +DESCRIPTOR._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['resource_name']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['id']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['campaign_draft']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['traffic_split_percent']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['traffic_split_type']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['experiment_campaign']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['status']._options = None +_CAMPAIGNEXPERIMENT.fields_by_name['long_running_operation']._options = None +_CAMPAIGNEXPERIMENT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_experiment_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_experiment_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_experiment_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2.py new file mode 100644 index 000000000..d97bdfa15 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_extension_setting.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import extension_setting_device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2 +from google.ads.google_ads.v5.proto.enums import extension_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_extension_setting.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\035CampaignExtensionSettingProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/resources/campaign_extension_setting.proto\x12!google.ads.googleads.v5.resources\x1a\x42google/ads/googleads_v5/proto/enums/extension_setting_device.proto\x1a\x38google/ads/googleads_v5/proto/enums/extension_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xfa\x04\n\x18\x43\x61mpaignExtensionSetting\x12P\n\rresource_name\x18\x01 \x01(\tB9\xe0\x41\x05\xfa\x41\x33\n1googleads.googleapis.com/CampaignExtensionSetting\x12[\n\x0e\x65xtension_type\x18\x02 \x01(\x0e\x32>.google.ads.googleads.v5.enums.ExtensionTypeEnum.ExtensionTypeB\x03\xe0\x41\x05\x12Y\n\x08\x63\x61mpaign\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/Campaign\x12k\n\x14\x65xtension_feed_items\x18\x04 \x03(\x0b\x32\x1c.google.protobuf.StringValueB/\xfa\x41,\n*googleads.googleapis.com/ExtensionFeedItem\x12`\n\x06\x64\x65vice\x18\x05 \x01(\x0e\x32P.google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice:\x84\x01\xea\x41\x80\x01\n1googleads.googleapis.com/CampaignExtensionSetting\x12Kcustomers/{customer}/campaignExtensionSettings/{campaign_extension_setting}B\x8a\x02\n%com.google.ads.googleads.v5.resourcesB\x1d\x43\x61mpaignExtensionSettingProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNEXTENSIONSETTING = _descriptor.Descriptor( + name='CampaignExtensionSetting', + full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A3\n1googleads.googleapis.com/CampaignExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_type', full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting.extension_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting.campaign', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_items', full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting.extension_feed_items', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A,\n*googleads.googleapis.com/ExtensionFeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.CampaignExtensionSetting.device', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\200\001\n1googleads.googleapis.com/CampaignExtensionSetting\022Kcustomers/{customer}/campaignExtensionSettings/{campaign_extension_setting}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=360, + serialized_end=994, +) + +_CAMPAIGNEXTENSIONSETTING.fields_by_name['extension_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2._EXTENSIONTYPEENUM_EXTENSIONTYPE +_CAMPAIGNEXTENSIONSETTING.fields_by_name['campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXTENSIONSETTING.fields_by_name['extension_feed_items'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNEXTENSIONSETTING.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2._EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE +DESCRIPTOR.message_types_by_name['CampaignExtensionSetting'] = _CAMPAIGNEXTENSIONSETTING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignExtensionSetting = _reflection.GeneratedProtocolMessageType('CampaignExtensionSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXTENSIONSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_extension_setting_pb2' + , + '__doc__': """A campaign extension setting. + + Attributes: + resource_name: + Immutable. The resource name of the campaign extension + setting. CampaignExtensionSetting resource names have the + form: ``customers/{customer_id}/campaignExtensionSettings/{ca + mpaign_id}~{extension_type}`` + extension_type: + Immutable. The extension type of the customer extension + setting. + campaign: + Immutable. The resource name of the campaign. The linked + extension feed items will serve under this campaign. Campaign + resource names have the form: + ``customers/{customer_id}/campaigns/{campaign_id}`` + extension_feed_items: + The resource names of the extension feed items to serve under + the campaign. ExtensionFeedItem resource names have the form: + ``customers/{customer_id}/extensionFeedItems/{feed_item_id}`` + device: + The device for which the extensions will serve. Optional. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CampaignExtensionSetting) + }) +_sym_db.RegisterMessage(CampaignExtensionSetting) + + +DESCRIPTOR._options = None +_CAMPAIGNEXTENSIONSETTING.fields_by_name['resource_name']._options = None +_CAMPAIGNEXTENSIONSETTING.fields_by_name['extension_type']._options = None +_CAMPAIGNEXTENSIONSETTING.fields_by_name['campaign']._options = None +_CAMPAIGNEXTENSIONSETTING.fields_by_name['extension_feed_items']._options = None +_CAMPAIGNEXTENSIONSETTING._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_extension_setting_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_feed_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_feed_pb2.py new file mode 100644 index 000000000..8dd617234 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_feed_pb2.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_feed.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import matching_function_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_matching__function__pb2 +from google.ads.google_ads.v5.proto.enums import feed_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__link__status__pb2 +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_feed.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021CampaignFeedProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/campaign_feed.proto\x12!google.ads.googleads.v5.resources\x1agoogle/ads/googleads_v5/proto/enums/location_source_type.proto\x1a\x42google/ads/googleads_v5/proto/enums/negative_geo_target_type.proto\x1a@google/ads/googleads_v5/proto/enums/optimization_goal_type.proto\x1a\x36google/ads/googleads_v5/proto/enums/payment_mode.proto\x1a\x42google/ads/googleads_v5/proto/enums/positive_geo_target_type.proto\x1aHgoogle/ads/googleads_v5/proto/enums/vanity_pharma_display_url_mode.proto\x1a.google.ads.googleads.v5.resources.Campaign.AppCampaignSetting\x12>\n\x06labels\x18= \x03(\tB.\xe0\x41\x03\xfa\x41(\n&googleads.googleapis.com/CampaignLabel\x12n\n\x0f\x65xperiment_type\x18\x11 \x01(\x0e\x32P.google.ads.googleads.v5.enums.CampaignExperimentTypeEnum.CampaignExperimentTypeB\x03\xe0\x41\x03\x12\x45\n\rbase_campaign\x18\x38 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x04\x88\x01\x01\x12J\n\x0f\x63\x61mpaign_budget\x18> \x01(\tB,\xfa\x41)\n\'googleads.googleapis.com/CampaignBudgetH\x05\x88\x01\x01\x12n\n\x15\x62idding_strategy_type\x18\x16 \x01(\x0e\x32J.google.ads.googleads.v5.enums.BiddingStrategyTypeEnum.BiddingStrategyTypeB\x03\xe0\x41\x03\x12\x17\n\nstart_date\x18? \x01(\tH\x06\x88\x01\x01\x12\x15\n\x08\x65nd_date\x18@ \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10\x66inal_url_suffix\x18\x41 \x01(\tH\x08\x88\x01\x01\x12I\n\x0e\x66requency_caps\x18( \x03(\x0b\x32\x31.google.ads.googleads.v5.common.FrequencyCapEntry\x12}\n\x1evideo_brand_safety_suitability\x18* \x01(\x0e\x32P.google.ads.googleads.v5.enums.BrandSafetySuitabilityEnum.BrandSafetySuitabilityB\x03\xe0\x41\x03\x12O\n\rvanity_pharma\x18, \x01(\x0b\x32\x38.google.ads.googleads.v5.resources.Campaign.VanityPharma\x12\x61\n\x16selective_optimization\x18- \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.Campaign.SelectiveOptimization\x12\x66\n\x19optimization_goal_setting\x18\x36 \x01(\x0b\x32\x43.google.ads.googleads.v5.resources.Campaign.OptimizationGoalSetting\x12Z\n\x10tracking_setting\x18. \x01(\x0b\x32;.google.ads.googleads.v5.resources.Campaign.TrackingSettingB\x03\xe0\x41\x03\x12P\n\x0cpayment_mode\x18\x34 \x01(\x0e\x32:.google.ads.googleads.v5.enums.PaymentModeEnum.PaymentMode\x12$\n\x12optimization_score\x18\x42 \x01(\x01\x42\x03\xe0\x41\x03H\t\x88\x01\x01\x12I\n\x10\x62idding_strategy\x18\x43 \x01(\tB-\xfa\x41*\n(googleads.googleapis.com/BiddingStrategyH\x00\x12@\n\ncommission\x18\x31 \x01(\x0b\x32*.google.ads.googleads.v5.common.CommissionH\x00\x12?\n\nmanual_cpc\x18\x18 \x01(\x0b\x32).google.ads.googleads.v5.common.ManualCpcH\x00\x12?\n\nmanual_cpm\x18\x19 \x01(\x0b\x32).google.ads.googleads.v5.common.ManualCpmH\x00\x12\x44\n\nmanual_cpv\x18% \x01(\x0b\x32).google.ads.googleads.v5.common.ManualCpvB\x03\xe0\x41\x03H\x00\x12S\n\x14maximize_conversions\x18\x1e \x01(\x0b\x32\x33.google.ads.googleads.v5.common.MaximizeConversionsH\x00\x12\\\n\x19maximize_conversion_value\x18\x1f \x01(\x0b\x32\x37.google.ads.googleads.v5.common.MaximizeConversionValueH\x00\x12?\n\ntarget_cpa\x18\x1a \x01(\x0b\x32).google.ads.googleads.v5.common.TargetCpaH\x00\x12X\n\x17target_impression_share\x18\x30 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.TargetImpressionShareH\x00\x12\x41\n\x0btarget_roas\x18\x1d \x01(\x0b\x32*.google.ads.googleads.v5.common.TargetRoasH\x00\x12\x43\n\x0ctarget_spend\x18\x1b \x01(\x0b\x32+.google.ads.googleads.v5.common.TargetSpendH\x00\x12\x41\n\x0bpercent_cpc\x18\" \x01(\x0b\x32*.google.ads.googleads.v5.common.PercentCpcH\x00\x12?\n\ntarget_cpm\x18) \x01(\x0b\x32).google.ads.googleads.v5.common.TargetCpmH\x00\x1a\x99\x02\n\x0fNetworkSettings\x12!\n\x14target_google_search\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15target_search_network\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12#\n\x16target_content_network\x18\x07 \x01(\x08H\x02\x88\x01\x01\x12*\n\x1dtarget_partner_search_network\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\x17\n\x15_target_google_searchB\x18\n\x16_target_search_networkB\x19\n\x17_target_content_networkB \n\x1e_target_partner_search_network\x1aI\n\x10HotelSettingInfo\x12!\n\x0fhotel_center_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x42\x12\n\x10_hotel_center_id\x1a~\n\x14LocalCampaignSetting\x12\x66\n\x14location_source_type\x18\x01 \x01(\x0e\x32H.google.ads.googleads.v5.enums.LocationSourceTypeEnum.LocationSourceType\x1a\xe4\x01\n\x17\x44ynamicSearchAdsSetting\x12\x18\n\x0b\x64omain_name\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rlanguage_code\x18\x07 \x01(\tH\x01\x88\x01\x01\x12#\n\x16use_supplied_urls_only\x18\x08 \x01(\x08H\x02\x88\x01\x01\x12\x31\n\x05\x66\x65\x65\x64s\x18\t \x03(\tB\"\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/FeedB\x0e\n\x0c_domain_nameB\x10\n\x0e_language_codeB\x19\n\x17_use_supplied_urls_only\x1a\xd5\x01\n\x0fShoppingSetting\x12\x1d\n\x0bmerchant_id\x18\x05 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x12\x1f\n\rsales_country\x18\x06 \x01(\tB\x03\xe0\x41\x05H\x01\x88\x01\x01\x12\x1e\n\x11\x63\x61mpaign_priority\x18\x07 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0c\x65nable_local\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\x0e\n\x0c_merchant_idB\x10\n\x0e_sales_countryB\x14\n\x12_campaign_priorityB\x0f\n\r_enable_local\x1a\xf3\x01\n\x0cVanityPharma\x12\x80\x01\n\x1evanity_pharma_display_url_mode\x18\x01 \x01(\x0e\x32X.google.ads.googleads.v5.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode\x12`\n\x12vanity_pharma_text\x18\x02 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.VanityPharmaTextEnum.VanityPharmaText\x1a\x42\n\x0fTrackingSetting\x12\x1e\n\x0ctracking_url\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x0f\n\r_tracking_url\x1a\x63\n\x15SelectiveOptimization\x12J\n\x12\x63onversion_actions\x18\x02 \x03(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionAction\x1a\x88\x01\n\x17OptimizationGoalSetting\x12m\n\x17optimization_goal_types\x18\x01 \x03(\x0e\x32L.google.ads.googleads.v5.enums.OptimizationGoalTypeEnum.OptimizationGoalType\x1a\xfa\x01\n\x14GeoTargetTypeSetting\x12p\n\x18positive_geo_target_type\x18\x01 \x01(\x0e\x32N.google.ads.googleads.v5.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType\x12p\n\x18negative_geo_target_type\x18\x02 \x01(\x0e\x32N.google.ads.googleads.v5.enums.NegativeGeoTargetTypeEnum.NegativeGeoTargetType\x1a\xac\x02\n\x12\x41ppCampaignSetting\x12\x8c\x01\n\x1a\x62idding_strategy_goal_type\x18\x01 \x01(\x0e\x32h.google.ads.googleads.v5.enums.AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType\x12\x18\n\x06\x61pp_id\x18\x04 \x01(\tB\x03\xe0\x41\x05H\x00\x88\x01\x01\x12\x62\n\tapp_store\x18\x03 \x01(\x0e\x32J.google.ads.googleads.v5.enums.AppCampaignAppStoreEnum.AppCampaignAppStoreB\x03\xe0\x41\x05\x42\t\n\x07_app_id:Q\xea\x41N\n!googleads.googleapis.com/Campaign\x12)customers/{customer}/campaigns/{campaign}B\x1b\n\x19\x63\x61mpaign_bidding_strategyB\x05\n\x03_idB\x07\n\x05_nameB\x18\n\x16_tracking_url_templateB\x10\n\x0e_base_campaignB\x12\n\x10_campaign_budgetB\r\n\x0b_start_dateB\x0b\n\t_end_dateB\x13\n\x11_final_url_suffixB\x15\n\x13_optimization_scoreB\xfa\x01\n%com.google.ads.googleads.v5.resourcesB\rCampaignProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_frequency__cap__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_real__time__bidding__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_targeting__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__serving__optimization__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__campaign__app__store__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__campaign__bidding__strategy__goal__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_brand__safety__suitability__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__serving__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__source__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_negative__geo__target__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_optimization__goal__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_payment__mode__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_positive__geo__target__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_vanity__pharma__display__url__mode__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_vanity__pharma__text__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGN_NETWORKSETTINGS = _descriptor.Descriptor( + name='NetworkSettings', + full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_google_search', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings.target_google_search', index=0, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_search_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings.target_search_network', index=1, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_content_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings.target_content_network', index=2, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_partner_search_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings.target_partner_search_network', index=3, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_google_search', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings._target_google_search', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_search_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings._target_search_network', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_content_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings._target_content_network', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_partner_search_network', full_name='google.ads.googleads.v5.resources.Campaign.NetworkSettings._target_partner_search_network', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5431, + serialized_end=5712, +) + +_CAMPAIGN_HOTELSETTINGINFO = _descriptor.Descriptor( + name='HotelSettingInfo', + full_name='google.ads.googleads.v5.resources.Campaign.HotelSettingInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='hotel_center_id', full_name='google.ads.googleads.v5.resources.Campaign.HotelSettingInfo.hotel_center_id', index=0, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_hotel_center_id', full_name='google.ads.googleads.v5.resources.Campaign.HotelSettingInfo._hotel_center_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5714, + serialized_end=5787, +) + +_CAMPAIGN_LOCALCAMPAIGNSETTING = _descriptor.Descriptor( + name='LocalCampaignSetting', + full_name='google.ads.googleads.v5.resources.Campaign.LocalCampaignSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='location_source_type', full_name='google.ads.googleads.v5.resources.Campaign.LocalCampaignSetting.location_source_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5789, + serialized_end=5915, +) + +_CAMPAIGN_DYNAMICSEARCHADSSETTING = _descriptor.Descriptor( + name='DynamicSearchAdsSetting', + full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='domain_name', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting.domain_name', index=0, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting.language_code', index=1, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='use_supplied_urls_only', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting.use_supplied_urls_only', index=2, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feeds', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting.feeds', index=3, + number=9, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_domain_name', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting._domain_name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_language_code', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting._language_code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_use_supplied_urls_only', full_name='google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting._use_supplied_urls_only', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5918, + serialized_end=6146, +) + +_CAMPAIGN_SHOPPINGSETTING = _descriptor.Descriptor( + name='ShoppingSetting', + full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='merchant_id', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting.merchant_id', index=0, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sales_country', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting.sales_country', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_priority', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting.campaign_priority', index=2, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enable_local', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting.enable_local', index=3, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_merchant_id', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting._merchant_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_sales_country', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting._sales_country', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign_priority', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting._campaign_priority', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_enable_local', full_name='google.ads.googleads.v5.resources.Campaign.ShoppingSetting._enable_local', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6149, + serialized_end=6362, +) + +_CAMPAIGN_VANITYPHARMA = _descriptor.Descriptor( + name='VanityPharma', + full_name='google.ads.googleads.v5.resources.Campaign.VanityPharma', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='vanity_pharma_display_url_mode', full_name='google.ads.googleads.v5.resources.Campaign.VanityPharma.vanity_pharma_display_url_mode', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='vanity_pharma_text', full_name='google.ads.googleads.v5.resources.Campaign.VanityPharma.vanity_pharma_text', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6365, + serialized_end=6608, +) + +_CAMPAIGN_TRACKINGSETTING = _descriptor.Descriptor( + name='TrackingSetting', + full_name='google.ads.googleads.v5.resources.Campaign.TrackingSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='tracking_url', full_name='google.ads.googleads.v5.resources.Campaign.TrackingSetting.tracking_url', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_tracking_url', full_name='google.ads.googleads.v5.resources.Campaign.TrackingSetting._tracking_url', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=6610, + serialized_end=6676, +) + +_CAMPAIGN_SELECTIVEOPTIMIZATION = _descriptor.Descriptor( + name='SelectiveOptimization', + full_name='google.ads.googleads.v5.resources.Campaign.SelectiveOptimization', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='conversion_actions', full_name='google.ads.googleads.v5.resources.Campaign.SelectiveOptimization.conversion_actions', index=0, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A+\n)googleads.googleapis.com/ConversionAction', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6678, + serialized_end=6777, +) + +_CAMPAIGN_OPTIMIZATIONGOALSETTING = _descriptor.Descriptor( + name='OptimizationGoalSetting', + full_name='google.ads.googleads.v5.resources.Campaign.OptimizationGoalSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='optimization_goal_types', full_name='google.ads.googleads.v5.resources.Campaign.OptimizationGoalSetting.optimization_goal_types', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6780, + serialized_end=6916, +) + +_CAMPAIGN_GEOTARGETTYPESETTING = _descriptor.Descriptor( + name='GeoTargetTypeSetting', + full_name='google.ads.googleads.v5.resources.Campaign.GeoTargetTypeSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='positive_geo_target_type', full_name='google.ads.googleads.v5.resources.Campaign.GeoTargetTypeSetting.positive_geo_target_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='negative_geo_target_type', full_name='google.ads.googleads.v5.resources.Campaign.GeoTargetTypeSetting.negative_geo_target_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6919, + serialized_end=7169, +) + +_CAMPAIGN_APPCAMPAIGNSETTING = _descriptor.Descriptor( + name='AppCampaignSetting', + full_name='google.ads.googleads.v5.resources.Campaign.AppCampaignSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='bidding_strategy_goal_type', full_name='google.ads.googleads.v5.resources.Campaign.AppCampaignSetting.bidding_strategy_goal_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.resources.Campaign.AppCampaignSetting.app_id', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_store', full_name='google.ads.googleads.v5.resources.Campaign.AppCampaignSetting.app_store', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_app_id', full_name='google.ads.googleads.v5.resources.Campaign.AppCampaignSetting._app_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7172, + serialized_end=7472, +) + +_CAMPAIGN = _descriptor.Descriptor( + name='Campaign', + full_name='google.ads.googleads.v5.resources.Campaign', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Campaign.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Campaign.id', index=1, + number=59, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.Campaign.name', index=2, + number=58, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.Campaign.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='serving_status', full_name='google.ads.googleads.v5.resources.Campaign.serving_status', index=4, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_serving_optimization_status', full_name='google.ads.googleads.v5.resources.Campaign.ad_serving_optimization_status', index=5, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='advertising_channel_type', full_name='google.ads.googleads.v5.resources.Campaign.advertising_channel_type', index=6, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='advertising_channel_sub_type', full_name='google.ads.googleads.v5.resources.Campaign.advertising_channel_sub_type', index=7, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.resources.Campaign.tracking_url_template', index=8, + number=60, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.resources.Campaign.url_custom_parameters', index=9, + number=12, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='real_time_bidding_setting', full_name='google.ads.googleads.v5.resources.Campaign.real_time_bidding_setting', index=10, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='network_settings', full_name='google.ads.googleads.v5.resources.Campaign.network_settings', index=11, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_setting', full_name='google.ads.googleads.v5.resources.Campaign.hotel_setting', index=12, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dynamic_search_ads_setting', full_name='google.ads.googleads.v5.resources.Campaign.dynamic_search_ads_setting', index=13, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shopping_setting', full_name='google.ads.googleads.v5.resources.Campaign.shopping_setting', index=14, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting_setting', full_name='google.ads.googleads.v5.resources.Campaign.targeting_setting', index=15, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_type_setting', full_name='google.ads.googleads.v5.resources.Campaign.geo_target_type_setting', index=16, + number=47, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='local_campaign_setting', full_name='google.ads.googleads.v5.resources.Campaign.local_campaign_setting', index=17, + number=50, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_campaign_setting', full_name='google.ads.googleads.v5.resources.Campaign.app_campaign_setting', index=18, + number=51, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='labels', full_name='google.ads.googleads.v5.resources.Campaign.labels', index=19, + number=61, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A(\n&googleads.googleapis.com/CampaignLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='experiment_type', full_name='google.ads.googleads.v5.resources.Campaign.experiment_type', index=20, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='base_campaign', full_name='google.ads.googleads.v5.resources.Campaign.base_campaign', index=21, + number=56, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.resources.Campaign.campaign_budget', index=22, + number=62, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A)\n\'googleads.googleapis.com/CampaignBudget', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy_type', full_name='google.ads.googleads.v5.resources.Campaign.bidding_strategy_type', index=23, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.resources.Campaign.start_date', index=24, + number=63, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v5.resources.Campaign.end_date', index=25, + number=64, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.resources.Campaign.final_url_suffix', index=26, + number=65, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='frequency_caps', full_name='google.ads.googleads.v5.resources.Campaign.frequency_caps', index=27, + number=40, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_brand_safety_suitability', full_name='google.ads.googleads.v5.resources.Campaign.video_brand_safety_suitability', index=28, + number=42, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='vanity_pharma', full_name='google.ads.googleads.v5.resources.Campaign.vanity_pharma', index=29, + number=44, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='selective_optimization', full_name='google.ads.googleads.v5.resources.Campaign.selective_optimization', index=30, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optimization_goal_setting', full_name='google.ads.googleads.v5.resources.Campaign.optimization_goal_setting', index=31, + number=54, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_setting', full_name='google.ads.googleads.v5.resources.Campaign.tracking_setting', index=32, + number=46, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payment_mode', full_name='google.ads.googleads.v5.resources.Campaign.payment_mode', index=33, + number=52, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optimization_score', full_name='google.ads.googleads.v5.resources.Campaign.optimization_score', index=34, + number=66, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy', full_name='google.ads.googleads.v5.resources.Campaign.bidding_strategy', index=35, + number=67, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A*\n(googleads.googleapis.com/BiddingStrategy', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='commission', full_name='google.ads.googleads.v5.resources.Campaign.commission', index=36, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manual_cpc', full_name='google.ads.googleads.v5.resources.Campaign.manual_cpc', index=37, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manual_cpm', full_name='google.ads.googleads.v5.resources.Campaign.manual_cpm', index=38, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manual_cpv', full_name='google.ads.googleads.v5.resources.Campaign.manual_cpv', index=39, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='maximize_conversions', full_name='google.ads.googleads.v5.resources.Campaign.maximize_conversions', index=40, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='maximize_conversion_value', full_name='google.ads.googleads.v5.resources.Campaign.maximize_conversion_value', index=41, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa', full_name='google.ads.googleads.v5.resources.Campaign.target_cpa', index=42, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_impression_share', full_name='google.ads.googleads.v5.resources.Campaign.target_impression_share', index=43, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.resources.Campaign.target_roas', index=44, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_spend', full_name='google.ads.googleads.v5.resources.Campaign.target_spend', index=45, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='percent_cpc', full_name='google.ads.googleads.v5.resources.Campaign.percent_cpc', index=46, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpm', full_name='google.ads.googleads.v5.resources.Campaign.target_cpm', index=47, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_CAMPAIGN_NETWORKSETTINGS, _CAMPAIGN_HOTELSETTINGINFO, _CAMPAIGN_LOCALCAMPAIGNSETTING, _CAMPAIGN_DYNAMICSEARCHADSSETTING, _CAMPAIGN_SHOPPINGSETTING, _CAMPAIGN_VANITYPHARMA, _CAMPAIGN_TRACKINGSETTING, _CAMPAIGN_SELECTIVEOPTIMIZATION, _CAMPAIGN_OPTIMIZATIONGOALSETTING, _CAMPAIGN_GEOTARGETTYPESETTING, _CAMPAIGN_APPCAMPAIGNSETTING, ], + enum_types=[ + ], + serialized_options=b'\352AN\n!googleads.googleapis.com/Campaign\022)customers/{customer}/campaigns/{campaign}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='campaign_bidding_strategy', full_name='google.ads.googleads.v5.resources.Campaign.campaign_bidding_strategy', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.Campaign._id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.Campaign._name', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tracking_url_template', full_name='google.ads.googleads.v5.resources.Campaign._tracking_url_template', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_base_campaign', full_name='google.ads.googleads.v5.resources.Campaign._base_campaign', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign_budget', full_name='google.ads.googleads.v5.resources.Campaign._campaign_budget', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_start_date', full_name='google.ads.googleads.v5.resources.Campaign._start_date', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_end_date', full_name='google.ads.googleads.v5.resources.Campaign._end_date', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_final_url_suffix', full_name='google.ads.googleads.v5.resources.Campaign._final_url_suffix', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_optimization_score', full_name='google.ads.googleads.v5.resources.Campaign._optimization_score', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1635, + serialized_end=7736, +) + +_CAMPAIGN_NETWORKSETTINGS.containing_type = _CAMPAIGN +_CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_google_search'].fields.append( + _CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_google_search']) +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_google_search'].containing_oneof = _CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_google_search'] +_CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_search_network'].fields.append( + _CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_search_network']) +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_search_network'].containing_oneof = _CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_search_network'] +_CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_content_network'].fields.append( + _CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_content_network']) +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_content_network'].containing_oneof = _CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_content_network'] +_CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_partner_search_network'].fields.append( + _CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_partner_search_network']) +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_partner_search_network'].containing_oneof = _CAMPAIGN_NETWORKSETTINGS.oneofs_by_name['_target_partner_search_network'] +_CAMPAIGN_HOTELSETTINGINFO.containing_type = _CAMPAIGN +_CAMPAIGN_HOTELSETTINGINFO.oneofs_by_name['_hotel_center_id'].fields.append( + _CAMPAIGN_HOTELSETTINGINFO.fields_by_name['hotel_center_id']) +_CAMPAIGN_HOTELSETTINGINFO.fields_by_name['hotel_center_id'].containing_oneof = _CAMPAIGN_HOTELSETTINGINFO.oneofs_by_name['_hotel_center_id'] +_CAMPAIGN_LOCALCAMPAIGNSETTING.fields_by_name['location_source_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__source__type__pb2._LOCATIONSOURCETYPEENUM_LOCATIONSOURCETYPE +_CAMPAIGN_LOCALCAMPAIGNSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_DYNAMICSEARCHADSSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_domain_name'].fields.append( + _CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['domain_name']) +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['domain_name'].containing_oneof = _CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_domain_name'] +_CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_language_code'].fields.append( + _CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['language_code']) +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['language_code'].containing_oneof = _CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_language_code'] +_CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_use_supplied_urls_only'].fields.append( + _CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['use_supplied_urls_only']) +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['use_supplied_urls_only'].containing_oneof = _CAMPAIGN_DYNAMICSEARCHADSSETTING.oneofs_by_name['_use_supplied_urls_only'] +_CAMPAIGN_SHOPPINGSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_merchant_id'].fields.append( + _CAMPAIGN_SHOPPINGSETTING.fields_by_name['merchant_id']) +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['merchant_id'].containing_oneof = _CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_merchant_id'] +_CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_sales_country'].fields.append( + _CAMPAIGN_SHOPPINGSETTING.fields_by_name['sales_country']) +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['sales_country'].containing_oneof = _CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_sales_country'] +_CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_campaign_priority'].fields.append( + _CAMPAIGN_SHOPPINGSETTING.fields_by_name['campaign_priority']) +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['campaign_priority'].containing_oneof = _CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_campaign_priority'] +_CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_enable_local'].fields.append( + _CAMPAIGN_SHOPPINGSETTING.fields_by_name['enable_local']) +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['enable_local'].containing_oneof = _CAMPAIGN_SHOPPINGSETTING.oneofs_by_name['_enable_local'] +_CAMPAIGN_VANITYPHARMA.fields_by_name['vanity_pharma_display_url_mode'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_vanity__pharma__display__url__mode__pb2._VANITYPHARMADISPLAYURLMODEENUM_VANITYPHARMADISPLAYURLMODE +_CAMPAIGN_VANITYPHARMA.fields_by_name['vanity_pharma_text'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_vanity__pharma__text__pb2._VANITYPHARMATEXTENUM_VANITYPHARMATEXT +_CAMPAIGN_VANITYPHARMA.containing_type = _CAMPAIGN +_CAMPAIGN_TRACKINGSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_TRACKINGSETTING.oneofs_by_name['_tracking_url'].fields.append( + _CAMPAIGN_TRACKINGSETTING.fields_by_name['tracking_url']) +_CAMPAIGN_TRACKINGSETTING.fields_by_name['tracking_url'].containing_oneof = _CAMPAIGN_TRACKINGSETTING.oneofs_by_name['_tracking_url'] +_CAMPAIGN_SELECTIVEOPTIMIZATION.containing_type = _CAMPAIGN +_CAMPAIGN_OPTIMIZATIONGOALSETTING.fields_by_name['optimization_goal_types'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_optimization__goal__type__pb2._OPTIMIZATIONGOALTYPEENUM_OPTIMIZATIONGOALTYPE +_CAMPAIGN_OPTIMIZATIONGOALSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_GEOTARGETTYPESETTING.fields_by_name['positive_geo_target_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_positive__geo__target__type__pb2._POSITIVEGEOTARGETTYPEENUM_POSITIVEGEOTARGETTYPE +_CAMPAIGN_GEOTARGETTYPESETTING.fields_by_name['negative_geo_target_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_negative__geo__target__type__pb2._NEGATIVEGEOTARGETTYPEENUM_NEGATIVEGEOTARGETTYPE +_CAMPAIGN_GEOTARGETTYPESETTING.containing_type = _CAMPAIGN +_CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['bidding_strategy_goal_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__campaign__bidding__strategy__goal__type__pb2._APPCAMPAIGNBIDDINGSTRATEGYGOALTYPEENUM_APPCAMPAIGNBIDDINGSTRATEGYGOALTYPE +_CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['app_store'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__campaign__app__store__pb2._APPCAMPAIGNAPPSTOREENUM_APPCAMPAIGNAPPSTORE +_CAMPAIGN_APPCAMPAIGNSETTING.containing_type = _CAMPAIGN +_CAMPAIGN_APPCAMPAIGNSETTING.oneofs_by_name['_app_id'].fields.append( + _CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['app_id']) +_CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['app_id'].containing_oneof = _CAMPAIGN_APPCAMPAIGNSETTING.oneofs_by_name['_app_id'] +_CAMPAIGN.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__status__pb2._CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS +_CAMPAIGN.fields_by_name['serving_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__serving__status__pb2._CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS +_CAMPAIGN.fields_by_name['ad_serving_optimization_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__serving__optimization__status__pb2._ADSERVINGOPTIMIZATIONSTATUSENUM_ADSERVINGOPTIMIZATIONSTATUS +_CAMPAIGN.fields_by_name['advertising_channel_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2._ADVERTISINGCHANNELTYPEENUM_ADVERTISINGCHANNELTYPE +_CAMPAIGN.fields_by_name['advertising_channel_sub_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2._ADVERTISINGCHANNELSUBTYPEENUM_ADVERTISINGCHANNELSUBTYPE +_CAMPAIGN.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_CAMPAIGN.fields_by_name['real_time_bidding_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_real__time__bidding__setting__pb2._REALTIMEBIDDINGSETTING +_CAMPAIGN.fields_by_name['network_settings'].message_type = _CAMPAIGN_NETWORKSETTINGS +_CAMPAIGN.fields_by_name['hotel_setting'].message_type = _CAMPAIGN_HOTELSETTINGINFO +_CAMPAIGN.fields_by_name['dynamic_search_ads_setting'].message_type = _CAMPAIGN_DYNAMICSEARCHADSSETTING +_CAMPAIGN.fields_by_name['shopping_setting'].message_type = _CAMPAIGN_SHOPPINGSETTING +_CAMPAIGN.fields_by_name['targeting_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_targeting__setting__pb2._TARGETINGSETTING +_CAMPAIGN.fields_by_name['geo_target_type_setting'].message_type = _CAMPAIGN_GEOTARGETTYPESETTING +_CAMPAIGN.fields_by_name['local_campaign_setting'].message_type = _CAMPAIGN_LOCALCAMPAIGNSETTING +_CAMPAIGN.fields_by_name['app_campaign_setting'].message_type = _CAMPAIGN_APPCAMPAIGNSETTING +_CAMPAIGN.fields_by_name['experiment_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__experiment__type__pb2._CAMPAIGNEXPERIMENTTYPEENUM_CAMPAIGNEXPERIMENTTYPE +_CAMPAIGN.fields_by_name['bidding_strategy_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_bidding__strategy__type__pb2._BIDDINGSTRATEGYTYPEENUM_BIDDINGSTRATEGYTYPE +_CAMPAIGN.fields_by_name['frequency_caps'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_frequency__cap__pb2._FREQUENCYCAPENTRY +_CAMPAIGN.fields_by_name['video_brand_safety_suitability'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_brand__safety__suitability__pb2._BRANDSAFETYSUITABILITYENUM_BRANDSAFETYSUITABILITY +_CAMPAIGN.fields_by_name['vanity_pharma'].message_type = _CAMPAIGN_VANITYPHARMA +_CAMPAIGN.fields_by_name['selective_optimization'].message_type = _CAMPAIGN_SELECTIVEOPTIMIZATION +_CAMPAIGN.fields_by_name['optimization_goal_setting'].message_type = _CAMPAIGN_OPTIMIZATIONGOALSETTING +_CAMPAIGN.fields_by_name['tracking_setting'].message_type = _CAMPAIGN_TRACKINGSETTING +_CAMPAIGN.fields_by_name['payment_mode'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_payment__mode__pb2._PAYMENTMODEENUM_PAYMENTMODE +_CAMPAIGN.fields_by_name['commission'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._COMMISSION +_CAMPAIGN.fields_by_name['manual_cpc'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._MANUALCPC +_CAMPAIGN.fields_by_name['manual_cpm'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._MANUALCPM +_CAMPAIGN.fields_by_name['manual_cpv'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._MANUALCPV +_CAMPAIGN.fields_by_name['maximize_conversions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._MAXIMIZECONVERSIONS +_CAMPAIGN.fields_by_name['maximize_conversion_value'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._MAXIMIZECONVERSIONVALUE +_CAMPAIGN.fields_by_name['target_cpa'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETCPA +_CAMPAIGN.fields_by_name['target_impression_share'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETIMPRESSIONSHARE +_CAMPAIGN.fields_by_name['target_roas'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETROAS +_CAMPAIGN.fields_by_name['target_spend'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETSPEND +_CAMPAIGN.fields_by_name['percent_cpc'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._PERCENTCPC +_CAMPAIGN.fields_by_name['target_cpm'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_bidding__pb2._TARGETCPM +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['bidding_strategy']) +_CAMPAIGN.fields_by_name['bidding_strategy'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['commission']) +_CAMPAIGN.fields_by_name['commission'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['manual_cpc']) +_CAMPAIGN.fields_by_name['manual_cpc'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['manual_cpm']) +_CAMPAIGN.fields_by_name['manual_cpm'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['manual_cpv']) +_CAMPAIGN.fields_by_name['manual_cpv'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['maximize_conversions']) +_CAMPAIGN.fields_by_name['maximize_conversions'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['maximize_conversion_value']) +_CAMPAIGN.fields_by_name['maximize_conversion_value'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_cpa']) +_CAMPAIGN.fields_by_name['target_cpa'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_impression_share']) +_CAMPAIGN.fields_by_name['target_impression_share'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_roas']) +_CAMPAIGN.fields_by_name['target_roas'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_spend']) +_CAMPAIGN.fields_by_name['target_spend'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['percent_cpc']) +_CAMPAIGN.fields_by_name['percent_cpc'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_cpm']) +_CAMPAIGN.fields_by_name['target_cpm'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['_id'].fields.append( + _CAMPAIGN.fields_by_name['id']) +_CAMPAIGN.fields_by_name['id'].containing_oneof = _CAMPAIGN.oneofs_by_name['_id'] +_CAMPAIGN.oneofs_by_name['_name'].fields.append( + _CAMPAIGN.fields_by_name['name']) +_CAMPAIGN.fields_by_name['name'].containing_oneof = _CAMPAIGN.oneofs_by_name['_name'] +_CAMPAIGN.oneofs_by_name['_tracking_url_template'].fields.append( + _CAMPAIGN.fields_by_name['tracking_url_template']) +_CAMPAIGN.fields_by_name['tracking_url_template'].containing_oneof = _CAMPAIGN.oneofs_by_name['_tracking_url_template'] +_CAMPAIGN.oneofs_by_name['_base_campaign'].fields.append( + _CAMPAIGN.fields_by_name['base_campaign']) +_CAMPAIGN.fields_by_name['base_campaign'].containing_oneof = _CAMPAIGN.oneofs_by_name['_base_campaign'] +_CAMPAIGN.oneofs_by_name['_campaign_budget'].fields.append( + _CAMPAIGN.fields_by_name['campaign_budget']) +_CAMPAIGN.fields_by_name['campaign_budget'].containing_oneof = _CAMPAIGN.oneofs_by_name['_campaign_budget'] +_CAMPAIGN.oneofs_by_name['_start_date'].fields.append( + _CAMPAIGN.fields_by_name['start_date']) +_CAMPAIGN.fields_by_name['start_date'].containing_oneof = _CAMPAIGN.oneofs_by_name['_start_date'] +_CAMPAIGN.oneofs_by_name['_end_date'].fields.append( + _CAMPAIGN.fields_by_name['end_date']) +_CAMPAIGN.fields_by_name['end_date'].containing_oneof = _CAMPAIGN.oneofs_by_name['_end_date'] +_CAMPAIGN.oneofs_by_name['_final_url_suffix'].fields.append( + _CAMPAIGN.fields_by_name['final_url_suffix']) +_CAMPAIGN.fields_by_name['final_url_suffix'].containing_oneof = _CAMPAIGN.oneofs_by_name['_final_url_suffix'] +_CAMPAIGN.oneofs_by_name['_optimization_score'].fields.append( + _CAMPAIGN.fields_by_name['optimization_score']) +_CAMPAIGN.fields_by_name['optimization_score'].containing_oneof = _CAMPAIGN.oneofs_by_name['_optimization_score'] +DESCRIPTOR.message_types_by_name['Campaign'] = _CAMPAIGN +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Campaign = _reflection.GeneratedProtocolMessageType('Campaign', (_message.Message,), { + + 'NetworkSettings' : _reflection.GeneratedProtocolMessageType('NetworkSettings', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_NETWORKSETTINGS, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """The network settings for the campaign. + + Attributes: + target_google_search: + Whether ads will be served with google.com search results. + target_search_network: + Whether ads will be served on partner sites in the Google + Search Network (requires ``target_google_search`` to also be + ``true``). + target_content_network: + Whether ads will be served on specified placements in the + Google Display Network. Placements are specified using the + Placement criterion. + target_partner_search_network: + Whether ads will be served on the Google Partner Network. This + is available only to some select Google partner accounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.NetworkSettings) + }) + , + + 'HotelSettingInfo' : _reflection.GeneratedProtocolMessageType('HotelSettingInfo', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_HOTELSETTINGINFO, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Campaign-level settings for hotel ads. + + Attributes: + hotel_center_id: + Immutable. The linked Hotel Center account. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.HotelSettingInfo) + }) + , + + 'LocalCampaignSetting' : _reflection.GeneratedProtocolMessageType('LocalCampaignSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_LOCALCAMPAIGNSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Campaign setting for local campaigns. + + Attributes: + location_source_type: + The location source type for this local campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.LocalCampaignSetting) + }) + , + + 'DynamicSearchAdsSetting' : _reflection.GeneratedProtocolMessageType('DynamicSearchAdsSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_DYNAMICSEARCHADSSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """The setting for controlling Dynamic Search Ads (DSA). + + Attributes: + domain_name: + The Internet domain name that this setting represents, e.g., + "google.com" or "www.google.com". + language_code: + The language code specifying the language of the domain, e.g., + "en". + use_supplied_urls_only: + Whether the campaign uses advertiser supplied URLs + exclusively. + feeds: + The list of page feeds associated with the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.DynamicSearchAdsSetting) + }) + , + + 'ShoppingSetting' : _reflection.GeneratedProtocolMessageType('ShoppingSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_SHOPPINGSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """The setting for Shopping campaigns. Defines the universe of products + that can be advertised by the campaign, and how this campaign + interacts with other Shopping campaigns. + + Attributes: + merchant_id: + Immutable. ID of the Merchant Center account. This field is + required for create operations. This field is immutable for + Shopping campaigns. + sales_country: + Immutable. Sales country of products to include in the + campaign. This field is required for Shopping campaigns. This + field is immutable. This field is optional for non-Shopping + campaigns, but it must be equal to 'ZZ' if set. + campaign_priority: + Priority of the campaign. Campaigns with numerically higher + priorities take precedence over those with lower priorities. + This field is required for Shopping campaigns, with values + between 0 and 2, inclusive. This field is optional for Smart + Shopping campaigns, but must be equal to 3 if set. + enable_local: + Whether to include local products. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.ShoppingSetting) + }) + , + + 'VanityPharma' : _reflection.GeneratedProtocolMessageType('VanityPharma', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_VANITYPHARMA, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Describes how unbranded pharma ads will be displayed. + + Attributes: + vanity_pharma_display_url_mode: + The display mode for vanity pharma URLs. + vanity_pharma_text: + The text that will be displayed in display URL of the text ad + when website description is the selected display mode for + vanity pharma URLs. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.VanityPharma) + }) + , + + 'TrackingSetting' : _reflection.GeneratedProtocolMessageType('TrackingSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_TRACKINGSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Campaign-level settings for tracking information. + + Attributes: + tracking_url: + Output only. The url used for dynamic tracking. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.TrackingSetting) + }) + , + + 'SelectiveOptimization' : _reflection.GeneratedProtocolMessageType('SelectiveOptimization', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_SELECTIVEOPTIMIZATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Selective optimization setting for this campaign, which includes a set + of conversion actions to optimize this campaign towards. + + Attributes: + conversion_actions: + The selected set of conversion actions for optimizing this + campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.SelectiveOptimization) + }) + , + + 'OptimizationGoalSetting' : _reflection.GeneratedProtocolMessageType('OptimizationGoalSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_OPTIMIZATIONGOALSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Optimization goal setting for this campaign, which includes a set of + optimization goal types. + + Attributes: + optimization_goal_types: + The list of optimization goal types. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.OptimizationGoalSetting) + }) + , + + 'GeoTargetTypeSetting' : _reflection.GeneratedProtocolMessageType('GeoTargetTypeSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_GEOTARGETTYPESETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Represents a collection of settings related to ads geotargeting. + + Attributes: + positive_geo_target_type: + The setting used for positive geotargeting in this particular + campaign. + negative_geo_target_type: + The setting used for negative geotargeting in this particular + campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.GeoTargetTypeSetting) + }) + , + + 'AppCampaignSetting' : _reflection.GeneratedProtocolMessageType('AppCampaignSetting', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGN_APPCAMPAIGNSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """Campaign-level settings for App Campaigns. + + Attributes: + bidding_strategy_goal_type: + Represents the goal which the bidding strategy of this app + campaign should optimize towards. + app_id: + Immutable. A string that uniquely identifies a mobile + application. + app_store: + Immutable. The application store that distributes this + specific app. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign.AppCampaignSetting) + }) + , + 'DESCRIPTOR' : _CAMPAIGN, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_pb2' + , + '__doc__': """A campaign. + + Attributes: + resource_name: + Immutable. The resource name of the campaign. Campaign + resource names have the form: + ``customers/{customer_id}/campaigns/{campaign_id}`` + id: + Output only. The ID of the campaign. + name: + The name of the campaign. This field is required and should + not be empty when creating new campaigns. It must not contain + any null (code point 0x0), NL line feed (code point 0xA) or + carriage return (code point 0xD) characters. + status: + The status of the campaign. When a new campaign is added, the + status defaults to ENABLED. + serving_status: + Output only. The ad serving status of the campaign. + ad_serving_optimization_status: + The ad serving optimization status of the campaign. + advertising_channel_type: + Immutable. The primary serving target for ads within the + campaign. The targeting options can be refined in + ``network_settings``. This field is required and should not + be empty when creating new campaigns. Can be set only when + creating campaigns. After the campaign is created, the field + can not be changed. + advertising_channel_sub_type: + Immutable. Optional refinement to + ``advertising_channel_type``. Must be a valid sub-type of the + parent channel type. Can be set only when creating campaigns. + After campaign is created, the field can not be changed. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + real_time_bidding_setting: + Settings for Real-Time Bidding, a feature only available for + campaigns targeting the Ad Exchange network. + network_settings: + The network settings for the campaign. + hotel_setting: + Immutable. The hotel setting for the campaign. + dynamic_search_ads_setting: + The setting for controlling Dynamic Search Ads (DSA). + shopping_setting: + The setting for controlling Shopping campaigns. + targeting_setting: + Setting for targeting related features. + geo_target_type_setting: + The setting for ads geotargeting. + local_campaign_setting: + The setting for local campaign. + app_campaign_setting: + The setting related to App Campaign. + labels: + Output only. The resource names of labels attached to this + campaign. + experiment_type: + Output only. The type of campaign: normal, draft, or + experiment. + base_campaign: + Output only. The resource name of the base campaign of a draft + or experiment campaign. For base campaigns, this is equal to + ``resource_name``. This field is read-only. + campaign_budget: + The budget of the campaign. + bidding_strategy_type: + Output only. The type of bidding strategy. A bidding strategy + can be created by setting either the bidding scheme to create + a standard bidding strategy or the ``bidding_strategy`` field + to create a portfolio bidding strategy. This field is read- + only. + start_date: + The date when campaign started. + end_date: + The date when campaign ended. + final_url_suffix: + Suffix used to append query parameters to landing pages that + are served with parallel tracking. + frequency_caps: + A list that limits how often each user will see this + campaign's ads. + video_brand_safety_suitability: + Output only. 3-Tier Brand Safety setting for the campaign. + vanity_pharma: + Describes how unbranded pharma ads will be displayed. + selective_optimization: + Selective optimization setting for this campaign, which + includes a set of conversion actions to optimize this campaign + towards. + optimization_goal_setting: + Optimization goal setting for this campaign, which includes a + set of optimization goal types. + tracking_setting: + Output only. Campaign-level settings for tracking information. + payment_mode: + Payment mode for the campaign. + optimization_score: + Output only. Optimization score of the campaign. Optimization + score is an estimate of how well a campaign is set to perform. + It ranges from 0% (0.0) to 100% (1.0), with 100% indicating + that the campaign is performing at full potential. See "About + optimization score" at https://support.google.com/google- + ads/answer/9061546. This field is read-only. + campaign_bidding_strategy: + The bidding strategy for the campaign. Must be either + portfolio (created via BiddingStrategy service) or standard, + that is embedded into the campaign. + bidding_strategy: + Portfolio bidding strategy used by campaign. + commission: + Commission is an automatic bidding strategy in which the + advertiser pays a certain portion of the conversion value. + manual_cpc: + Standard Manual CPC bidding strategy. Manual click-based + bidding where user pays per click. + manual_cpm: + Standard Manual CPM bidding strategy. Manual impression-based + bidding where user pays per thousand impressions. + manual_cpv: + Output only. A bidding strategy that pays a configurable + amount per video view. + maximize_conversions: + Standard Maximize Conversions bidding strategy that + automatically maximizes number of conversions given a daily + budget. + maximize_conversion_value: + Standard Maximize Conversion Value bidding strategy that + automatically sets bids to maximize revenue while spending + your budget. + target_cpa: + Standard Target CPA bidding strategy that automatically sets + bids to help get as many conversions as possible at the target + cost-per-acquisition (CPA) you set. + target_impression_share: + Target Impression Share bidding strategy. An automated bidding + strategy that sets bids to achieve a desired percentage of + impressions. + target_roas: + Standard Target ROAS bidding strategy that automatically + maximizes revenue while averaging a specific target return on + ad spend (ROAS). + target_spend: + Standard Target Spend bidding strategy that automatically sets + your bids to help get as many clicks as possible within your + budget. + percent_cpc: + Standard Percent Cpc bidding strategy where bids are a + fraction of the advertised price for some good or service. + target_cpm: + A bidding strategy that automatically optimizes cost per + thousand impressions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Campaign) + }) +_sym_db.RegisterMessage(Campaign) +_sym_db.RegisterMessage(Campaign.NetworkSettings) +_sym_db.RegisterMessage(Campaign.HotelSettingInfo) +_sym_db.RegisterMessage(Campaign.LocalCampaignSetting) +_sym_db.RegisterMessage(Campaign.DynamicSearchAdsSetting) +_sym_db.RegisterMessage(Campaign.ShoppingSetting) +_sym_db.RegisterMessage(Campaign.VanityPharma) +_sym_db.RegisterMessage(Campaign.TrackingSetting) +_sym_db.RegisterMessage(Campaign.SelectiveOptimization) +_sym_db.RegisterMessage(Campaign.OptimizationGoalSetting) +_sym_db.RegisterMessage(Campaign.GeoTargetTypeSetting) +_sym_db.RegisterMessage(Campaign.AppCampaignSetting) + + +DESCRIPTOR._options = None +_CAMPAIGN_HOTELSETTINGINFO.fields_by_name['hotel_center_id']._options = None +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['feeds']._options = None +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['merchant_id']._options = None +_CAMPAIGN_SHOPPINGSETTING.fields_by_name['sales_country']._options = None +_CAMPAIGN_TRACKINGSETTING.fields_by_name['tracking_url']._options = None +_CAMPAIGN_SELECTIVEOPTIMIZATION.fields_by_name['conversion_actions']._options = None +_CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['app_id']._options = None +_CAMPAIGN_APPCAMPAIGNSETTING.fields_by_name['app_store']._options = None +_CAMPAIGN.fields_by_name['resource_name']._options = None +_CAMPAIGN.fields_by_name['id']._options = None +_CAMPAIGN.fields_by_name['serving_status']._options = None +_CAMPAIGN.fields_by_name['advertising_channel_type']._options = None +_CAMPAIGN.fields_by_name['advertising_channel_sub_type']._options = None +_CAMPAIGN.fields_by_name['hotel_setting']._options = None +_CAMPAIGN.fields_by_name['labels']._options = None +_CAMPAIGN.fields_by_name['experiment_type']._options = None +_CAMPAIGN.fields_by_name['base_campaign']._options = None +_CAMPAIGN.fields_by_name['campaign_budget']._options = None +_CAMPAIGN.fields_by_name['bidding_strategy_type']._options = None +_CAMPAIGN.fields_by_name['video_brand_safety_suitability']._options = None +_CAMPAIGN.fields_by_name['tracking_setting']._options = None +_CAMPAIGN.fields_by_name['optimization_score']._options = None +_CAMPAIGN.fields_by_name['bidding_strategy']._options = None +_CAMPAIGN.fields_by_name['manual_cpv']._options = None +_CAMPAIGN._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2.py b/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2.py new file mode 100644 index 000000000..281ca5d81 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/campaign_shared_set.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import campaign_shared_set_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__shared__set__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/campaign_shared_set.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\026CampaignSharedSetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/resources/campaign_shared_set.proto\x12!google.ads.googleads.v5.resources\x1a\x44google/ads/googleads_v5/proto/enums/campaign_shared_set_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xda\x03\n\x11\x43\x61mpaignSharedSet\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x05\xfa\x41,\n*googleads.googleapis.com/CampaignSharedSet\x12@\n\x08\x63\x61mpaign\x18\x05 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/CampaignH\x00\x88\x01\x01\x12\x43\n\nshared_set\x18\x06 \x01(\tB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/SharedSetH\x01\x88\x01\x01\x12g\n\x06status\x18\x02 \x01(\x0e\x32R.google.ads.googleads.v5.enums.CampaignSharedSetStatusEnum.CampaignSharedSetStatusB\x03\xe0\x41\x03:n\xea\x41k\n*googleads.googleapis.com/CampaignSharedSet\x12=customers/{customer}/campaignSharedSets/{campaign_shared_set}B\x0b\n\t_campaignB\r\n\x0b_shared_setB\x83\x02\n%com.google.ads.googleads.v5.resourcesB\x16\x43\x61mpaignSharedSetProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__shared__set__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNSHAREDSET = _descriptor.Descriptor( + name='CampaignSharedSet', + full_name='google.ads.googleads.v5.resources.CampaignSharedSet', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CampaignSharedSet.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A,\n*googleads.googleapis.com/CampaignSharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.CampaignSharedSet.campaign', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set', full_name='google.ads.googleads.v5.resources.CampaignSharedSet.shared_set', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/SharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.CampaignSharedSet.status', index=3, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ak\n*googleads.googleapis.com/CampaignSharedSet\022=customers/{customer}/campaignSharedSets/{campaign_shared_set}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.resources.CampaignSharedSet._campaign', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_shared_set', full_name='google.ads.googleads.v5.resources.CampaignSharedSet._shared_set', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=265, + serialized_end=739, +) + +_CAMPAIGNSHAREDSET.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_campaign__shared__set__status__pb2._CAMPAIGNSHAREDSETSTATUSENUM_CAMPAIGNSHAREDSETSTATUS +_CAMPAIGNSHAREDSET.oneofs_by_name['_campaign'].fields.append( + _CAMPAIGNSHAREDSET.fields_by_name['campaign']) +_CAMPAIGNSHAREDSET.fields_by_name['campaign'].containing_oneof = _CAMPAIGNSHAREDSET.oneofs_by_name['_campaign'] +_CAMPAIGNSHAREDSET.oneofs_by_name['_shared_set'].fields.append( + _CAMPAIGNSHAREDSET.fields_by_name['shared_set']) +_CAMPAIGNSHAREDSET.fields_by_name['shared_set'].containing_oneof = _CAMPAIGNSHAREDSET.oneofs_by_name['_shared_set'] +DESCRIPTOR.message_types_by_name['CampaignSharedSet'] = _CAMPAIGNSHAREDSET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignSharedSet = _reflection.GeneratedProtocolMessageType('CampaignSharedSet', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSHAREDSET, + '__module__' : 'google.ads.googleads_v5.proto.resources.campaign_shared_set_pb2' + , + '__doc__': """CampaignSharedSets are used for managing the shared sets associated + with a campaign. + + Attributes: + resource_name: + Immutable. The resource name of the campaign shared set. + Campaign shared set resource names have the form: ``customers + /{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id + }`` + campaign: + Immutable. The campaign to which the campaign shared set + belongs. + shared_set: + Immutable. The shared set associated with the campaign. This + may be a negative keyword shared set of another customer. This + customer should be a manager of the other customer, otherwise + the campaign shared set will exist but have no serving effect. + Only negative keyword shared sets can be associated with + Shopping campaigns. Only negative placement shared sets can be + associated with Display mobile app campaigns. + status: + Output only. The status of this campaign shared set. Read + only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CampaignSharedSet) + }) +_sym_db.RegisterMessage(CampaignSharedSet) + + +DESCRIPTOR._options = None +_CAMPAIGNSHAREDSET.fields_by_name['resource_name']._options = None +_CAMPAIGNSHAREDSET.fields_by_name['campaign']._options = None +_CAMPAIGNSHAREDSET.fields_by_name['shared_set']._options = None +_CAMPAIGNSHAREDSET.fields_by_name['status']._options = None +_CAMPAIGNSHAREDSET._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/campaign_shared_set_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2.py new file mode 100644 index 000000000..a68a07e26 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/carrier_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/carrier_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\024CarrierConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/resources/carrier_constant.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x9d\x02\n\x0f\x43\x61rrierConstant\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(googleads.googleapis.com/CarrierConstant\x12\x14\n\x02id\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x16\n\x04name\x18\x06 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1e\n\x0c\x63ountry_code\x18\x07 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01:R\xea\x41O\n(googleads.googleapis.com/CarrierConstant\x12#carrierConstants/{carrier_constant}B\x05\n\x03_idB\x07\n\x05_nameB\x0f\n\r_country_codeB\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14\x43\x61rrierConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CARRIERCONSTANT = _descriptor.Descriptor( + name='CarrierConstant', + full_name='google.ads.googleads.v5.resources.CarrierConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CarrierConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A*\n(googleads.googleapis.com/CarrierConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.CarrierConstant.id', index=1, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.CarrierConstant.name', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.resources.CarrierConstant.country_code', index=3, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AO\n(googleads.googleapis.com/CarrierConstant\022#carrierConstants/{carrier_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.CarrierConstant._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.CarrierConstant._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.resources.CarrierConstant._country_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=192, + serialized_end=477, +) + +_CARRIERCONSTANT.oneofs_by_name['_id'].fields.append( + _CARRIERCONSTANT.fields_by_name['id']) +_CARRIERCONSTANT.fields_by_name['id'].containing_oneof = _CARRIERCONSTANT.oneofs_by_name['_id'] +_CARRIERCONSTANT.oneofs_by_name['_name'].fields.append( + _CARRIERCONSTANT.fields_by_name['name']) +_CARRIERCONSTANT.fields_by_name['name'].containing_oneof = _CARRIERCONSTANT.oneofs_by_name['_name'] +_CARRIERCONSTANT.oneofs_by_name['_country_code'].fields.append( + _CARRIERCONSTANT.fields_by_name['country_code']) +_CARRIERCONSTANT.fields_by_name['country_code'].containing_oneof = _CARRIERCONSTANT.oneofs_by_name['_country_code'] +DESCRIPTOR.message_types_by_name['CarrierConstant'] = _CARRIERCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CarrierConstant = _reflection.GeneratedProtocolMessageType('CarrierConstant', (_message.Message,), { + 'DESCRIPTOR' : _CARRIERCONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.carrier_constant_pb2' + , + '__doc__': """A carrier criterion that can be used in campaign targeting. + + Attributes: + resource_name: + Output only. The resource name of the carrier criterion. + Carrier criterion resource names have the form: + ``carrierConstants/{criterion_id}`` + id: + Output only. The ID of the carrier criterion. + name: + Output only. The full name of the carrier in English. + country_code: + Output only. The country code of the country where the carrier + is located, e.g., "AR", "FR", etc. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CarrierConstant) + }) +_sym_db.RegisterMessage(CarrierConstant) + + +DESCRIPTOR._options = None +_CARRIERCONSTANT.fields_by_name['resource_name']._options = None +_CARRIERCONSTANT.fields_by_name['id']._options = None +_CARRIERCONSTANT.fields_by_name['name']._options = None +_CARRIERCONSTANT.fields_by_name['country_code']._options = None +_CARRIERCONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/carrier_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/change_status_pb2.py b/google/ads/google_ads/v5/proto/resources/change_status_pb2.py new file mode 100644 index 000000000..4b3973239 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/change_status_pb2.py @@ -0,0 +1,254 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/change_status.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import ad_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__type__pb2 +from google.ads.google_ads.v5.proto.enums import advertising_channel_sub_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2 +from google.ads.google_ads.v5.proto.enums import advertising_channel_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2 +from google.ads.google_ads.v5.proto.enums import change_status_operation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__operation__pb2 +from google.ads.google_ads.v5.proto.enums import change_status_resource_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__resource__type__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2 +from google.ads.google_ads.v5.proto.enums import feed_origin_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__origin__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/change_status.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021ChangeStatusProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/change_status.proto\x12!google.ads.googleads.v5.resources\x1a\x31google/ads/googleads_v5/proto/enums/ad_type.proto\x1a\x46google/ads/googleads_v5/proto/enums/advertising_channel_sub_type.proto\x1a\x42google/ads/googleads_v5/proto/enums/advertising_channel_type.proto\x1a\x41google/ads/googleads_v5/proto/enums/change_status_operation.proto\x1a\x45google/ads/googleads_v5/proto/enums/change_status_resource_type.proto\x1a\x38google/ads/googleads_v5/proto/enums/criterion_type.proto\x1a\x35google/ads/googleads_v5/proto/enums/feed_origin.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\x94\x0b\n\x0c\x43hangeStatus\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/ChangeStatus\x12@\n\x15last_change_date_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12p\n\rresource_type\x18\x04 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ChangeStatusResourceTypeEnum.ChangeStatusResourceTypeB\x03\xe0\x41\x03\x12@\n\x08\x63\x61mpaign\x18\x11 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x00\x88\x01\x01\x12?\n\x08\x61\x64_group\x18\x12 \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x01\x88\x01\x01\x12l\n\x0fresource_status\x18\x08 \x01(\x0e\x32N.google.ads.googleads.v5.enums.ChangeStatusOperationEnum.ChangeStatusOperationB\x03\xe0\x41\x03\x12]\n\x0b\x61\x64_group_ad\x18\t \x01(\x0b\x32\x1c.google.protobuf.StringValueB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\x12k\n\x12\x61\x64_group_criterion\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValueB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterion\x12l\n\x12\x63\x61mpaign_criterion\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValueB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/CampaignCriterion\x12Q\n\x04\x66\x65\x65\x64\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValueB%\xe0\x41\x03\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/Feed\x12Z\n\tfeed_item\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValueB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/FeedItem\x12\x61\n\rad_group_feed\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValueB,\xe0\x41\x03\xfa\x41&\n$googleads.googleapis.com/AdGroupFeed\x12\x62\n\rcampaign_feed\x18\x0f \x01(\x0b\x32\x1c.google.protobuf.StringValueB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/CampaignFeed\x12p\n\x15\x61\x64_group_bid_modifier\x18\x10 \x01(\x0b\x32\x1c.google.protobuf.StringValueB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/AdGroupBidModifier:]\xea\x41Z\n%googleads.googleapis.com/ChangeStatus\x12\x31\x63ustomers/{customer}/changeStatus/{change_status}B\x0b\n\t_campaignB\x0b\n\t_ad_groupB\xfe\x01\n%com.google.ads.googleads.v5.resourcesB\x11\x43hangeStatusProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_advertising__channel__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__operation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__resource__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__origin__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CHANGESTATUS = _descriptor.Descriptor( + name='ChangeStatus', + full_name='google.ads.googleads.v5.resources.ChangeStatus', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ChangeStatus.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\'\n%googleads.googleapis.com/ChangeStatus', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='last_change_date_time', full_name='google.ads.googleads.v5.resources.ChangeStatus.last_change_date_time', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_type', full_name='google.ads.googleads.v5.resources.ChangeStatus.resource_type', index=2, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.ChangeStatus.campaign', index=3, + number=17, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.ChangeStatus.ad_group', index=4, + number=18, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_status', full_name='google.ads.googleads.v5.resources.ChangeStatus.resource_status', index=5, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.resources.ChangeStatus.ad_group_ad', index=6, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.resources.ChangeStatus.ad_group_criterion', index=7, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A+\n)googleads.googleapis.com/AdGroupCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion', full_name='google.ads.googleads.v5.resources.ChangeStatus.campaign_criterion', index=8, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A,\n*googleads.googleapis.com/CampaignCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.resources.ChangeStatus.feed', index=9, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item', full_name='google.ads.googleads.v5.resources.ChangeStatus.feed_item', index=10, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/FeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed', full_name='google.ads.googleads.v5.resources.ChangeStatus.ad_group_feed', index=11, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A&\n$googleads.googleapis.com/AdGroupFeed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed', full_name='google.ads.googleads.v5.resources.ChangeStatus.campaign_feed', index=12, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\'\n%googleads.googleapis.com/CampaignFeed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier', full_name='google.ads.googleads.v5.resources.ChangeStatus.ad_group_bid_modifier', index=13, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A-\n+googleads.googleapis.com/AdGroupBidModifier', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AZ\n%googleads.googleapis.com/ChangeStatus\0221customers/{customer}/changeStatus/{change_status}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.resources.ChangeStatus._campaign', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group', full_name='google.ads.googleads.v5.resources.ChangeStatus._ad_group', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=663, + serialized_end=2091, +) + +_CHANGESTATUS.fields_by_name['last_change_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['resource_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__resource__type__pb2._CHANGESTATUSRESOURCETYPEENUM_CHANGESTATUSRESOURCETYPE +_CHANGESTATUS.fields_by_name['resource_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_change__status__operation__pb2._CHANGESTATUSOPERATIONENUM_CHANGESTATUSOPERATION +_CHANGESTATUS.fields_by_name['ad_group_ad'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['ad_group_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['campaign_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['feed'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['feed_item'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['ad_group_feed'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['campaign_feed'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.fields_by_name['ad_group_bid_modifier'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CHANGESTATUS.oneofs_by_name['_campaign'].fields.append( + _CHANGESTATUS.fields_by_name['campaign']) +_CHANGESTATUS.fields_by_name['campaign'].containing_oneof = _CHANGESTATUS.oneofs_by_name['_campaign'] +_CHANGESTATUS.oneofs_by_name['_ad_group'].fields.append( + _CHANGESTATUS.fields_by_name['ad_group']) +_CHANGESTATUS.fields_by_name['ad_group'].containing_oneof = _CHANGESTATUS.oneofs_by_name['_ad_group'] +DESCRIPTOR.message_types_by_name['ChangeStatus'] = _CHANGESTATUS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ChangeStatus = _reflection.GeneratedProtocolMessageType('ChangeStatus', (_message.Message,), { + 'DESCRIPTOR' : _CHANGESTATUS, + '__module__' : 'google.ads.googleads_v5.proto.resources.change_status_pb2' + , + '__doc__': """Describes the status of returned resource. + + Attributes: + resource_name: + Output only. The resource name of the change status. Change + status resource names have the form: + ``customers/{customer_id}/changeStatus/{change_status_id}`` + last_change_date_time: + Output only. Time at which the most recent change has occurred + on this resource. + resource_type: + Output only. Represents the type of the changed resource. This + dictates what fields will be set. For example, for AD\_GROUP, + campaign and ad\_group fields will be set. + campaign: + Output only. The Campaign affected by this change. + ad_group: + Output only. The AdGroup affected by this change. + resource_status: + Output only. Represents the status of the changed resource. + ad_group_ad: + Output only. The AdGroupAd affected by this change. + ad_group_criterion: + Output only. The AdGroupCriterion affected by this change. + campaign_criterion: + Output only. The CampaignCriterion affected by this change. + feed: + Output only. The Feed affected by this change. + feed_item: + Output only. The FeedItem affected by this change. + ad_group_feed: + Output only. The AdGroupFeed affected by this change. + campaign_feed: + Output only. The CampaignFeed affected by this change. + ad_group_bid_modifier: + Output only. The AdGroupBidModifier affected by this change. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ChangeStatus) + }) +_sym_db.RegisterMessage(ChangeStatus) + + +DESCRIPTOR._options = None +_CHANGESTATUS.fields_by_name['resource_name']._options = None +_CHANGESTATUS.fields_by_name['last_change_date_time']._options = None +_CHANGESTATUS.fields_by_name['resource_type']._options = None +_CHANGESTATUS.fields_by_name['campaign']._options = None +_CHANGESTATUS.fields_by_name['ad_group']._options = None +_CHANGESTATUS.fields_by_name['resource_status']._options = None +_CHANGESTATUS.fields_by_name['ad_group_ad']._options = None +_CHANGESTATUS.fields_by_name['ad_group_criterion']._options = None +_CHANGESTATUS.fields_by_name['campaign_criterion']._options = None +_CHANGESTATUS.fields_by_name['feed']._options = None +_CHANGESTATUS.fields_by_name['feed_item']._options = None +_CHANGESTATUS.fields_by_name['ad_group_feed']._options = None +_CHANGESTATUS.fields_by_name['campaign_feed']._options = None +_CHANGESTATUS.fields_by_name['ad_group_bid_modifier']._options = None +_CHANGESTATUS._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/change_status_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/change_status_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/change_status_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/click_view_pb2.py b/google/ads/google_ads/v5/proto/resources/click_view_pb2.py new file mode 100644 index 000000000..3684242ab --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/click_view_pb2.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/click_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import click_location_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_click__location__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/click_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\016ClickViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/resources/click_view.proto\x12!google.ads.googleads.v5.resources\x1a\x39google/ads/googleads_v5/proto/common/click_location.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xb6\x05\n\tClickView\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/ClickView\x12\x17\n\x05gclid\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12L\n\x10\x61rea_of_interest\x18\x03 \x01(\x0b\x32-.google.ads.googleads.v5.common.ClickLocationB\x03\xe0\x41\x03\x12P\n\x14location_of_presence\x18\x04 \x01(\x0b\x32-.google.ads.googleads.v5.common.ClickLocationB\x03\xe0\x41\x03\x12\x1d\n\x0bpage_number\x18\t \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x44\n\x0b\x61\x64_group_ad\x18\n \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"googleads.googleapis.com/AdGroupAdH\x02\x88\x01\x01\x12Y\n\x18\x63\x61mpaign_location_target\x18\x0b \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstantH\x03\x88\x01\x01\x12\x41\n\tuser_list\x18\x0c \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/UserListH\x04\x88\x01\x01:U\xea\x41R\n\"googleads.googleapis.com/ClickView\x12,customers/{customer}/clickViews/{click_view}B\x08\n\x06_gclidB\x0e\n\x0c_page_numberB\x0e\n\x0c_ad_group_adB\x1b\n\x19_campaign_location_targetB\x0c\n\n_user_listB\xfb\x01\n%com.google.ads.googleads.v5.resourcesB\x0e\x43lickViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_click__location__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CLICKVIEW = _descriptor.Descriptor( + name='ClickView', + full_name='google.ads.googleads.v5.resources.ClickView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ClickView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A$\n\"googleads.googleapis.com/ClickView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gclid', full_name='google.ads.googleads.v5.resources.ClickView.gclid', index=1, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='area_of_interest', full_name='google.ads.googleads.v5.resources.ClickView.area_of_interest', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_of_presence', full_name='google.ads.googleads.v5.resources.ClickView.location_of_presence', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_number', full_name='google.ads.googleads.v5.resources.ClickView.page_number', index=4, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.resources.ClickView.ad_group_ad', index=5, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_location_target', full_name='google.ads.googleads.v5.resources.ClickView.campaign_location_target', index=6, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.resources.ClickView.user_list', index=7, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/UserList', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AR\n\"googleads.googleapis.com/ClickView\022,customers/{customer}/clickViews/{click_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_gclid', full_name='google.ads.googleads.v5.resources.ClickView._gclid', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_page_number', full_name='google.ads.googleads.v5.resources.ClickView._page_number', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_ad_group_ad', full_name='google.ads.googleads.v5.resources.ClickView._ad_group_ad', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_campaign_location_target', full_name='google.ads.googleads.v5.resources.ClickView._campaign_location_target', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_user_list', full_name='google.ads.googleads.v5.resources.ClickView._user_list', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=245, + serialized_end=939, +) + +_CLICKVIEW.fields_by_name['area_of_interest'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_click__location__pb2._CLICKLOCATION +_CLICKVIEW.fields_by_name['location_of_presence'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_click__location__pb2._CLICKLOCATION +_CLICKVIEW.oneofs_by_name['_gclid'].fields.append( + _CLICKVIEW.fields_by_name['gclid']) +_CLICKVIEW.fields_by_name['gclid'].containing_oneof = _CLICKVIEW.oneofs_by_name['_gclid'] +_CLICKVIEW.oneofs_by_name['_page_number'].fields.append( + _CLICKVIEW.fields_by_name['page_number']) +_CLICKVIEW.fields_by_name['page_number'].containing_oneof = _CLICKVIEW.oneofs_by_name['_page_number'] +_CLICKVIEW.oneofs_by_name['_ad_group_ad'].fields.append( + _CLICKVIEW.fields_by_name['ad_group_ad']) +_CLICKVIEW.fields_by_name['ad_group_ad'].containing_oneof = _CLICKVIEW.oneofs_by_name['_ad_group_ad'] +_CLICKVIEW.oneofs_by_name['_campaign_location_target'].fields.append( + _CLICKVIEW.fields_by_name['campaign_location_target']) +_CLICKVIEW.fields_by_name['campaign_location_target'].containing_oneof = _CLICKVIEW.oneofs_by_name['_campaign_location_target'] +_CLICKVIEW.oneofs_by_name['_user_list'].fields.append( + _CLICKVIEW.fields_by_name['user_list']) +_CLICKVIEW.fields_by_name['user_list'].containing_oneof = _CLICKVIEW.oneofs_by_name['_user_list'] +DESCRIPTOR.message_types_by_name['ClickView'] = _CLICKVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ClickView = _reflection.GeneratedProtocolMessageType('ClickView', (_message.Message,), { + 'DESCRIPTOR' : _CLICKVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.click_view_pb2' + , + '__doc__': """A click view with metrics aggregated at each click level, including + both valid and invalid clicks. For non-Search campaigns, + metrics.clicks represents the number of valid and invalid + interactions. Queries including ClickView must have a filter limiting + the results to one day and can be requested for dates back to 90 days + before the time of the request. + + Attributes: + resource_name: + Output only. The resource name of the click view. Click view + resource names have the form: + ``customers/{customer_id}/clickViews/{date (yyyy-MM- + dd)}~{gclid}`` + gclid: + Output only. The Google Click ID. + area_of_interest: + Output only. The location criteria matching the area of + interest associated with the impression. + location_of_presence: + Output only. The location criteria matching the location of + presence associated with the impression. + page_number: + Output only. Page number in search results where the ad was + shown. + ad_group_ad: + Output only. The associated ad. + campaign_location_target: + Output only. The associated campaign location target, if one + exists. + user_list: + Output only. The associated user list, if one exists. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ClickView) + }) +_sym_db.RegisterMessage(ClickView) + + +DESCRIPTOR._options = None +_CLICKVIEW.fields_by_name['resource_name']._options = None +_CLICKVIEW.fields_by_name['gclid']._options = None +_CLICKVIEW.fields_by_name['area_of_interest']._options = None +_CLICKVIEW.fields_by_name['location_of_presence']._options = None +_CLICKVIEW.fields_by_name['page_number']._options = None +_CLICKVIEW.fields_by_name['ad_group_ad']._options = None +_CLICKVIEW.fields_by_name['campaign_location_target']._options = None +_CLICKVIEW.fields_by_name['user_list']._options = None +_CLICKVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/click_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/click_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/click_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/conversion_action_pb2.py b/google/ads/google_ads/v5/proto/resources/conversion_action_pb2.py new file mode 100644 index 000000000..f3a008830 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/conversion_action_pb2.py @@ -0,0 +1,639 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/conversion_action.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import tag_snippet_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_tag__snippet__pb2 +from google.ads.google_ads.v5.proto.enums import attribution_model_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_attribution__model__pb2 +from google.ads.google_ads.v5.proto.enums import conversion_action_category_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__category__pb2 +from google.ads.google_ads.v5.proto.enums import conversion_action_counting_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__counting__type__pb2 +from google.ads.google_ads.v5.proto.enums import conversion_action_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__status__pb2 +from google.ads.google_ads.v5.proto.enums import conversion_action_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__type__pb2 +from google.ads.google_ads.v5.proto.enums import data_driven_model_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_data__driven__model__status__pb2 +from google.ads.google_ads.v5.proto.enums import mobile_app_vendor_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mobile__app__vendor__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/conversion_action.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025ConversionActionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/conversion_action.proto\x12!google.ads.googleads.v5.resources\x1a\x36google/ads/googleads_v5/proto/common/tag_snippet.proto\x1a;google/ads/googleads_v5/proto/enums/attribution_model.proto\x1a\x44google/ads/googleads_v5/proto/enums/conversion_action_category.proto\x1aIgoogle/ads/googleads_v5/proto/enums/conversion_action_counting_type.proto\x1a\x42google/ads/googleads_v5/proto/enums/conversion_action_status.proto\x1a@google/ads/googleads_v5/proto/enums/conversion_action_type.proto\x1a\x42google/ads/googleads_v5/proto/enums/data_driven_model_status.proto\x1a;google/ads/googleads_v5/proto/enums/mobile_app_vendor.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x94\x12\n\x10\x43onversionAction\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x05\xfa\x41+\n)googleads.googleapis.com/ConversionAction\x12\x14\n\x02id\x18\x15 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x11\n\x04name\x18\x16 \x01(\tH\x01\x88\x01\x01\x12`\n\x06status\x18\x04 \x01(\x0e\x32P.google.ads.googleads.v5.enums.ConversionActionStatusEnum.ConversionActionStatus\x12_\n\x04type\x18\x05 \x01(\x0e\x32L.google.ads.googleads.v5.enums.ConversionActionTypeEnum.ConversionActionTypeB\x03\xe0\x41\x05\x12\x66\n\x08\x63\x61tegory\x18\x06 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ConversionActionCategoryEnum.ConversionActionCategory\x12 \n\x0eowner_customer\x18\x17 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12*\n\x1dinclude_in_conversions_metric\x18\x18 \x01(\x08H\x03\x88\x01\x01\x12/\n\"click_through_lookback_window_days\x18\x19 \x01(\x03H\x04\x88\x01\x01\x12.\n!view_through_lookback_window_days\x18\x1a \x01(\x03H\x05\x88\x01\x01\x12Y\n\x0evalue_settings\x18\x0b \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.ConversionAction.ValueSettings\x12s\n\rcounting_type\x18\x0c \x01(\x0e\x32\\.google.ads.googleads.v5.enums.ConversionActionCountingTypeEnum.ConversionActionCountingType\x12p\n\x1a\x61ttribution_model_settings\x18\r \x01(\x0b\x32L.google.ads.googleads.v5.resources.ConversionAction.AttributionModelSettings\x12\x45\n\x0ctag_snippets\x18\x0e \x03(\x0b\x32*.google.ads.googleads.v5.common.TagSnippetB\x03\xe0\x41\x03\x12(\n\x1bphone_call_duration_seconds\x18\x1b \x01(\x03H\x06\x88\x01\x01\x12\x13\n\x06\x61pp_id\x18\x1c \x01(\tH\x07\x88\x01\x01\x12\x62\n\x11mobile_app_vendor\x18\x11 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.MobileAppVendorEnum.MobileAppVendorB\x03\xe0\x41\x03\x12\x64\n\x11\x66irebase_settings\x18\x12 \x01(\x0b\x32\x44.google.ads.googleads.v5.resources.ConversionAction.FirebaseSettingsB\x03\xe0\x41\x03\x12\x83\x01\n\"third_party_app_analytics_settings\x18\x13 \x01(\x0b\x32R.google.ads.googleads.v5.resources.ConversionAction.ThirdPartyAppAnalyticsSettingsB\x03\xe0\x41\x03\x1a\xf2\x01\n\x18\x41ttributionModelSettings\x12_\n\x11\x61ttribution_model\x18\x01 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.AttributionModelEnum.AttributionModel\x12u\n\x18\x64\x61ta_driven_model_status\x18\x02 \x01(\x0e\x32N.google.ads.googleads.v5.enums.DataDrivenModelStatusEnum.DataDrivenModelStatusB\x03\xe0\x41\x03\x1a\xbf\x01\n\rValueSettings\x12\x1a\n\rdefault_value\x18\x04 \x01(\x01H\x00\x88\x01\x01\x12\"\n\x15\x64\x65\x66\x61ult_currency_code\x18\x05 \x01(\tH\x01\x88\x01\x01\x12%\n\x18\x61lways_use_default_value\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_default_valueB\x18\n\x16_default_currency_codeB\x1b\n\x19_always_use_default_value\x1al\n\x10\x46irebaseSettings\x12\x1c\n\nevent_name\x18\x03 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x1c\n\nproject_id\x18\x04 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\r\n\x0b_event_nameB\r\n\x0b_project_id\x1aM\n\x1eThirdPartyAppAnalyticsSettings\x12\x1c\n\nevent_name\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\r\n\x0b_event_name:j\xea\x41g\n)googleads.googleapis.com/ConversionAction\x12:customers/{customer}/conversionActions/{conversion_action}B\x05\n\x03_idB\x07\n\x05_nameB\x11\n\x0f_owner_customerB \n\x1e_include_in_conversions_metricB%\n#_click_through_lookback_window_daysB$\n\"_view_through_lookback_window_daysB\x1e\n\x1c_phone_call_duration_secondsB\t\n\x07_app_idB\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15\x43onversionActionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_tag__snippet__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_attribution__model__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__category__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__counting__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_data__driven__model__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mobile__app__vendor__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS = _descriptor.Descriptor( + name='AttributionModelSettings', + full_name='google.ads.googleads.v5.resources.ConversionAction.AttributionModelSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='attribution_model', full_name='google.ads.googleads.v5.resources.ConversionAction.AttributionModelSettings.attribution_model', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data_driven_model_status', full_name='google.ads.googleads.v5.resources.ConversionAction.AttributionModelSettings.data_driven_model_status', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2120, + serialized_end=2362, +) + +_CONVERSIONACTION_VALUESETTINGS = _descriptor.Descriptor( + name='ValueSettings', + full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='default_value', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings.default_value', index=0, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='default_currency_code', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings.default_currency_code', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='always_use_default_value', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings.always_use_default_value', index=2, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_default_value', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings._default_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_default_currency_code', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings._default_currency_code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_always_use_default_value', full_name='google.ads.googleads.v5.resources.ConversionAction.ValueSettings._always_use_default_value', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2365, + serialized_end=2556, +) + +_CONVERSIONACTION_FIREBASESETTINGS = _descriptor.Descriptor( + name='FirebaseSettings', + full_name='google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='event_name', full_name='google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings.event_name', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='project_id', full_name='google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings.project_id', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_event_name', full_name='google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings._event_name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_project_id', full_name='google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings._project_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2558, + serialized_end=2666, +) + +_CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS = _descriptor.Descriptor( + name='ThirdPartyAppAnalyticsSettings', + full_name='google.ads.googleads.v5.resources.ConversionAction.ThirdPartyAppAnalyticsSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='event_name', full_name='google.ads.googleads.v5.resources.ConversionAction.ThirdPartyAppAnalyticsSettings.event_name', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_event_name', full_name='google.ads.googleads.v5.resources.ConversionAction.ThirdPartyAppAnalyticsSettings._event_name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2668, + serialized_end=2745, +) + +_CONVERSIONACTION = _descriptor.Descriptor( + name='ConversionAction', + full_name='google.ads.googleads.v5.resources.ConversionAction', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ConversionAction.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A+\n)googleads.googleapis.com/ConversionAction', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.ConversionAction.id', index=1, + number=21, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.ConversionAction.name', index=2, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.ConversionAction.status', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.ConversionAction.type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='category', full_name='google.ads.googleads.v5.resources.ConversionAction.category', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='owner_customer', full_name='google.ads.googleads.v5.resources.ConversionAction.owner_customer', index=6, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='include_in_conversions_metric', full_name='google.ads.googleads.v5.resources.ConversionAction.include_in_conversions_metric', index=7, + number=24, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='click_through_lookback_window_days', full_name='google.ads.googleads.v5.resources.ConversionAction.click_through_lookback_window_days', index=8, + number=25, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='view_through_lookback_window_days', full_name='google.ads.googleads.v5.resources.ConversionAction.view_through_lookback_window_days', index=9, + number=26, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value_settings', full_name='google.ads.googleads.v5.resources.ConversionAction.value_settings', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='counting_type', full_name='google.ads.googleads.v5.resources.ConversionAction.counting_type', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribution_model_settings', full_name='google.ads.googleads.v5.resources.ConversionAction.attribution_model_settings', index=12, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tag_snippets', full_name='google.ads.googleads.v5.resources.ConversionAction.tag_snippets', index=13, + number=14, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='phone_call_duration_seconds', full_name='google.ads.googleads.v5.resources.ConversionAction.phone_call_duration_seconds', index=14, + number=27, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_id', full_name='google.ads.googleads.v5.resources.ConversionAction.app_id', index=15, + number=28, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_vendor', full_name='google.ads.googleads.v5.resources.ConversionAction.mobile_app_vendor', index=16, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='firebase_settings', full_name='google.ads.googleads.v5.resources.ConversionAction.firebase_settings', index=17, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='third_party_app_analytics_settings', full_name='google.ads.googleads.v5.resources.ConversionAction.third_party_app_analytics_settings', index=18, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS, _CONVERSIONACTION_VALUESETTINGS, _CONVERSIONACTION_FIREBASESETTINGS, _CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS, ], + enum_types=[ + ], + serialized_options=b'\352Ag\n)googleads.googleapis.com/ConversionAction\022:customers/{customer}/conversionActions/{conversion_action}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.ConversionAction._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.ConversionAction._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_owner_customer', full_name='google.ads.googleads.v5.resources.ConversionAction._owner_customer', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_include_in_conversions_metric', full_name='google.ads.googleads.v5.resources.ConversionAction._include_in_conversions_metric', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_click_through_lookback_window_days', full_name='google.ads.googleads.v5.resources.ConversionAction._click_through_lookback_window_days', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_view_through_lookback_window_days', full_name='google.ads.googleads.v5.resources.ConversionAction._view_through_lookback_window_days', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_phone_call_duration_seconds', full_name='google.ads.googleads.v5.resources.ConversionAction._phone_call_duration_seconds', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_app_id', full_name='google.ads.googleads.v5.resources.ConversionAction._app_id', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=718, + serialized_end=3042, +) + +_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS.fields_by_name['attribution_model'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_attribution__model__pb2._ATTRIBUTIONMODELENUM_ATTRIBUTIONMODEL +_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS.fields_by_name['data_driven_model_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_data__driven__model__status__pb2._DATADRIVENMODELSTATUSENUM_DATADRIVENMODELSTATUS +_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS.containing_type = _CONVERSIONACTION +_CONVERSIONACTION_VALUESETTINGS.containing_type = _CONVERSIONACTION +_CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_default_value'].fields.append( + _CONVERSIONACTION_VALUESETTINGS.fields_by_name['default_value']) +_CONVERSIONACTION_VALUESETTINGS.fields_by_name['default_value'].containing_oneof = _CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_default_value'] +_CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_default_currency_code'].fields.append( + _CONVERSIONACTION_VALUESETTINGS.fields_by_name['default_currency_code']) +_CONVERSIONACTION_VALUESETTINGS.fields_by_name['default_currency_code'].containing_oneof = _CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_default_currency_code'] +_CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_always_use_default_value'].fields.append( + _CONVERSIONACTION_VALUESETTINGS.fields_by_name['always_use_default_value']) +_CONVERSIONACTION_VALUESETTINGS.fields_by_name['always_use_default_value'].containing_oneof = _CONVERSIONACTION_VALUESETTINGS.oneofs_by_name['_always_use_default_value'] +_CONVERSIONACTION_FIREBASESETTINGS.containing_type = _CONVERSIONACTION +_CONVERSIONACTION_FIREBASESETTINGS.oneofs_by_name['_event_name'].fields.append( + _CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['event_name']) +_CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['event_name'].containing_oneof = _CONVERSIONACTION_FIREBASESETTINGS.oneofs_by_name['_event_name'] +_CONVERSIONACTION_FIREBASESETTINGS.oneofs_by_name['_project_id'].fields.append( + _CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['project_id']) +_CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['project_id'].containing_oneof = _CONVERSIONACTION_FIREBASESETTINGS.oneofs_by_name['_project_id'] +_CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.containing_type = _CONVERSIONACTION +_CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.oneofs_by_name['_event_name'].fields.append( + _CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.fields_by_name['event_name']) +_CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.fields_by_name['event_name'].containing_oneof = _CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.oneofs_by_name['_event_name'] +_CONVERSIONACTION.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__status__pb2._CONVERSIONACTIONSTATUSENUM_CONVERSIONACTIONSTATUS +_CONVERSIONACTION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__type__pb2._CONVERSIONACTIONTYPEENUM_CONVERSIONACTIONTYPE +_CONVERSIONACTION.fields_by_name['category'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__category__pb2._CONVERSIONACTIONCATEGORYENUM_CONVERSIONACTIONCATEGORY +_CONVERSIONACTION.fields_by_name['value_settings'].message_type = _CONVERSIONACTION_VALUESETTINGS +_CONVERSIONACTION.fields_by_name['counting_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__action__counting__type__pb2._CONVERSIONACTIONCOUNTINGTYPEENUM_CONVERSIONACTIONCOUNTINGTYPE +_CONVERSIONACTION.fields_by_name['attribution_model_settings'].message_type = _CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS +_CONVERSIONACTION.fields_by_name['tag_snippets'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_tag__snippet__pb2._TAGSNIPPET +_CONVERSIONACTION.fields_by_name['mobile_app_vendor'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mobile__app__vendor__pb2._MOBILEAPPVENDORENUM_MOBILEAPPVENDOR +_CONVERSIONACTION.fields_by_name['firebase_settings'].message_type = _CONVERSIONACTION_FIREBASESETTINGS +_CONVERSIONACTION.fields_by_name['third_party_app_analytics_settings'].message_type = _CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS +_CONVERSIONACTION.oneofs_by_name['_id'].fields.append( + _CONVERSIONACTION.fields_by_name['id']) +_CONVERSIONACTION.fields_by_name['id'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_id'] +_CONVERSIONACTION.oneofs_by_name['_name'].fields.append( + _CONVERSIONACTION.fields_by_name['name']) +_CONVERSIONACTION.fields_by_name['name'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_name'] +_CONVERSIONACTION.oneofs_by_name['_owner_customer'].fields.append( + _CONVERSIONACTION.fields_by_name['owner_customer']) +_CONVERSIONACTION.fields_by_name['owner_customer'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_owner_customer'] +_CONVERSIONACTION.oneofs_by_name['_include_in_conversions_metric'].fields.append( + _CONVERSIONACTION.fields_by_name['include_in_conversions_metric']) +_CONVERSIONACTION.fields_by_name['include_in_conversions_metric'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_include_in_conversions_metric'] +_CONVERSIONACTION.oneofs_by_name['_click_through_lookback_window_days'].fields.append( + _CONVERSIONACTION.fields_by_name['click_through_lookback_window_days']) +_CONVERSIONACTION.fields_by_name['click_through_lookback_window_days'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_click_through_lookback_window_days'] +_CONVERSIONACTION.oneofs_by_name['_view_through_lookback_window_days'].fields.append( + _CONVERSIONACTION.fields_by_name['view_through_lookback_window_days']) +_CONVERSIONACTION.fields_by_name['view_through_lookback_window_days'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_view_through_lookback_window_days'] +_CONVERSIONACTION.oneofs_by_name['_phone_call_duration_seconds'].fields.append( + _CONVERSIONACTION.fields_by_name['phone_call_duration_seconds']) +_CONVERSIONACTION.fields_by_name['phone_call_duration_seconds'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_phone_call_duration_seconds'] +_CONVERSIONACTION.oneofs_by_name['_app_id'].fields.append( + _CONVERSIONACTION.fields_by_name['app_id']) +_CONVERSIONACTION.fields_by_name['app_id'].containing_oneof = _CONVERSIONACTION.oneofs_by_name['_app_id'] +DESCRIPTOR.message_types_by_name['ConversionAction'] = _CONVERSIONACTION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ConversionAction = _reflection.GeneratedProtocolMessageType('ConversionAction', (_message.Message,), { + + 'AttributionModelSettings' : _reflection.GeneratedProtocolMessageType('AttributionModelSettings', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS, + '__module__' : 'google.ads.googleads_v5.proto.resources.conversion_action_pb2' + , + '__doc__': """Settings related to this conversion action's attribution model. + + Attributes: + attribution_model: + The attribution model type of this conversion action. + data_driven_model_status: + Output only. The status of the data-driven attribution model + for the conversion action. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionAction.AttributionModelSettings) + }) + , + + 'ValueSettings' : _reflection.GeneratedProtocolMessageType('ValueSettings', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTION_VALUESETTINGS, + '__module__' : 'google.ads.googleads_v5.proto.resources.conversion_action_pb2' + , + '__doc__': """Settings related to the value for conversion events associated with + this conversion action. + + Attributes: + default_value: + The value to use when conversion events for this conversion + action are sent with an invalid, disallowed or missing value, + or when this conversion action is configured to always use the + default value. + default_currency_code: + The currency code to use when conversion events for this + conversion action are sent with an invalid or missing currency + code, or when this conversion action is configured to always + use the default value. + always_use_default_value: + Controls whether the default value and default currency code + are used in place of the value and currency code specified in + conversion events for this conversion action. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionAction.ValueSettings) + }) + , + + 'FirebaseSettings' : _reflection.GeneratedProtocolMessageType('FirebaseSettings', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTION_FIREBASESETTINGS, + '__module__' : 'google.ads.googleads_v5.proto.resources.conversion_action_pb2' + , + '__doc__': """Settings related to a Firebase conversion action. + + Attributes: + event_name: + Output only. The event name of a Firebase conversion. + project_id: + Output only. The Firebase project ID of the conversion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionAction.FirebaseSettings) + }) + , + + 'ThirdPartyAppAnalyticsSettings' : _reflection.GeneratedProtocolMessageType('ThirdPartyAppAnalyticsSettings', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS, + '__module__' : 'google.ads.googleads_v5.proto.resources.conversion_action_pb2' + , + '__doc__': """Settings related to a third party app analytics conversion action. + + Attributes: + event_name: + Output only. The event name of a third-party app analytics + conversion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionAction.ThirdPartyAppAnalyticsSettings) + }) + , + 'DESCRIPTOR' : _CONVERSIONACTION, + '__module__' : 'google.ads.googleads_v5.proto.resources.conversion_action_pb2' + , + '__doc__': """A conversion action. + + Attributes: + resource_name: + Immutable. The resource name of the conversion action. + Conversion action resource names have the form: ``customers/{ + customer_id}/conversionActions/{conversion_action_id}`` + id: + Output only. The ID of the conversion action. + name: + The name of the conversion action. This field is required and + should not be empty when creating new conversion actions. + status: + The status of this conversion action for conversion event + accrual. + type: + Immutable. The type of this conversion action. + category: + The category of conversions reported for this conversion + action. + owner_customer: + Output only. The resource name of the conversion action owner + customer, or null if this is a system-defined conversion + action. + include_in_conversions_metric: + Whether this conversion action should be included in the + "conversions" metric. + click_through_lookback_window_days: + The maximum number of days that may elapse between an + interaction (e.g., a click) and a conversion event. + view_through_lookback_window_days: + The maximum number of days which may elapse between an + impression and a conversion without an interaction. + value_settings: + Settings related to the value for conversion events associated + with this conversion action. + counting_type: + How to count conversion events for the conversion action. + attribution_model_settings: + Settings related to this conversion action's attribution + model. + tag_snippets: + Output only. The snippets used for tracking conversions. + phone_call_duration_seconds: + The phone call duration in seconds after which a conversion + should be reported for this conversion action. The value must + be between 0 and 10000, inclusive. + app_id: + App ID for an app conversion action. + mobile_app_vendor: + Output only. Mobile app vendor for an app conversion action. + firebase_settings: + Output only. Firebase settings for Firebase conversion types. + third_party_app_analytics_settings: + Output only. Third Party App Analytics settings for third + party conversion types. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionAction) + }) +_sym_db.RegisterMessage(ConversionAction) +_sym_db.RegisterMessage(ConversionAction.AttributionModelSettings) +_sym_db.RegisterMessage(ConversionAction.ValueSettings) +_sym_db.RegisterMessage(ConversionAction.FirebaseSettings) +_sym_db.RegisterMessage(ConversionAction.ThirdPartyAppAnalyticsSettings) + + +DESCRIPTOR._options = None +_CONVERSIONACTION_ATTRIBUTIONMODELSETTINGS.fields_by_name['data_driven_model_status']._options = None +_CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['event_name']._options = None +_CONVERSIONACTION_FIREBASESETTINGS.fields_by_name['project_id']._options = None +_CONVERSIONACTION_THIRDPARTYAPPANALYTICSSETTINGS.fields_by_name['event_name']._options = None +_CONVERSIONACTION.fields_by_name['resource_name']._options = None +_CONVERSIONACTION.fields_by_name['id']._options = None +_CONVERSIONACTION.fields_by_name['type']._options = None +_CONVERSIONACTION.fields_by_name['owner_customer']._options = None +_CONVERSIONACTION.fields_by_name['tag_snippets']._options = None +_CONVERSIONACTION.fields_by_name['mobile_app_vendor']._options = None +_CONVERSIONACTION.fields_by_name['firebase_settings']._options = None +_CONVERSIONACTION.fields_by_name['third_party_app_analytics_settings']._options = None +_CONVERSIONACTION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/conversion_action_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/conversion_action_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/conversion_action_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/currency_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/currency_constant_pb2.py new file mode 100644 index 000000000..ece0d33a0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/currency_constant_pb2.py @@ -0,0 +1,160 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/currency_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/currency_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025CurrencyConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/currency_constant.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xdb\x02\n\x10\x43urrencyConstant\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/CurrencyConstant\x12\x16\n\x04\x63ode\x18\x06 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x16\n\x04name\x18\x07 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x18\n\x06symbol\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12&\n\x14\x62illable_unit_micros\x18\t \x01(\x03\x42\x03\xe0\x41\x03H\x03\x88\x01\x01:U\xea\x41R\n)googleads.googleapis.com/CurrencyConstant\x12%currencyConstants/{currency_constant}B\x07\n\x05_codeB\x07\n\x05_nameB\t\n\x07_symbolB\x17\n\x15_billable_unit_microsB\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15\x43urrencyConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CURRENCYCONSTANT = _descriptor.Descriptor( + name='CurrencyConstant', + full_name='google.ads.googleads.v5.resources.CurrencyConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CurrencyConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A+\n)googleads.googleapis.com/CurrencyConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='code', full_name='google.ads.googleads.v5.resources.CurrencyConstant.code', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.CurrencyConstant.name', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='symbol', full_name='google.ads.googleads.v5.resources.CurrencyConstant.symbol', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='billable_unit_micros', full_name='google.ads.googleads.v5.resources.CurrencyConstant.billable_unit_micros', index=4, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AR\n)googleads.googleapis.com/CurrencyConstant\022%currencyConstants/{currency_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_code', full_name='google.ads.googleads.v5.resources.CurrencyConstant._code', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.CurrencyConstant._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_symbol', full_name='google.ads.googleads.v5.resources.CurrencyConstant._symbol', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_billable_unit_micros', full_name='google.ads.googleads.v5.resources.CurrencyConstant._billable_unit_micros', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=193, + serialized_end=540, +) + +_CURRENCYCONSTANT.oneofs_by_name['_code'].fields.append( + _CURRENCYCONSTANT.fields_by_name['code']) +_CURRENCYCONSTANT.fields_by_name['code'].containing_oneof = _CURRENCYCONSTANT.oneofs_by_name['_code'] +_CURRENCYCONSTANT.oneofs_by_name['_name'].fields.append( + _CURRENCYCONSTANT.fields_by_name['name']) +_CURRENCYCONSTANT.fields_by_name['name'].containing_oneof = _CURRENCYCONSTANT.oneofs_by_name['_name'] +_CURRENCYCONSTANT.oneofs_by_name['_symbol'].fields.append( + _CURRENCYCONSTANT.fields_by_name['symbol']) +_CURRENCYCONSTANT.fields_by_name['symbol'].containing_oneof = _CURRENCYCONSTANT.oneofs_by_name['_symbol'] +_CURRENCYCONSTANT.oneofs_by_name['_billable_unit_micros'].fields.append( + _CURRENCYCONSTANT.fields_by_name['billable_unit_micros']) +_CURRENCYCONSTANT.fields_by_name['billable_unit_micros'].containing_oneof = _CURRENCYCONSTANT.oneofs_by_name['_billable_unit_micros'] +DESCRIPTOR.message_types_by_name['CurrencyConstant'] = _CURRENCYCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CurrencyConstant = _reflection.GeneratedProtocolMessageType('CurrencyConstant', (_message.Message,), { + 'DESCRIPTOR' : _CURRENCYCONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.currency_constant_pb2' + , + '__doc__': """A currency constant. + + Attributes: + resource_name: + Output only. The resource name of the currency constant. + Currency constant resource names have the form: + ``currencyConstants/{currency_code}`` + code: + Output only. ISO 4217 three-letter currency code, e.g. "USD" + name: + Output only. Full English name of the currency. + symbol: + Output only. Standard symbol for describing this currency, + e.g. '$' for US Dollars. + billable_unit_micros: + Output only. The billable unit for this currency. Billed + amounts should be multiples of this value. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CurrencyConstant) + }) +_sym_db.RegisterMessage(CurrencyConstant) + + +DESCRIPTOR._options = None +_CURRENCYCONSTANT.fields_by_name['resource_name']._options = None +_CURRENCYCONSTANT.fields_by_name['code']._options = None +_CURRENCYCONSTANT.fields_by_name['name']._options = None +_CURRENCYCONSTANT.fields_by_name['symbol']._options = None +_CURRENCYCONSTANT.fields_by_name['billable_unit_micros']._options = None +_CURRENCYCONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/currency_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/currency_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/currency_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/custom_interest_pb2.py b/google/ads/google_ads/v5/proto/resources/custom_interest_pb2.py new file mode 100644 index 000000000..02317dc20 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/custom_interest_pb2.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/custom_interest.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import custom_interest_member_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__member__type__pb2 +from google.ads.google_ads.v5.proto.enums import custom_interest_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__status__pb2 +from google.ads.google_ads.v5.proto.enums import custom_interest_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/custom_interest.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023CustomInterestProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/resources/custom_interest.proto\x12!google.ads.googleads.v5.resources\x1a\x45google/ads/googleads_v5/proto/enums/custom_interest_member_type.proto\x1a@google/ads/googleads_v5/proto/enums/custom_interest_status.proto\x1a>google/ads/googleads_v5/proto/enums/custom_interest_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xcb\x04\n\x0e\x43ustomInterest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x05\xfa\x41)\n\'googleads.googleapis.com/CustomInterest\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\\\n\x06status\x18\x03 \x01(\x0e\x32L.google.ads.googleads.v5.enums.CustomInterestStatusEnum.CustomInterestStatus\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12V\n\x04type\x18\x05 \x01(\x0e\x32H.google.ads.googleads.v5.enums.CustomInterestTypeEnum.CustomInterestType\x12\x31\n\x0b\x64\x65scription\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12H\n\x07members\x18\x07 \x03(\x0b\x32\x37.google.ads.googleads.v5.resources.CustomInterestMember:d\xea\x41\x61\n\'googleads.googleapis.com/CustomInterest\x12\x36\x63ustomers/{customer}/customInterests/{custom_interest}\"\xb2\x01\n\x14\x43ustomInterestMember\x12i\n\x0bmember_type\x18\x01 \x01(\x0e\x32T.google.ads.googleads.v5.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType\x12/\n\tparameter\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x43ustomInterestProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__member__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMINTEREST = _descriptor.Descriptor( + name='CustomInterest', + full_name='google.ads.googleads.v5.resources.CustomInterest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CustomInterest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A)\n\'googleads.googleapis.com/CustomInterest', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.CustomInterest.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.CustomInterest.status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.CustomInterest.name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.CustomInterest.type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.resources.CustomInterest.description', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='members', full_name='google.ads.googleads.v5.resources.CustomInterest.members', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Aa\n\'googleads.googleapis.com/CustomInterest\0226customers/{customer}/customInterests/{custom_interest}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=424, + serialized_end=1011, +) + + +_CUSTOMINTERESTMEMBER = _descriptor.Descriptor( + name='CustomInterestMember', + full_name='google.ads.googleads.v5.resources.CustomInterestMember', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='member_type', full_name='google.ads.googleads.v5.resources.CustomInterestMember.member_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parameter', full_name='google.ads.googleads.v5.resources.CustomInterestMember.parameter', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1014, + serialized_end=1192, +) + +_CUSTOMINTEREST.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CUSTOMINTEREST.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__status__pb2._CUSTOMINTERESTSTATUSENUM_CUSTOMINTERESTSTATUS +_CUSTOMINTEREST.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMINTEREST.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__type__pb2._CUSTOMINTERESTTYPEENUM_CUSTOMINTERESTTYPE +_CUSTOMINTEREST.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMINTEREST.fields_by_name['members'].message_type = _CUSTOMINTERESTMEMBER +_CUSTOMINTERESTMEMBER.fields_by_name['member_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__interest__member__type__pb2._CUSTOMINTERESTMEMBERTYPEENUM_CUSTOMINTERESTMEMBERTYPE +_CUSTOMINTERESTMEMBER.fields_by_name['parameter'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['CustomInterest'] = _CUSTOMINTEREST +DESCRIPTOR.message_types_by_name['CustomInterestMember'] = _CUSTOMINTERESTMEMBER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomInterest = _reflection.GeneratedProtocolMessageType('CustomInterest', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTEREST, + '__module__' : 'google.ads.googleads_v5.proto.resources.custom_interest_pb2' + , + '__doc__': """A custom interest. This is a list of users by interest. + + Attributes: + resource_name: + Immutable. The resource name of the custom interest. Custom + interest resource names have the form: ``customers/{customer_ + id}/customInterests/{custom_interest_id}`` + id: + Output only. Id of the custom interest. + status: + Status of this custom interest. Indicates whether the custom + interest is enabled or removed. + name: + Name of the custom interest. It should be unique across the + same custom affinity audience. This field is required for + create operations. + type: + Type of the custom interest, CUSTOM\_AFFINITY or + CUSTOM\_INTENT. By default the type is set to + CUSTOM\_AFFINITY. + description: + Description of this custom interest audience. + members: + List of custom interest members that this custom interest is + composed of. Members can be added during CustomInterest + creation. If members are presented in UPDATE operation, + existing members will be overridden. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomInterest) + }) +_sym_db.RegisterMessage(CustomInterest) + +CustomInterestMember = _reflection.GeneratedProtocolMessageType('CustomInterestMember', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTERESTMEMBER, + '__module__' : 'google.ads.googleads_v5.proto.resources.custom_interest_pb2' + , + '__doc__': """A member of custom interest audience. A member can be a keyword or + url. It is immutable, that is, it can only be created or removed but + not changed. + + Attributes: + member_type: + The type of custom interest member, KEYWORD or URL. + parameter: + Keyword text when member\_type is KEYWORD or URL string when + member\_type is URL. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomInterestMember) + }) +_sym_db.RegisterMessage(CustomInterestMember) + + +DESCRIPTOR._options = None +_CUSTOMINTEREST.fields_by_name['resource_name']._options = None +_CUSTOMINTEREST.fields_by_name['id']._options = None +_CUSTOMINTEREST._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/custom_interest_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/custom_interest_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/custom_interest_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2.py b/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2.py new file mode 100644 index 000000000..0e833ec71 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/customer_client_link.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import manager_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_manager__link__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/customer_client_link.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\027CustomerClientLinkProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/resources/customer_client_link.proto\x12!google.ads.googleads.v5.resources\x1a=google/ads/googleads_v5/proto/enums/manager_link_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xce\x03\n\x12\x43ustomerClientLink\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x05\xfa\x41-\n+googleads.googleapis.com/CustomerClientLink\x12:\n\x0f\x63lient_customer\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x05\x12\x39\n\x0fmanager_link_id\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12V\n\x06status\x18\x05 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.ManagerLinkStatusEnum.ManagerLinkStatus\x12*\n\x06hidden\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue:q\xea\x41n\n+googleads.googleapis.com/CustomerClientLink\x12?customers/{customer}/customerClientLinks/{customer_client_link}B\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17\x43ustomerClientLinkProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_manager__link__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMERCLIENTLINK = _descriptor.Descriptor( + name='CustomerClientLink', + full_name='google.ads.googleads.v5.resources.CustomerClientLink', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CustomerClientLink.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A-\n+googleads.googleapis.com/CustomerClientLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='client_customer', full_name='google.ads.googleads.v5.resources.CustomerClientLink.client_customer', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manager_link_id', full_name='google.ads.googleads.v5.resources.CustomerClientLink.manager_link_id', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.CustomerClientLink.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hidden', full_name='google.ads.googleads.v5.resources.CustomerClientLink.hidden', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352An\n+googleads.googleapis.com/CustomerClientLink\022?customers/{customer}/customerClientLinks/{customer_client_link}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=291, + serialized_end=753, +) + +_CUSTOMERCLIENTLINK.fields_by_name['client_customer'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMERCLIENTLINK.fields_by_name['manager_link_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CUSTOMERCLIENTLINK.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_manager__link__status__pb2._MANAGERLINKSTATUSENUM_MANAGERLINKSTATUS +_CUSTOMERCLIENTLINK.fields_by_name['hidden'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +DESCRIPTOR.message_types_by_name['CustomerClientLink'] = _CUSTOMERCLIENTLINK +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerClientLink = _reflection.GeneratedProtocolMessageType('CustomerClientLink', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERCLIENTLINK, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_client_link_pb2' + , + '__doc__': """Represents customer client link relationship. + + Attributes: + resource_name: + Immutable. Name of the resource. CustomerClientLink resource + names have the form: ``customers/{customer_id}/customerClientL + inks/{client_customer_id}~{manager_link_id}`` + client_customer: + Immutable. The client customer linked to this customer. + manager_link_id: + Output only. This is uniquely identifies a customer client + link. Read only. + status: + This is the status of the link between client and manager. + hidden: + The visibility of the link. Users can choose whether or not to + see hidden links in the Google Ads UI. Default value is false + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomerClientLink) + }) +_sym_db.RegisterMessage(CustomerClientLink) + + +DESCRIPTOR._options = None +_CUSTOMERCLIENTLINK.fields_by_name['resource_name']._options = None +_CUSTOMERCLIENTLINK.fields_by_name['client_customer']._options = None +_CUSTOMERCLIENTLINK.fields_by_name['manager_link_id']._options = None +_CUSTOMERCLIENTLINK._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_client_link_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/customer_client_pb2.py b/google/ads/google_ads/v5/proto/resources/customer_client_pb2.py new file mode 100644 index 000000000..d4e889883 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_client_pb2.py @@ -0,0 +1,196 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/customer_client.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/customer_client.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023CustomerClientProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/resources/customer_client.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xa0\x05\n\x0e\x43ustomerClient\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/CustomerClient\x12:\n\x0f\x63lient_customer\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12/\n\x06hidden\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03\x12/\n\x05level\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x34\n\ttime_zone\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x35\n\x0ctest_account\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03\x12\x30\n\x07manager\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03\x12;\n\x10\x64\x65scriptive_name\x18\t \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x38\n\rcurrency_code\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12,\n\x02id\x18\x0b \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03:d\xea\x41\x61\n\'googleads.googleapis.com/CustomerClient\x12\x36\x63ustomers/{customer}/customerClients/{customer_client}B\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x43ustomerClientProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMERCLIENT = _descriptor.Descriptor( + name='CustomerClient', + full_name='google.ads.googleads.v5.resources.CustomerClient', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CustomerClient.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/CustomerClient', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='client_customer', full_name='google.ads.googleads.v5.resources.CustomerClient.client_customer', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hidden', full_name='google.ads.googleads.v5.resources.CustomerClient.hidden', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='level', full_name='google.ads.googleads.v5.resources.CustomerClient.level', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_zone', full_name='google.ads.googleads.v5.resources.CustomerClient.time_zone', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='test_account', full_name='google.ads.googleads.v5.resources.CustomerClient.test_account', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manager', full_name='google.ads.googleads.v5.resources.CustomerClient.manager', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptive_name', full_name='google.ads.googleads.v5.resources.CustomerClient.descriptive_name', index=7, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.resources.CustomerClient.currency_code', index=8, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.CustomerClient.id', index=9, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Aa\n\'googleads.googleapis.com/CustomerClient\0226customers/{customer}/customerClients/{customer_client}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=223, + serialized_end=895, +) + +_CUSTOMERCLIENT.fields_by_name['client_customer'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMERCLIENT.fields_by_name['hidden'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CUSTOMERCLIENT.fields_by_name['level'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CUSTOMERCLIENT.fields_by_name['time_zone'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMERCLIENT.fields_by_name['test_account'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CUSTOMERCLIENT.fields_by_name['manager'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CUSTOMERCLIENT.fields_by_name['descriptive_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMERCLIENT.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMERCLIENT.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['CustomerClient'] = _CUSTOMERCLIENT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerClient = _reflection.GeneratedProtocolMessageType('CustomerClient', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERCLIENT, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_client_pb2' + , + '__doc__': """A link between the given customer and a client customer. + CustomerClients only exist for manager customers. All direct and + indirect client customers are included, as well as the manager itself. + + Attributes: + resource_name: + Output only. The resource name of the customer client. + CustomerClient resource names have the form: ``customers/{cust + omer_id}/customerClients/{client_customer_id}`` + client_customer: + Output only. The resource name of the client-customer which is + linked to the given customer. Read only. + hidden: + Output only. Specifies whether this is a `hidden account + `__. + Read only. + level: + Output only. Distance between given customer and client. For + self link, the level value will be 0. Read only. + time_zone: + Output only. Common Locale Data Repository (CLDR) string + representation of the time zone of the client, e.g. + America/Los\_Angeles. Read only. + test_account: + Output only. Identifies if the client is a test account. Read + only. + manager: + Output only. Identifies if the client is a manager. Read only. + descriptive_name: + Output only. Descriptive name for the client. Read only. + currency_code: + Output only. Currency code (e.g. 'USD', 'EUR') for the client. + Read only. + id: + Output only. The ID of the client customer. Read only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomerClient) + }) +_sym_db.RegisterMessage(CustomerClient) + + +DESCRIPTOR._options = None +_CUSTOMERCLIENT.fields_by_name['resource_name']._options = None +_CUSTOMERCLIENT.fields_by_name['client_customer']._options = None +_CUSTOMERCLIENT.fields_by_name['hidden']._options = None +_CUSTOMERCLIENT.fields_by_name['level']._options = None +_CUSTOMERCLIENT.fields_by_name['time_zone']._options = None +_CUSTOMERCLIENT.fields_by_name['test_account']._options = None +_CUSTOMERCLIENT.fields_by_name['manager']._options = None +_CUSTOMERCLIENT.fields_by_name['descriptive_name']._options = None +_CUSTOMERCLIENT.fields_by_name['currency_code']._options = None +_CUSTOMERCLIENT.fields_by_name['id']._options = None +_CUSTOMERCLIENT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/customer_client_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/customer_client_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_client_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2.py b/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2.py new file mode 100644 index 000000000..0d4c9aa3b --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/customer_extension_setting.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import extension_setting_device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2 +from google.ads.google_ads.v5.proto.enums import extension_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/customer_extension_setting.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\035CustomerExtensionSettingProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/resources/customer_extension_setting.proto\x12!google.ads.googleads.v5.resources\x1a\x42google/ads/googleads_v5/proto/enums/extension_setting_device.proto\x1a\x38google/ads/googleads_v5/proto/enums/extension_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\x9f\x04\n\x18\x43ustomerExtensionSetting\x12P\n\rresource_name\x18\x01 \x01(\tB9\xe0\x41\x05\xfa\x41\x33\n1googleads.googleapis.com/CustomerExtensionSetting\x12[\n\x0e\x65xtension_type\x18\x02 \x01(\x0e\x32>.google.ads.googleads.v5.enums.ExtensionTypeEnum.ExtensionTypeB\x03\xe0\x41\x05\x12k\n\x14\x65xtension_feed_items\x18\x03 \x03(\x0b\x32\x1c.google.protobuf.StringValueB/\xfa\x41,\n*googleads.googleapis.com/ExtensionFeedItem\x12`\n\x06\x64\x65vice\x18\x04 \x01(\x0e\x32P.google.ads.googleads.v5.enums.ExtensionSettingDeviceEnum.ExtensionSettingDevice:\x84\x01\xea\x41\x80\x01\n1googleads.googleapis.com/CustomerExtensionSetting\x12Kcustomers/{customer}/customerExtensionSettings/{customer_extension_setting}B\x8a\x02\n%com.google.ads.googleads.v5.resourcesB\x1d\x43ustomerExtensionSettingProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMEREXTENSIONSETTING = _descriptor.Descriptor( + name='CustomerExtensionSetting', + full_name='google.ads.googleads.v5.resources.CustomerExtensionSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CustomerExtensionSetting.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A3\n1googleads.googleapis.com/CustomerExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_type', full_name='google.ads.googleads.v5.resources.CustomerExtensionSetting.extension_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_items', full_name='google.ads.googleads.v5.resources.CustomerExtensionSetting.extension_feed_items', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A,\n*googleads.googleapis.com/ExtensionFeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.CustomerExtensionSetting.device', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\200\001\n1googleads.googleapis.com/CustomerExtensionSetting\022Kcustomers/{customer}/customerExtensionSettings/{customer_extension_setting}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=360, + serialized_end=903, +) + +_CUSTOMEREXTENSIONSETTING.fields_by_name['extension_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2._EXTENSIONTYPEENUM_EXTENSIONTYPE +_CUSTOMEREXTENSIONSETTING.fields_by_name['extension_feed_items'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMEREXTENSIONSETTING.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__setting__device__pb2._EXTENSIONSETTINGDEVICEENUM_EXTENSIONSETTINGDEVICE +DESCRIPTOR.message_types_by_name['CustomerExtensionSetting'] = _CUSTOMEREXTENSIONSETTING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerExtensionSetting = _reflection.GeneratedProtocolMessageType('CustomerExtensionSetting', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMEREXTENSIONSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_extension_setting_pb2' + , + '__doc__': """A customer extension setting. + + Attributes: + resource_name: + Immutable. The resource name of the customer extension + setting. CustomerExtensionSetting resource names have the + form: ``customers/{customer_id}/customerExtensionSettings/{ex + tension_type}`` + extension_type: + Immutable. The extension type of the customer extension + setting. + extension_feed_items: + The resource names of the extension feed items to serve under + the customer. ExtensionFeedItem resource names have the form: + ``customers/{customer_id}/extensionFeedItems/{feed_item_id}`` + device: + The device for which the extensions will serve. Optional. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomerExtensionSetting) + }) +_sym_db.RegisterMessage(CustomerExtensionSetting) + + +DESCRIPTOR._options = None +_CUSTOMEREXTENSIONSETTING.fields_by_name['resource_name']._options = None +_CUSTOMEREXTENSIONSETTING.fields_by_name['extension_type']._options = None +_CUSTOMEREXTENSIONSETTING.fields_by_name['extension_feed_items']._options = None +_CUSTOMEREXTENSIONSETTING._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_extension_setting_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/customer_feed_pb2.py b/google/ads/google_ads/v5/proto/resources/customer_feed_pb2.py new file mode 100644 index 000000000..3443d3dd4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_feed_pb2.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/customer_feed.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import matching_function_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_matching__function__pb2 +from google.ads.google_ads.v5.proto.enums import feed_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__link__status__pb2 +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/customer_feed.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021CustomerFeedProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/customer_feed.proto\x12!google.ads.googleads.v5.resources\x1a.google.ads.googleads.v5.enums.CriterionTypeEnum.CriterionTypeB\x03\xe0\x41\x03\x12N\n\rcontent_label\x18\x04 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.ContentLabelInfoB\x03\xe0\x41\x05H\x00\x12X\n\x12mobile_application\x18\x05 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileApplicationInfoB\x03\xe0\x41\x05H\x00\x12Y\n\x13mobile_app_category\x18\x06 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileAppCategoryInfoB\x03\xe0\x41\x05H\x00\x12G\n\tplacement\x18\x07 \x01(\x0b\x32-.google.ads.googleads.v5.common.PlacementInfoB\x03\xe0\x41\x05H\x00\x12N\n\ryoutube_video\x18\x08 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.YouTubeVideoInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fyoutube_channel\x18\t \x01(\x0b\x32\x32.google.ads.googleads.v5.common.YouTubeChannelInfoB\x03\xe0\x41\x05H\x00:\x85\x01\xea\x41\x81\x01\n2googleads.googleapis.com/CustomerNegativeCriterion\x12Kcustomers/{customer}/customerNegativeCriteria/{customer_negative_criterion}B\x0b\n\tcriterionB\x05\n\x03_idB\x8b\x02\n%com.google.ads.googleads.v5.resourcesB\x1e\x43ustomerNegativeCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMERNEGATIVECRITERION = _descriptor.Descriptor( + name='CustomerNegativeCriterion', + full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A4\n2googleads.googleapis.com/CustomerNegativeCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.id', index=1, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='content_label', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.content_label', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_application', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.mobile_application', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_category', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.mobile_app_category', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.placement', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.youtube_video', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_channel', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.youtube_channel', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\201\001\n2googleads.googleapis.com/CustomerNegativeCriterion\022Kcustomers/{customer}/customerNegativeCriteria/{customer_negative_criterion}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion.criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.CustomerNegativeCriterion._id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=314, + serialized_end=1183, +) + +_CUSTOMERNEGATIVECRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_CUSTOMERNEGATIVECRITERION.fields_by_name['content_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._CONTENTLABELINFO +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_application'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPLICATIONINFO +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_app_category'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPCATEGORYINFO +_CUSTOMERNEGATIVECRITERION.fields_by_name['placement'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PLACEMENTINFO +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_video'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBEVIDEOINFO +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_channel'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBECHANNELINFO +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['content_label']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['content_label'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_application']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_application'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_app_category']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_app_category'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['placement']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['placement'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_video']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_video'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_channel']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_channel'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['criterion'] +_CUSTOMERNEGATIVECRITERION.oneofs_by_name['_id'].fields.append( + _CUSTOMERNEGATIVECRITERION.fields_by_name['id']) +_CUSTOMERNEGATIVECRITERION.fields_by_name['id'].containing_oneof = _CUSTOMERNEGATIVECRITERION.oneofs_by_name['_id'] +DESCRIPTOR.message_types_by_name['CustomerNegativeCriterion'] = _CUSTOMERNEGATIVECRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomerNegativeCriterion = _reflection.GeneratedProtocolMessageType('CustomerNegativeCriterion', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERNEGATIVECRITERION, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_negative_criterion_pb2' + , + '__doc__': """A negative criterion for exclusions at the customer level. + + Attributes: + resource_name: + Immutable. The resource name of the customer negative + criterion. Customer negative criterion resource names have the + form: ``customers/{customer_id}/customerNegativeCriteria/{cri + terion_id}`` + id: + Output only. The ID of the criterion. + type: + Output only. The type of the criterion. + criterion: + The customer negative criterion. Exactly one must be set. + content_label: + Immutable. ContentLabel. + mobile_application: + Immutable. MobileApplication. + mobile_app_category: + Immutable. MobileAppCategory. + placement: + Immutable. Placement. + youtube_video: + Immutable. YouTube Video. + youtube_channel: + Immutable. YouTube Channel. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CustomerNegativeCriterion) + }) +_sym_db.RegisterMessage(CustomerNegativeCriterion) + + +DESCRIPTOR._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['resource_name']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['id']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['type']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['content_label']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_application']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['mobile_app_category']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['placement']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_video']._options = None +_CUSTOMERNEGATIVECRITERION.fields_by_name['youtube_channel']._options = None +_CUSTOMERNEGATIVECRITERION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/customer_negative_criterion_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/customer_negative_criterion_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_negative_criterion_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/customer_pb2.py b/google/ads/google_ads/v5/proto/resources/customer_pb2.py new file mode 100644 index 000000000..7871c389f --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_pb2.py @@ -0,0 +1,568 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/customer.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import customer_pay_per_conversion_eligibility_failure_reason_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_customer__pay__per__conversion__eligibility__failure__reason__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/customer.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\rCustomerProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n6google/ads/googleads_v5/proto/resources/customer.proto\x12!google.ads.googleads.v5.resources\x1a`google/ads/googleads_v5/proto/enums/customer_pay_per_conversion_eligibility_failure_reason.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x98\t\n\x08\x43ustomer\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/Customer\x12\x14\n\x02id\x18\x13 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x1d\n\x10\x64\x65scriptive_name\x18\x14 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\rcurrency_code\x18\x15 \x01(\tB\x03\xe0\x41\x05H\x02\x88\x01\x01\x12\x1b\n\ttime_zone\x18\x16 \x01(\tB\x03\xe0\x41\x05H\x03\x88\x01\x01\x12\"\n\x15tracking_url_template\x18\x17 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10\x66inal_url_suffix\x18\x18 \x01(\tH\x05\x88\x01\x01\x12!\n\x14\x61uto_tagging_enabled\x18\x19 \x01(\x08H\x06\x88\x01\x01\x12$\n\x12has_partners_badge\x18\x1a \x01(\x08\x42\x03\xe0\x41\x03H\x07\x88\x01\x01\x12\x19\n\x07manager\x18\x1b \x01(\x08\x42\x03\xe0\x41\x03H\x08\x88\x01\x01\x12\x1e\n\x0ctest_account\x18\x1c \x01(\x08\x42\x03\xe0\x41\x03H\t\x88\x01\x01\x12W\n\x16\x63\x61ll_reporting_setting\x18\n \x01(\x0b\x32\x37.google.ads.googleads.v5.resources.CallReportingSetting\x12\x66\n\x1b\x63onversion_tracking_setting\x18\x0e \x01(\x0b\x32<.google.ads.googleads.v5.resources.ConversionTrackingSettingB\x03\xe0\x41\x03\x12W\n\x13remarketing_setting\x18\x0f \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.RemarketingSettingB\x03\xe0\x41\x03\x12\xc2\x01\n.pay_per_conversion_eligibility_failure_reasons\x18\x10 \x03(\x0e\x32\x84\x01.google.ads.googleads.v5.enums.CustomerPayPerConversionEligibilityFailureReasonEnum.CustomerPayPerConversionEligibilityFailureReasonB\x03\xe0\x41\x03\x12$\n\x12optimization_score\x18\x1d \x01(\x01\x42\x03\xe0\x41\x03H\n\x88\x01\x01:<\xea\x41\x39\n!googleads.googleapis.com/Customer\x12\x14\x63ustomers/{customer}B\x05\n\x03_idB\x13\n\x11_descriptive_nameB\x10\n\x0e_currency_codeB\x0c\n\n_time_zoneB\x18\n\x16_tracking_url_templateB\x13\n\x11_final_url_suffixB\x17\n\x15_auto_tagging_enabledB\x15\n\x13_has_partners_badgeB\n\n\x08_managerB\x0f\n\r_test_accountB\x15\n\x13_optimization_score\"\x9c\x02\n\x14\x43\x61llReportingSetting\x12#\n\x16\x63\x61ll_reporting_enabled\x18\n \x01(\x08H\x00\x88\x01\x01\x12.\n!call_conversion_reporting_enabled\x18\x0b \x01(\x08H\x01\x88\x01\x01\x12S\n\x16\x63\x61ll_conversion_action\x18\x0c \x01(\tB.\xfa\x41+\n)googleads.googleapis.com/ConversionActionH\x02\x88\x01\x01\x42\x19\n\x17_call_reporting_enabledB$\n\"_call_conversion_reporting_enabledB\x19\n\x17_call_conversion_action\"\xc1\x01\n\x19\x43onversionTrackingSetting\x12(\n\x16\x63onversion_tracking_id\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x36\n$cross_account_conversion_tracking_id\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x19\n\x17_conversion_tracking_idB\'\n%_cross_account_conversion_tracking_id\"Y\n\x12RemarketingSetting\x12(\n\x16google_global_site_tag\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x19\n\x17_google_global_site_tagB\xfa\x01\n%com.google.ads.googleads.v5.resourcesB\rCustomerProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_customer__pay__per__conversion__eligibility__failure__reason__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_CUSTOMER = _descriptor.Descriptor( + name='Customer', + full_name='google.ads.googleads.v5.resources.Customer', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Customer.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Customer', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Customer.id', index=1, + number=19, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='descriptive_name', full_name='google.ads.googleads.v5.resources.Customer.descriptive_name', index=2, + number=20, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.resources.Customer.currency_code', index=3, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_zone', full_name='google.ads.googleads.v5.resources.Customer.time_zone', index=4, + number=22, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v5.resources.Customer.tracking_url_template', index=5, + number=23, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='final_url_suffix', full_name='google.ads.googleads.v5.resources.Customer.final_url_suffix', index=6, + number=24, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='auto_tagging_enabled', full_name='google.ads.googleads.v5.resources.Customer.auto_tagging_enabled', index=7, + number=25, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_partners_badge', full_name='google.ads.googleads.v5.resources.Customer.has_partners_badge', index=8, + number=26, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='manager', full_name='google.ads.googleads.v5.resources.Customer.manager', index=9, + number=27, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='test_account', full_name='google.ads.googleads.v5.resources.Customer.test_account', index=10, + number=28, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_reporting_setting', full_name='google.ads.googleads.v5.resources.Customer.call_reporting_setting', index=11, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_tracking_setting', full_name='google.ads.googleads.v5.resources.Customer.conversion_tracking_setting', index=12, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remarketing_setting', full_name='google.ads.googleads.v5.resources.Customer.remarketing_setting', index=13, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='pay_per_conversion_eligibility_failure_reasons', full_name='google.ads.googleads.v5.resources.Customer.pay_per_conversion_eligibility_failure_reasons', index=14, + number=16, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optimization_score', full_name='google.ads.googleads.v5.resources.Customer.optimization_score', index=15, + number=29, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A9\n!googleads.googleapis.com/Customer\022\024customers/{customer}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.Customer._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_descriptive_name', full_name='google.ads.googleads.v5.resources.Customer._descriptive_name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_currency_code', full_name='google.ads.googleads.v5.resources.Customer._currency_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_time_zone', full_name='google.ads.googleads.v5.resources.Customer._time_zone', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_tracking_url_template', full_name='google.ads.googleads.v5.resources.Customer._tracking_url_template', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_final_url_suffix', full_name='google.ads.googleads.v5.resources.Customer._final_url_suffix', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_auto_tagging_enabled', full_name='google.ads.googleads.v5.resources.Customer._auto_tagging_enabled', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_has_partners_badge', full_name='google.ads.googleads.v5.resources.Customer._has_partners_badge', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_manager', full_name='google.ads.googleads.v5.resources.Customer._manager', + index=8, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_test_account', full_name='google.ads.googleads.v5.resources.Customer._test_account', + index=9, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_optimization_score', full_name='google.ads.googleads.v5.resources.Customer._optimization_score', + index=10, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=282, + serialized_end=1458, +) + + +_CALLREPORTINGSETTING = _descriptor.Descriptor( + name='CallReportingSetting', + full_name='google.ads.googleads.v5.resources.CallReportingSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='call_reporting_enabled', full_name='google.ads.googleads.v5.resources.CallReportingSetting.call_reporting_enabled', index=0, + number=10, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_conversion_reporting_enabled', full_name='google.ads.googleads.v5.resources.CallReportingSetting.call_conversion_reporting_enabled', index=1, + number=11, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_conversion_action', full_name='google.ads.googleads.v5.resources.CallReportingSetting.call_conversion_action', index=2, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A+\n)googleads.googleapis.com/ConversionAction', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_call_reporting_enabled', full_name='google.ads.googleads.v5.resources.CallReportingSetting._call_reporting_enabled', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_conversion_reporting_enabled', full_name='google.ads.googleads.v5.resources.CallReportingSetting._call_conversion_reporting_enabled', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_conversion_action', full_name='google.ads.googleads.v5.resources.CallReportingSetting._call_conversion_action', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1461, + serialized_end=1745, +) + + +_CONVERSIONTRACKINGSETTING = _descriptor.Descriptor( + name='ConversionTrackingSetting', + full_name='google.ads.googleads.v5.resources.ConversionTrackingSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='conversion_tracking_id', full_name='google.ads.googleads.v5.resources.ConversionTrackingSetting.conversion_tracking_id', index=0, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cross_account_conversion_tracking_id', full_name='google.ads.googleads.v5.resources.ConversionTrackingSetting.cross_account_conversion_tracking_id', index=1, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_conversion_tracking_id', full_name='google.ads.googleads.v5.resources.ConversionTrackingSetting._conversion_tracking_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_cross_account_conversion_tracking_id', full_name='google.ads.googleads.v5.resources.ConversionTrackingSetting._cross_account_conversion_tracking_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1748, + serialized_end=1941, +) + + +_REMARKETINGSETTING = _descriptor.Descriptor( + name='RemarketingSetting', + full_name='google.ads.googleads.v5.resources.RemarketingSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='google_global_site_tag', full_name='google.ads.googleads.v5.resources.RemarketingSetting.google_global_site_tag', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_google_global_site_tag', full_name='google.ads.googleads.v5.resources.RemarketingSetting._google_global_site_tag', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1943, + serialized_end=2032, +) + +_CUSTOMER.fields_by_name['call_reporting_setting'].message_type = _CALLREPORTINGSETTING +_CUSTOMER.fields_by_name['conversion_tracking_setting'].message_type = _CONVERSIONTRACKINGSETTING +_CUSTOMER.fields_by_name['remarketing_setting'].message_type = _REMARKETINGSETTING +_CUSTOMER.fields_by_name['pay_per_conversion_eligibility_failure_reasons'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_customer__pay__per__conversion__eligibility__failure__reason__pb2._CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASONENUM_CUSTOMERPAYPERCONVERSIONELIGIBILITYFAILUREREASON +_CUSTOMER.oneofs_by_name['_id'].fields.append( + _CUSTOMER.fields_by_name['id']) +_CUSTOMER.fields_by_name['id'].containing_oneof = _CUSTOMER.oneofs_by_name['_id'] +_CUSTOMER.oneofs_by_name['_descriptive_name'].fields.append( + _CUSTOMER.fields_by_name['descriptive_name']) +_CUSTOMER.fields_by_name['descriptive_name'].containing_oneof = _CUSTOMER.oneofs_by_name['_descriptive_name'] +_CUSTOMER.oneofs_by_name['_currency_code'].fields.append( + _CUSTOMER.fields_by_name['currency_code']) +_CUSTOMER.fields_by_name['currency_code'].containing_oneof = _CUSTOMER.oneofs_by_name['_currency_code'] +_CUSTOMER.oneofs_by_name['_time_zone'].fields.append( + _CUSTOMER.fields_by_name['time_zone']) +_CUSTOMER.fields_by_name['time_zone'].containing_oneof = _CUSTOMER.oneofs_by_name['_time_zone'] +_CUSTOMER.oneofs_by_name['_tracking_url_template'].fields.append( + _CUSTOMER.fields_by_name['tracking_url_template']) +_CUSTOMER.fields_by_name['tracking_url_template'].containing_oneof = _CUSTOMER.oneofs_by_name['_tracking_url_template'] +_CUSTOMER.oneofs_by_name['_final_url_suffix'].fields.append( + _CUSTOMER.fields_by_name['final_url_suffix']) +_CUSTOMER.fields_by_name['final_url_suffix'].containing_oneof = _CUSTOMER.oneofs_by_name['_final_url_suffix'] +_CUSTOMER.oneofs_by_name['_auto_tagging_enabled'].fields.append( + _CUSTOMER.fields_by_name['auto_tagging_enabled']) +_CUSTOMER.fields_by_name['auto_tagging_enabled'].containing_oneof = _CUSTOMER.oneofs_by_name['_auto_tagging_enabled'] +_CUSTOMER.oneofs_by_name['_has_partners_badge'].fields.append( + _CUSTOMER.fields_by_name['has_partners_badge']) +_CUSTOMER.fields_by_name['has_partners_badge'].containing_oneof = _CUSTOMER.oneofs_by_name['_has_partners_badge'] +_CUSTOMER.oneofs_by_name['_manager'].fields.append( + _CUSTOMER.fields_by_name['manager']) +_CUSTOMER.fields_by_name['manager'].containing_oneof = _CUSTOMER.oneofs_by_name['_manager'] +_CUSTOMER.oneofs_by_name['_test_account'].fields.append( + _CUSTOMER.fields_by_name['test_account']) +_CUSTOMER.fields_by_name['test_account'].containing_oneof = _CUSTOMER.oneofs_by_name['_test_account'] +_CUSTOMER.oneofs_by_name['_optimization_score'].fields.append( + _CUSTOMER.fields_by_name['optimization_score']) +_CUSTOMER.fields_by_name['optimization_score'].containing_oneof = _CUSTOMER.oneofs_by_name['_optimization_score'] +_CALLREPORTINGSETTING.oneofs_by_name['_call_reporting_enabled'].fields.append( + _CALLREPORTINGSETTING.fields_by_name['call_reporting_enabled']) +_CALLREPORTINGSETTING.fields_by_name['call_reporting_enabled'].containing_oneof = _CALLREPORTINGSETTING.oneofs_by_name['_call_reporting_enabled'] +_CALLREPORTINGSETTING.oneofs_by_name['_call_conversion_reporting_enabled'].fields.append( + _CALLREPORTINGSETTING.fields_by_name['call_conversion_reporting_enabled']) +_CALLREPORTINGSETTING.fields_by_name['call_conversion_reporting_enabled'].containing_oneof = _CALLREPORTINGSETTING.oneofs_by_name['_call_conversion_reporting_enabled'] +_CALLREPORTINGSETTING.oneofs_by_name['_call_conversion_action'].fields.append( + _CALLREPORTINGSETTING.fields_by_name['call_conversion_action']) +_CALLREPORTINGSETTING.fields_by_name['call_conversion_action'].containing_oneof = _CALLREPORTINGSETTING.oneofs_by_name['_call_conversion_action'] +_CONVERSIONTRACKINGSETTING.oneofs_by_name['_conversion_tracking_id'].fields.append( + _CONVERSIONTRACKINGSETTING.fields_by_name['conversion_tracking_id']) +_CONVERSIONTRACKINGSETTING.fields_by_name['conversion_tracking_id'].containing_oneof = _CONVERSIONTRACKINGSETTING.oneofs_by_name['_conversion_tracking_id'] +_CONVERSIONTRACKINGSETTING.oneofs_by_name['_cross_account_conversion_tracking_id'].fields.append( + _CONVERSIONTRACKINGSETTING.fields_by_name['cross_account_conversion_tracking_id']) +_CONVERSIONTRACKINGSETTING.fields_by_name['cross_account_conversion_tracking_id'].containing_oneof = _CONVERSIONTRACKINGSETTING.oneofs_by_name['_cross_account_conversion_tracking_id'] +_REMARKETINGSETTING.oneofs_by_name['_google_global_site_tag'].fields.append( + _REMARKETINGSETTING.fields_by_name['google_global_site_tag']) +_REMARKETINGSETTING.fields_by_name['google_global_site_tag'].containing_oneof = _REMARKETINGSETTING.oneofs_by_name['_google_global_site_tag'] +DESCRIPTOR.message_types_by_name['Customer'] = _CUSTOMER +DESCRIPTOR.message_types_by_name['CallReportingSetting'] = _CALLREPORTINGSETTING +DESCRIPTOR.message_types_by_name['ConversionTrackingSetting'] = _CONVERSIONTRACKINGSETTING +DESCRIPTOR.message_types_by_name['RemarketingSetting'] = _REMARKETINGSETTING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Customer = _reflection.GeneratedProtocolMessageType('Customer', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMER, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_pb2' + , + '__doc__': """A customer. + + Attributes: + resource_name: + Immutable. The resource name of the customer. Customer + resource names have the form: ``customers/{customer_id}`` + id: + Output only. The ID of the customer. + descriptive_name: + Optional, non-unique descriptive name of the customer. + currency_code: + Immutable. The currency in which the account operates. A + subset of the currency codes from the ISO 4217 standard is + supported. + time_zone: + Immutable. The local timezone ID of the customer. + tracking_url_template: + The URL template for constructing a tracking URL out of + parameters. + final_url_suffix: + The URL template for appending params to the final URL + auto_tagging_enabled: + Whether auto-tagging is enabled for the customer. + has_partners_badge: + Output only. Whether the Customer has a Partners program + badge. If the Customer is not associated with the Partners + program, this will be false. For more information, see + https://support.google.com/partners/answer/3125774. + manager: + Output only. Whether the customer is a manager. + test_account: + Output only. Whether the customer is a test account. + call_reporting_setting: + Call reporting setting for a customer. + conversion_tracking_setting: + Output only. Conversion tracking setting for a customer. + remarketing_setting: + Output only. Remarketing setting for a customer. + pay_per_conversion_eligibility_failure_reasons: + Output only. Reasons why the customer is not eligible to use + PaymentMode.CONVERSIONS. If the list is empty, the customer is + eligible. This field is read-only. + optimization_score: + Output only. Optimization score of the customer. Optimization + score is an estimate of how well a customer's campaigns are + set to perform. It ranges from 0% (0.0) to 100% (1.0). See + "About optimization score" at + https://support.google.com/google-ads/answer/9061546. This + field is read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Customer) + }) +_sym_db.RegisterMessage(Customer) + +CallReportingSetting = _reflection.GeneratedProtocolMessageType('CallReportingSetting', (_message.Message,), { + 'DESCRIPTOR' : _CALLREPORTINGSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_pb2' + , + '__doc__': """Call reporting setting for a customer. + + Attributes: + call_reporting_enabled: + Enable reporting of phone call events by redirecting them via + Google System. + call_conversion_reporting_enabled: + Whether to enable call conversion reporting. + call_conversion_action: + Customer-level call conversion action to attribute a call + conversion to. If not set a default conversion action is used. + Only in effect when call\_conversion\_reporting\_enabled is + set to true. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.CallReportingSetting) + }) +_sym_db.RegisterMessage(CallReportingSetting) + +ConversionTrackingSetting = _reflection.GeneratedProtocolMessageType('ConversionTrackingSetting', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONTRACKINGSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_pb2' + , + '__doc__': """A collection of customer-wide settings related to Google Ads + Conversion Tracking. + + Attributes: + conversion_tracking_id: + Output only. The conversion tracking id used for this account. + This id is automatically assigned after any conversion + tracking feature is used. If the customer doesn't use + conversion tracking, this is 0. This field is read-only. + cross_account_conversion_tracking_id: + Output only. The conversion tracking id of the customer's + manager. This is set when the customer is opted into cross + account conversion tracking, and it overrides + conversion\_tracking\_id. This field can only be managed + through the Google Ads UI. This field is read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ConversionTrackingSetting) + }) +_sym_db.RegisterMessage(ConversionTrackingSetting) + +RemarketingSetting = _reflection.GeneratedProtocolMessageType('RemarketingSetting', (_message.Message,), { + 'DESCRIPTOR' : _REMARKETINGSETTING, + '__module__' : 'google.ads.googleads_v5.proto.resources.customer_pb2' + , + '__doc__': """Remarketing setting for a customer. + + Attributes: + google_global_site_tag: + Output only. The Google global site tag. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.RemarketingSetting) + }) +_sym_db.RegisterMessage(RemarketingSetting) + + +DESCRIPTOR._options = None +_CUSTOMER.fields_by_name['resource_name']._options = None +_CUSTOMER.fields_by_name['id']._options = None +_CUSTOMER.fields_by_name['currency_code']._options = None +_CUSTOMER.fields_by_name['time_zone']._options = None +_CUSTOMER.fields_by_name['has_partners_badge']._options = None +_CUSTOMER.fields_by_name['manager']._options = None +_CUSTOMER.fields_by_name['test_account']._options = None +_CUSTOMER.fields_by_name['conversion_tracking_setting']._options = None +_CUSTOMER.fields_by_name['remarketing_setting']._options = None +_CUSTOMER.fields_by_name['pay_per_conversion_eligibility_failure_reasons']._options = None +_CUSTOMER.fields_by_name['optimization_score']._options = None +_CUSTOMER._options = None +_CALLREPORTINGSETTING.fields_by_name['call_conversion_action']._options = None +_CONVERSIONTRACKINGSETTING.fields_by_name['conversion_tracking_id']._options = None +_CONVERSIONTRACKINGSETTING.fields_by_name['cross_account_conversion_tracking_id']._options = None +_REMARKETINGSETTING.fields_by_name['google_global_site_tag']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/customer_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/customer_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/customer_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2.py b/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2.py new file mode 100644 index 000000000..e04043629 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/detail_placement_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import placement_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/detail_placement_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\030DetailPlacementViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/resources/detail_placement_view.proto\x12!google.ads.googleads.v5.resources\x1a\x38google/ads/googleads_v5/proto/enums/placement_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xa2\x04\n\x13\x44\x65tailPlacementView\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x03\xfa\x41.\n,googleads.googleapis.com/DetailPlacementView\x12\x34\n\tplacement\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x37\n\x0c\x64isplay_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x45\n\x1agroup_placement_target_url\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x35\n\ntarget_url\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12[\n\x0eplacement_type\x18\x06 \x01(\x0e\x32>.google.ads.googleads.v5.enums.PlacementTypeEnum.PlacementTypeB\x03\xe0\x41\x03:t\xea\x41q\n,googleads.googleapis.com/DetailPlacementView\x12\x41\x63ustomers/{customer}/detailPlacementViews/{detail_placement_view}B\x85\x02\n%com.google.ads.googleads.v5.resourcesB\x18\x44\x65tailPlacementViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DETAILPLACEMENTVIEW = _descriptor.Descriptor( + name='DetailPlacementView', + full_name='google.ads.googleads.v5.resources.DetailPlacementView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.DetailPlacementView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A.\n,googleads.googleapis.com/DetailPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.DetailPlacementView.placement', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_name', full_name='google.ads.googleads.v5.resources.DetailPlacementView.display_name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='group_placement_target_url', full_name='google.ads.googleads.v5.resources.DetailPlacementView.group_placement_target_url', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_url', full_name='google.ads.googleads.v5.resources.DetailPlacementView.target_url', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement_type', full_name='google.ads.googleads.v5.resources.DetailPlacementView.placement_type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Aq\n,googleads.googleapis.com/DetailPlacementView\022Acustomers/{customer}/detailPlacementViews/{detail_placement_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=287, + serialized_end=833, +) + +_DETAILPLACEMENTVIEW.fields_by_name['placement'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DETAILPLACEMENTVIEW.fields_by_name['display_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DETAILPLACEMENTVIEW.fields_by_name['group_placement_target_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DETAILPLACEMENTVIEW.fields_by_name['target_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DETAILPLACEMENTVIEW.fields_by_name['placement_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2._PLACEMENTTYPEENUM_PLACEMENTTYPE +DESCRIPTOR.message_types_by_name['DetailPlacementView'] = _DETAILPLACEMENTVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DetailPlacementView = _reflection.GeneratedProtocolMessageType('DetailPlacementView', (_message.Message,), { + 'DESCRIPTOR' : _DETAILPLACEMENTVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.detail_placement_view_pb2' + , + '__doc__': """A view with metrics aggregated by ad group and URL or YouTube video. + + Attributes: + resource_name: + Output only. The resource name of the detail placement view. + Detail placement view resource names have the form: ``custome + rs/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_pl + acement}`` + placement: + Output only. The automatic placement string at detail level, + e. g. website URL, mobile application ID, or a YouTube video + ID. + display_name: + Output only. The display name is URL name for websites, + YouTube video name for YouTube videos, and translated mobile + app name for mobile apps. + group_placement_target_url: + Output only. URL of the group placement, e.g. domain, link to + the mobile application in app store, or a YouTube channel URL. + target_url: + Output only. URL of the placement, e.g. website, link to the + mobile application in app store, or a YouTube video URL. + placement_type: + Output only. Type of the placement, e.g. Website, YouTube + Video, and Mobile Application. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.DetailPlacementView) + }) +_sym_db.RegisterMessage(DetailPlacementView) + + +DESCRIPTOR._options = None +_DETAILPLACEMENTVIEW.fields_by_name['resource_name']._options = None +_DETAILPLACEMENTVIEW.fields_by_name['placement']._options = None +_DETAILPLACEMENTVIEW.fields_by_name['display_name']._options = None +_DETAILPLACEMENTVIEW.fields_by_name['group_placement_target_url']._options = None +_DETAILPLACEMENTVIEW.fields_by_name['target_url']._options = None +_DETAILPLACEMENTVIEW.fields_by_name['placement_type']._options = None +_DETAILPLACEMENTVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/detail_placement_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2.py b/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2.py new file mode 100644 index 000000000..3ff8ff5b0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/display_keyword_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/display_keyword_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\027DisplayKeywordViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/resources/display_keyword_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xd3\x01\n\x12\x44isplayKeywordView\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/DisplayKeywordView:q\xea\x41n\n+googleads.googleapis.com/DisplayKeywordView\x12?customers/{customer}/displayKeywordViews/{display_keyword_view}B\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17\x44isplayKeywordViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DISPLAYKEYWORDVIEW = _descriptor.Descriptor( + name='DisplayKeywordView', + full_name='google.ads.googleads.v5.resources.DisplayKeywordView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.DisplayKeywordView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A-\n+googleads.googleapis.com/DisplayKeywordView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352An\n+googleads.googleapis.com/DisplayKeywordView\022?customers/{customer}/displayKeywordViews/{display_keyword_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=196, + serialized_end=407, +) + +DESCRIPTOR.message_types_by_name['DisplayKeywordView'] = _DISPLAYKEYWORDVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DisplayKeywordView = _reflection.GeneratedProtocolMessageType('DisplayKeywordView', (_message.Message,), { + 'DESCRIPTOR' : _DISPLAYKEYWORDVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.display_keyword_view_pb2' + , + '__doc__': """A display keyword view. + + Attributes: + resource_name: + Output only. The resource name of the display keyword view. + Display Keyword view resource names have the form: ``customer + s/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_i + d}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.DisplayKeywordView) + }) +_sym_db.RegisterMessage(DisplayKeywordView) + + +DESCRIPTOR._options = None +_DISPLAYKEYWORDVIEW.fields_by_name['resource_name']._options = None +_DISPLAYKEYWORDVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/display_keyword_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/distance_view_pb2.py b/google/ads/google_ads/v5/proto/resources/distance_view_pb2.py new file mode 100644 index 000000000..bd00380b8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/distance_view_pb2.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/distance_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import distance_bucket_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_distance__bucket__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/distance_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021DistanceViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/distance_view.proto\x12!google.ads.googleads.v5.resources\x1a\x39google/ads/googleads_v5/proto/enums/distance_bucket.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xc7\x02\n\x0c\x44istanceView\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/DistanceView\x12^\n\x0f\x64istance_bucket\x18\x02 \x01(\x0e\x32@.google.ads.googleads.v5.enums.DistanceBucketEnum.DistanceBucketB\x03\xe0\x41\x03\x12\x1f\n\rmetric_system\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01:^\xea\x41[\n%googleads.googleapis.com/DistanceView\x12\x32\x63ustomers/{customer}/distanceViews/{distance_view}B\x10\n\x0e_metric_systemB\xfe\x01\n%com.google.ads.googleads.v5.resourcesB\x11\x44istanceViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_distance__bucket__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DISTANCEVIEW = _descriptor.Descriptor( + name='DistanceView', + full_name='google.ads.googleads.v5.resources.DistanceView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.DistanceView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\'\n%googleads.googleapis.com/DistanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='distance_bucket', full_name='google.ads.googleads.v5.resources.DistanceView.distance_bucket', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='metric_system', full_name='google.ads.googleads.v5.resources.DistanceView.metric_system', index=2, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A[\n%googleads.googleapis.com/DistanceView\0222customers/{customer}/distanceViews/{distance_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_metric_system', full_name='google.ads.googleads.v5.resources.DistanceView._metric_system', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=248, + serialized_end=575, +) + +_DISTANCEVIEW.fields_by_name['distance_bucket'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_distance__bucket__pb2._DISTANCEBUCKETENUM_DISTANCEBUCKET +_DISTANCEVIEW.oneofs_by_name['_metric_system'].fields.append( + _DISTANCEVIEW.fields_by_name['metric_system']) +_DISTANCEVIEW.fields_by_name['metric_system'].containing_oneof = _DISTANCEVIEW.oneofs_by_name['_metric_system'] +DESCRIPTOR.message_types_by_name['DistanceView'] = _DISTANCEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DistanceView = _reflection.GeneratedProtocolMessageType('DistanceView', (_message.Message,), { + 'DESCRIPTOR' : _DISTANCEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.distance_view_pb2' + , + '__doc__': """A distance view with metrics aggregated by the user's distance from an + advertiser's location extensions. Each DistanceBucket includes all + impressions that fall within its distance and a single impression will + contribute to the metrics for all DistanceBuckets that include the + user's distance. + + Attributes: + resource_name: + Output only. The resource name of the distance view. Distance + view resource names have the form: + ``customers/{customer_id}/distanceViews/1~{distance_bucket}`` + distance_bucket: + Output only. Grouping of user distance from location + extensions. + metric_system: + Output only. True if the DistanceBucket is using the metric + system, false otherwise. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.DistanceView) + }) +_sym_db.RegisterMessage(DistanceView) + + +DESCRIPTOR._options = None +_DISTANCEVIEW.fields_by_name['resource_name']._options = None +_DISTANCEVIEW.fields_by_name['distance_bucket']._options = None +_DISTANCEVIEW.fields_by_name['metric_system']._options = None +_DISTANCEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/distance_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/distance_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/distance_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/domain_category_pb2.py b/google/ads/google_ads/v5/proto/resources/domain_category_pb2.py new file mode 100644 index 000000000..de8d56456 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/domain_category_pb2.py @@ -0,0 +1,248 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/domain_category.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/domain_category.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023DomainCategoryProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/resources/domain_category.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xfb\x04\n\x0e\x44omainCategory\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/DomainCategory\x12@\n\x08\x63\x61mpaign\x18\n \x01(\tB)\xe0\x41\x03\xfa\x41#\n!googleads.googleapis.com/CampaignH\x00\x88\x01\x01\x12\x1a\n\x08\x63\x61tegory\x18\x0b \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1f\n\rlanguage_code\x18\x0c \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x18\n\x06\x64omain\x18\r \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12#\n\x11\x63overage_fraction\x18\x0e \x01(\x01\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\x1f\n\rcategory_rank\x18\x0f \x01(\x03\x42\x03\xe0\x41\x03H\x05\x88\x01\x01\x12\x1e\n\x0chas_children\x18\x10 \x01(\x08\x42\x03\xe0\x41\x03H\x06\x88\x01\x01\x12,\n\x1arecommended_cpc_bid_micros\x18\x11 \x01(\x03\x42\x03\xe0\x41\x03H\x07\x88\x01\x01:e\xea\x41\x62\n\'googleads.googleapis.com/DomainCategory\x12\x37\x63ustomers/{customer}/domainCategories/{domain_category}B\x0b\n\t_campaignB\x0b\n\t_categoryB\x10\n\x0e_language_codeB\t\n\x07_domainB\x14\n\x12_coverage_fractionB\x10\n\x0e_category_rankB\x0f\n\r_has_childrenB\x1d\n\x1b_recommended_cpc_bid_microsB\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x44omainCategoryProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DOMAINCATEGORY = _descriptor.Descriptor( + name='DomainCategory', + full_name='google.ads.googleads.v5.resources.DomainCategory', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.DomainCategory.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/DomainCategory', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.DomainCategory.campaign', index=1, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='category', full_name='google.ads.googleads.v5.resources.DomainCategory.category', index=2, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.resources.DomainCategory.language_code', index=3, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='domain', full_name='google.ads.googleads.v5.resources.DomainCategory.domain', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='coverage_fraction', full_name='google.ads.googleads.v5.resources.DomainCategory.coverage_fraction', index=5, + number=14, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='category_rank', full_name='google.ads.googleads.v5.resources.DomainCategory.category_rank', index=6, + number=15, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_children', full_name='google.ads.googleads.v5.resources.DomainCategory.has_children', index=7, + number=16, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommended_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.DomainCategory.recommended_cpc_bid_micros', index=8, + number=17, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n\'googleads.googleapis.com/DomainCategory\0227customers/{customer}/domainCategories/{domain_category}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_campaign', full_name='google.ads.googleads.v5.resources.DomainCategory._campaign', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_category', full_name='google.ads.googleads.v5.resources.DomainCategory._category', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_language_code', full_name='google.ads.googleads.v5.resources.DomainCategory._language_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_domain', full_name='google.ads.googleads.v5.resources.DomainCategory._domain', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_coverage_fraction', full_name='google.ads.googleads.v5.resources.DomainCategory._coverage_fraction', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_category_rank', full_name='google.ads.googleads.v5.resources.DomainCategory._category_rank', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_has_children', full_name='google.ads.googleads.v5.resources.DomainCategory._has_children', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_recommended_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.DomainCategory._recommended_cpc_bid_micros', + index=7, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=191, + serialized_end=826, +) + +_DOMAINCATEGORY.oneofs_by_name['_campaign'].fields.append( + _DOMAINCATEGORY.fields_by_name['campaign']) +_DOMAINCATEGORY.fields_by_name['campaign'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_campaign'] +_DOMAINCATEGORY.oneofs_by_name['_category'].fields.append( + _DOMAINCATEGORY.fields_by_name['category']) +_DOMAINCATEGORY.fields_by_name['category'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_category'] +_DOMAINCATEGORY.oneofs_by_name['_language_code'].fields.append( + _DOMAINCATEGORY.fields_by_name['language_code']) +_DOMAINCATEGORY.fields_by_name['language_code'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_language_code'] +_DOMAINCATEGORY.oneofs_by_name['_domain'].fields.append( + _DOMAINCATEGORY.fields_by_name['domain']) +_DOMAINCATEGORY.fields_by_name['domain'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_domain'] +_DOMAINCATEGORY.oneofs_by_name['_coverage_fraction'].fields.append( + _DOMAINCATEGORY.fields_by_name['coverage_fraction']) +_DOMAINCATEGORY.fields_by_name['coverage_fraction'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_coverage_fraction'] +_DOMAINCATEGORY.oneofs_by_name['_category_rank'].fields.append( + _DOMAINCATEGORY.fields_by_name['category_rank']) +_DOMAINCATEGORY.fields_by_name['category_rank'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_category_rank'] +_DOMAINCATEGORY.oneofs_by_name['_has_children'].fields.append( + _DOMAINCATEGORY.fields_by_name['has_children']) +_DOMAINCATEGORY.fields_by_name['has_children'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_has_children'] +_DOMAINCATEGORY.oneofs_by_name['_recommended_cpc_bid_micros'].fields.append( + _DOMAINCATEGORY.fields_by_name['recommended_cpc_bid_micros']) +_DOMAINCATEGORY.fields_by_name['recommended_cpc_bid_micros'].containing_oneof = _DOMAINCATEGORY.oneofs_by_name['_recommended_cpc_bid_micros'] +DESCRIPTOR.message_types_by_name['DomainCategory'] = _DOMAINCATEGORY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DomainCategory = _reflection.GeneratedProtocolMessageType('DomainCategory', (_message.Message,), { + 'DESCRIPTOR' : _DOMAINCATEGORY, + '__module__' : 'google.ads.googleads_v5.proto.resources.domain_category_pb2' + , + '__doc__': """A category generated automatically by crawling a domain. If a campaign + uses the DynamicSearchAdsSetting, then domain categories will be + generated for the domain. The categories can be targeted using + WebpageConditionInfo. See: https://support.google.com/google- + ads/answer/2471185 + + Attributes: + resource_name: + Output only. The resource name of the domain category. Domain + category resource names have the form: ``customers/{customer_ + id}/domainCategories/{campaign_id}~{category_base64}~{language + _code}`` + campaign: + Output only. The campaign this category is recommended for. + category: + Output only. Recommended category for the website domain. e.g. + if you have a website about electronics, the categories could + be "cameras", "televisions", etc. + language_code: + Output only. The language code specifying the language of the + website. e.g. "en" for English. The language can be specified + in the DynamicSearchAdsSetting required for dynamic search + ads. This is the language of the pages from your website that + you want Google Ads to find, create ads for, and match + searches with. + domain: + Output only. The domain for the website. The domain can be + specified in the DynamicSearchAdsSetting required for dynamic + search ads. + coverage_fraction: + Output only. Fraction of pages on your site that this category + matches. + category_rank: + Output only. The position of this category in the set of + categories. Lower numbers indicate a better match for the + domain. null indicates not recommended. + has_children: + Output only. Indicates whether this category has sub- + categories. + recommended_cpc_bid_micros: + Output only. The recommended cost per click for the category. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.DomainCategory) + }) +_sym_db.RegisterMessage(DomainCategory) + + +DESCRIPTOR._options = None +_DOMAINCATEGORY.fields_by_name['resource_name']._options = None +_DOMAINCATEGORY.fields_by_name['campaign']._options = None +_DOMAINCATEGORY.fields_by_name['category']._options = None +_DOMAINCATEGORY.fields_by_name['language_code']._options = None +_DOMAINCATEGORY.fields_by_name['domain']._options = None +_DOMAINCATEGORY.fields_by_name['coverage_fraction']._options = None +_DOMAINCATEGORY.fields_by_name['category_rank']._options = None +_DOMAINCATEGORY.fields_by_name['has_children']._options = None +_DOMAINCATEGORY.fields_by_name['recommended_cpc_bid_micros']._options = None +_DOMAINCATEGORY._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/domain_category_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/domain_category_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/domain_category_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2.py b/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2.py new file mode 100644 index 000000000..15876cbfc --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/dynamic_search_ads_search_term_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/dynamic_search_ads_search_term_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB#DynamicSearchAdsSearchTermViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nQgoogle/ads/googleads_v5/proto/resources/dynamic_search_ads_search_term_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x81\x05\n\x1e\x44ynamicSearchAdsSearchTermView\x12V\n\rresource_name\x18\x01 \x01(\tB?\xe0\x41\x03\xfa\x41\x39\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView\x12\x1d\n\x0bsearch_term\x18\t \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x1a\n\x08headline\x18\n \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1e\n\x0clanding_page\x18\x0b \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1a\n\x08page_url\x18\x0c \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12&\n\x14has_negative_keyword\x18\r \x01(\x08\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12&\n\x14has_matching_keyword\x18\x0e \x01(\x08\x42\x03\xe0\x41\x03H\x05\x88\x01\x01\x12\"\n\x10has_negative_url\x18\x0f \x01(\x08\x42\x03\xe0\x41\x03H\x06\x88\x01\x01:\x99\x01\xea\x41\x95\x01\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView\x12Zcustomers/{customer}/dynamicSearchAdsSearchTermViews/{dynamic_search_ads_search_term_view}B\x0e\n\x0c_search_termB\x0b\n\t_headlineB\x0f\n\r_landing_pageB\x0b\n\t_page_urlB\x17\n\x15_has_negative_keywordB\x17\n\x15_has_matching_keywordB\x13\n\x11_has_negative_urlB\x90\x02\n%com.google.ads.googleads.v5.resourcesB#DynamicSearchAdsSearchTermViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_DYNAMICSEARCHADSSEARCHTERMVIEW = _descriptor.Descriptor( + name='DynamicSearchAdsSearchTermView', + full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A9\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_term', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.search_term', index=1, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.headline', index=2, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='landing_page', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.landing_page', index=3, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_url', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.page_url', index=4, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_negative_keyword', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.has_negative_keyword', index=5, + number=13, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_matching_keyword', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.has_matching_keyword', index=6, + number=14, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_negative_url', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView.has_negative_url', index=7, + number=15, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\225\001\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView\022Zcustomers/{customer}/dynamicSearchAdsSearchTermViews/{dynamic_search_ads_search_term_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_search_term', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._search_term', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_headline', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._headline', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_landing_page', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._landing_page', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_page_url', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._page_url', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_has_negative_keyword', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._has_negative_keyword', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_has_matching_keyword', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._has_matching_keyword', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_has_negative_url', full_name='google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView._has_negative_url', + index=6, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=211, + serialized_end=852, +) + +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_search_term'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['search_term']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['search_term'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_search_term'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_headline'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['headline']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['headline'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_headline'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_landing_page'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['landing_page']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['landing_page'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_landing_page'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_page_url'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['page_url']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['page_url'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_page_url'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_negative_keyword'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_keyword']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_keyword'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_negative_keyword'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_matching_keyword'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_matching_keyword']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_matching_keyword'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_matching_keyword'] +_DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_negative_url'].fields.append( + _DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_url']) +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_url'].containing_oneof = _DYNAMICSEARCHADSSEARCHTERMVIEW.oneofs_by_name['_has_negative_url'] +DESCRIPTOR.message_types_by_name['DynamicSearchAdsSearchTermView'] = _DYNAMICSEARCHADSSEARCHTERMVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DynamicSearchAdsSearchTermView = _reflection.GeneratedProtocolMessageType('DynamicSearchAdsSearchTermView', (_message.Message,), { + 'DESCRIPTOR' : _DYNAMICSEARCHADSSEARCHTERMVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.dynamic_search_ads_search_term_view_pb2' + , + '__doc__': """A dynamic search ads search term view. + + Attributes: + resource_name: + Output only. The resource name of the dynamic search ads + search term view. Dynamic search ads search term view resource + names have the form: ``customers/{customer_id}/dynamicSearchA + dsSearchTermViews/{ad_group_id}~{search_term_fp}~{headline_fp} + ~{landing_page_fp}~{page_url_fp}`` + search_term: + Output only. Search term This field is read-only. + headline: + Output only. The dynamically generated headline of the Dynamic + Search Ad. This field is read-only. + landing_page: + Output only. The dynamically selected landing page URL of the + impression. This field is read-only. + page_url: + Output only. The URL of page feed item served for the + impression. This field is read-only. + has_negative_keyword: + Output only. True if query matches a negative keyword. This + field is read-only. + has_matching_keyword: + Output only. True if query is added to targeted keywords. + This field is read-only. + has_negative_url: + Output only. True if query matches a negative url. This field + is read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView) + }) +_sym_db.RegisterMessage(DynamicSearchAdsSearchTermView) + + +DESCRIPTOR._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['resource_name']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['search_term']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['headline']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['landing_page']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['page_url']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_keyword']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_matching_keyword']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW.fields_by_name['has_negative_url']._options = None +_DYNAMICSEARCHADSSEARCHTERMVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/dynamic_search_ads_search_term_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2.py b/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2.py new file mode 100644 index 000000000..a3b6b9eb4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/expanded_landing_page_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/expanded_landing_page_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\034ExpandedLandingPageViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/resources/expanded_landing_page_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xad\x02\n\x17\x45xpandedLandingPageView\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x03\xfa\x41\x32\n0googleads.googleapis.com/ExpandedLandingPageView\x12=\n\x12\x65xpanded_final_url\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:\x81\x01\xea\x41~\n0googleads.googleapis.com/ExpandedLandingPageView\x12Jcustomers/{customer}/expandedLandingPageViews/{expanded_landing_page_view}B\x89\x02\n%com.google.ads.googleads.v5.resourcesB\x1c\x45xpandedLandingPageViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_EXPANDEDLANDINGPAGEVIEW = _descriptor.Descriptor( + name='ExpandedLandingPageView', + full_name='google.ads.googleads.v5.resources.ExpandedLandingPageView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ExpandedLandingPageView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A2\n0googleads.googleapis.com/ExpandedLandingPageView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='expanded_final_url', full_name='google.ads.googleads.v5.resources.ExpandedLandingPageView.expanded_final_url', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A~\n0googleads.googleapis.com/ExpandedLandingPageView\022Jcustomers/{customer}/expandedLandingPageViews/{expanded_landing_page_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=234, + serialized_end=535, +) + +_EXPANDEDLANDINGPAGEVIEW.fields_by_name['expanded_final_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['ExpandedLandingPageView'] = _EXPANDEDLANDINGPAGEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExpandedLandingPageView = _reflection.GeneratedProtocolMessageType('ExpandedLandingPageView', (_message.Message,), { + 'DESCRIPTOR' : _EXPANDEDLANDINGPAGEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.expanded_landing_page_view_pb2' + , + '__doc__': """A landing page view with metrics aggregated at the expanded final URL + level. + + Attributes: + resource_name: + Output only. The resource name of the expanded landing page + view. Expanded landing page view resource names have the form: + ``customers/{customer_id}/expandedLandingPageViews/{expanded_f + inal_url_fingerprint}`` + expanded_final_url: + Output only. The final URL that clicks are directed to. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ExpandedLandingPageView) + }) +_sym_db.RegisterMessage(ExpandedLandingPageView) + + +DESCRIPTOR._options = None +_EXPANDEDLANDINGPAGEVIEW.fields_by_name['resource_name']._options = None +_EXPANDEDLANDINGPAGEVIEW.fields_by_name['expanded_final_url']._options = None +_EXPANDEDLANDINGPAGEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/expanded_landing_page_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2.py b/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2.py new file mode 100644 index 000000000..d9f663caa --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2.py @@ -0,0 +1,387 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/extension_feed_item.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.common import extensions_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2 +from google.ads.google_ads.v5.proto.enums import extension_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_target_device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/extension_feed_item.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\026ExtensionFeedItemProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/resources/extension_feed_item.proto\x12!google.ads.googleads.v5.resources\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a\x35google/ads/googleads_v5/proto/common/extensions.proto\x1a\x38google/ads/googleads_v5/proto/enums/extension_type.proto\x1a:google/ads/googleads_v5/proto/enums/feed_item_status.proto\x1a\x41google/ads/googleads_v5/proto/enums/feed_item_target_device.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\x84\x10\n\x11\x45xtensionFeedItem\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x05\xfa\x41,\n*googleads.googleapis.com/ExtensionFeedItem\x12,\n\x02id\x18\x18 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12[\n\x0e\x65xtension_type\x18\r \x01(\x0e\x32>.google.ads.googleads.v5.enums.ExtensionTypeEnum.ExtensionTypeB\x03\xe0\x41\x03\x12\x35\n\x0fstart_date_time\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rend_date_time\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x44\n\x0c\x61\x64_schedules\x18\x10 \x03(\x0b\x32..google.ads.googleads.v5.common.AdScheduleInfo\x12\\\n\x06\x64\x65vice\x18\x11 \x01(\x0e\x32L.google.ads.googleads.v5.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice\x12s\n\x1ctargeted_geo_target_constant\x18\x14 \x01(\x0b\x32\x1c.google.protobuf.StringValueB/\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstant\x12\x45\n\x10targeted_keyword\x18\x16 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfo\x12U\n\x06status\x18\x04 \x01(\x0e\x32@.google.ads.googleads.v5.enums.FeedItemStatusEnum.FeedItemStatusB\x03\xe0\x41\x03\x12N\n\x12sitelink_feed_item\x18\x02 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.SitelinkFeedItemH\x00\x12\x61\n\x1cstructured_snippet_feed_item\x18\x03 \x01(\x0b\x32\x39.google.ads.googleads.v5.common.StructuredSnippetFeedItemH\x00\x12\x44\n\rapp_feed_item\x18\x07 \x01(\x0b\x32+.google.ads.googleads.v5.common.AppFeedItemH\x00\x12\x46\n\x0e\x63\x61ll_feed_item\x18\x08 \x01(\x0b\x32,.google.ads.googleads.v5.common.CallFeedItemH\x00\x12L\n\x11\x63\x61llout_feed_item\x18\t \x01(\x0b\x32/.google.ads.googleads.v5.common.CalloutFeedItemH\x00\x12U\n\x16text_message_feed_item\x18\n \x01(\x0b\x32\x33.google.ads.googleads.v5.common.TextMessageFeedItemH\x00\x12H\n\x0fprice_feed_item\x18\x0b \x01(\x0b\x32-.google.ads.googleads.v5.common.PriceFeedItemH\x00\x12P\n\x13promotion_feed_item\x18\x0c \x01(\x0b\x32\x31.google.ads.googleads.v5.common.PromotionFeedItemH\x00\x12S\n\x12location_feed_item\x18\x0e \x01(\x0b\x32\x30.google.ads.googleads.v5.common.LocationFeedItemB\x03\xe0\x41\x03H\x00\x12\x66\n\x1c\x61\x66\x66iliate_location_feed_item\x18\x0f \x01(\x0b\x32\x39.google.ads.googleads.v5.common.AffiliateLocationFeedItemB\x03\xe0\x41\x03H\x00\x12W\n\x17hotel_callout_feed_item\x18\x17 \x01(\x0b\x32\x34.google.ads.googleads.v5.common.HotelCalloutFeedItemH\x00\x12\x61\n\x11targeted_campaign\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.StringValueB&\xfa\x41#\n!googleads.googleapis.com/CampaignH\x01\x12`\n\x11targeted_ad_group\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.StringValueB%\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x01:n\xea\x41k\n*googleads.googleapis.com/ExtensionFeedItem\x12=customers/{customer}/extensionFeedItems/{extension_feed_item}B\x0b\n\textensionB\x1c\n\x1aserving_resource_targetingB\x83\x02\n%com.google.ads.googleads.v5.resourcesB\x16\x45xtensionFeedItemProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_EXTENSIONFEEDITEM = _descriptor.Descriptor( + name='ExtensionFeedItem', + full_name='google.ads.googleads.v5.resources.ExtensionFeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A,\n*googleads.googleapis.com/ExtensionFeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.id', index=1, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_type', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.extension_type', index=2, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date_time', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.start_date_time', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date_time', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.end_date_time', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_schedules', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.ad_schedules', index=5, + number=16, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.device', index=6, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeted_geo_target_constant', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.targeted_geo_target_constant', index=7, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeted_keyword', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.targeted_keyword', index=8, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.status', index=9, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sitelink_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.sitelink_feed_item', index=10, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='structured_snippet_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.structured_snippet_feed_item', index=11, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.app_feed_item', index=12, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.call_feed_item', index=13, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='callout_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.callout_feed_item', index=14, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_message_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.text_message_feed_item', index=15, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.price_feed_item', index=16, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promotion_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.promotion_feed_item', index=17, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.location_feed_item', index=18, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='affiliate_location_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.affiliate_location_feed_item', index=19, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_callout_feed_item', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.hotel_callout_feed_item', index=20, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeted_campaign', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.targeted_campaign', index=21, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeted_ad_group', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.targeted_ad_group', index=22, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ak\n*googleads.googleapis.com/ExtensionFeedItem\022=customers/{customer}/extensionFeedItems/{extension_feed_item}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='extension', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.extension', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='serving_resource_targeting', full_name='google.ads.googleads.v5.resources.ExtensionFeedItem.serving_resource_targeting', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=520, + serialized_end=2572, +) + +_EXTENSIONFEEDITEM.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_EXTENSIONFEEDITEM.fields_by_name['extension_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_extension__type__pb2._EXTENSIONTYPEENUM_EXTENSIONTYPE +_EXTENSIONFEEDITEM.fields_by_name['start_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXTENSIONFEEDITEM.fields_by_name['end_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXTENSIONFEEDITEM.fields_by_name['ad_schedules'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._ADSCHEDULEINFO +_EXTENSIONFEEDITEM.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2._FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE +_EXTENSIONFEEDITEM.fields_by_name['targeted_geo_target_constant'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXTENSIONFEEDITEM.fields_by_name['targeted_keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_EXTENSIONFEEDITEM.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2._FEEDITEMSTATUSENUM_FEEDITEMSTATUS +_EXTENSIONFEEDITEM.fields_by_name['sitelink_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._SITELINKFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['structured_snippet_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._STRUCTUREDSNIPPETFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['app_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._APPFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['call_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['callout_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLOUTFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['text_message_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._TEXTMESSAGEFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['price_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._PRICEFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['promotion_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._PROMOTIONFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['location_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._LOCATIONFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['affiliate_location_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._AFFILIATELOCATIONFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['hotel_callout_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._HOTELCALLOUTFEEDITEM +_EXTENSIONFEEDITEM.fields_by_name['targeted_campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXTENSIONFEEDITEM.fields_by_name['targeted_ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['sitelink_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['sitelink_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['structured_snippet_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['structured_snippet_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['app_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['app_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['call_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['call_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['callout_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['callout_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['text_message_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['text_message_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['price_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['price_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['promotion_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['promotion_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['location_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['location_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['affiliate_location_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['affiliate_location_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['extension'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['hotel_callout_feed_item']) +_EXTENSIONFEEDITEM.fields_by_name['hotel_callout_feed_item'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['extension'] +_EXTENSIONFEEDITEM.oneofs_by_name['serving_resource_targeting'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['targeted_campaign']) +_EXTENSIONFEEDITEM.fields_by_name['targeted_campaign'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['serving_resource_targeting'] +_EXTENSIONFEEDITEM.oneofs_by_name['serving_resource_targeting'].fields.append( + _EXTENSIONFEEDITEM.fields_by_name['targeted_ad_group']) +_EXTENSIONFEEDITEM.fields_by_name['targeted_ad_group'].containing_oneof = _EXTENSIONFEEDITEM.oneofs_by_name['serving_resource_targeting'] +DESCRIPTOR.message_types_by_name['ExtensionFeedItem'] = _EXTENSIONFEEDITEM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ExtensionFeedItem = _reflection.GeneratedProtocolMessageType('ExtensionFeedItem', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONFEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.resources.extension_feed_item_pb2' + , + '__doc__': """An extension feed item. + + Attributes: + resource_name: + Immutable. The resource name of the extension feed item. + Extension feed item resource names have the form: + ``customers/{customer_id}/extensionFeedItems/{feed_item_id}`` + id: + Output only. The ID of this feed item. Read-only. + extension_type: + Output only. The extension type of the extension feed item. + This field is read-only. + start_date_time: + Start time in which this feed item is effective and can begin + serving. The time is in the customer's time zone. The format + is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 09:15:00" or + "2018-02-01 14:34:30" + end_date_time: + End time in which this feed item is no longer effective and + will stop serving. The time is in the customer's time zone. + The format is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 + 09:15:00" or "2018-02-01 14:34:30" + ad_schedules: + List of non-overlapping schedules specifying all time + intervals for which the feed item may serve. There can be a + maximum of 6 schedules per day. + device: + The targeted device. + targeted_geo_target_constant: + The targeted geo target constant. + targeted_keyword: + The targeted keyword. + status: + Output only. Status of the feed item. This field is read-only. + extension: + Extension type. + sitelink_feed_item: + Sitelink extension. + structured_snippet_feed_item: + Structured snippet extension. + app_feed_item: + App extension. + call_feed_item: + Call extension. + callout_feed_item: + Callout extension. + text_message_feed_item: + Text message extension. + price_feed_item: + Price extension. + promotion_feed_item: + Promotion extension. + location_feed_item: + Output only. Location extension. Locations are synced from a + GMB account into a feed. This field is read-only. + affiliate_location_feed_item: + Output only. Affiliate location extension. Feed locations are + populated by Google Ads based on a chain ID. This field is + read-only. + hotel_callout_feed_item: + Hotel Callout extension. + serving_resource_targeting: + Targeting at either the campaign or ad group level. Feed items + that target a campaign or ad group will only serve with that + resource. + targeted_campaign: + The targeted campaign. + targeted_ad_group: + The targeted ad group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ExtensionFeedItem) + }) +_sym_db.RegisterMessage(ExtensionFeedItem) + + +DESCRIPTOR._options = None +_EXTENSIONFEEDITEM.fields_by_name['resource_name']._options = None +_EXTENSIONFEEDITEM.fields_by_name['id']._options = None +_EXTENSIONFEEDITEM.fields_by_name['extension_type']._options = None +_EXTENSIONFEEDITEM.fields_by_name['targeted_geo_target_constant']._options = None +_EXTENSIONFEEDITEM.fields_by_name['status']._options = None +_EXTENSIONFEEDITEM.fields_by_name['location_feed_item']._options = None +_EXTENSIONFEEDITEM.fields_by_name['affiliate_location_feed_item']._options = None +_EXTENSIONFEEDITEM.fields_by_name['targeted_campaign']._options = None +_EXTENSIONFEEDITEM.fields_by_name['targeted_ad_group']._options = None +_EXTENSIONFEEDITEM._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/extension_feed_item_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/feed_item_pb2.py b/google/ads/google_ads/v5/proto/resources/feed_item_pb2.py new file mode 100644 index 000000000..3e7674797 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_item_pb2.py @@ -0,0 +1,603 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/feed_item.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v5.proto.common import feed_common_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2 +from google.ads.google_ads.v5.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_quality_approval_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__approval__status__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_quality_disapproval_reason_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__disapproval__reason__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_validation_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__validation__status__pb2 +from google.ads.google_ads.v5.proto.enums import geo_targeting_restriction_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__targeting__restriction__pb2 +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.ads.google_ads.v5.proto.enums import policy_approval_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2 +from google.ads.google_ads.v5.proto.enums import policy_review_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2 +from google.ads.google_ads.v5.proto.errors import feed_item_validation_error_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/feed_item.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\rFeedItemProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/resources/feed_item.proto\x12!google.ads.googleads.v5.resources\x1a;google/ads/googleads_v5/proto/common/custom_parameter.proto\x1a\x36google/ads/googleads_v5/proto/common/feed_common.proto\x1a\x31google/ads/googleads_v5/proto/common/policy.proto\x1aKgoogle/ads/googleads_v5/proto/enums/feed_item_quality_approval_status.proto\x1aNgoogle/ads/googleads_v5/proto/enums/feed_item_quality_disapproval_reason.proto\x1a:google/ads/googleads_v5/proto/enums/feed_item_status.proto\x1a\x45google/ads/googleads_v5/proto/enums/feed_item_validation_status.proto\x1a\x43google/ads/googleads_v5/proto/enums/geo_targeting_restriction.proto\x1a:google/ads/googleads_v5/proto/enums/placeholder_type.proto\x1a@google/ads/googleads_v5/proto/enums/policy_approval_status.proto\x1a>google/ads/googleads_v5/proto/enums/policy_review_status.proto\x1a\x45google/ads/googleads_v5/proto/errors/feed_item_validation_error.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xdd\x06\n\x08\x46\x65\x65\x64Item\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/FeedItem\x12Q\n\x04\x66\x65\x65\x64\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB%\xe0\x41\x05\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/Feed\x12,\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x35\n\x0fstart_date_time\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rend_date_time\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12S\n\x10\x61ttribute_values\x18\x06 \x03(\x0b\x32\x39.google.ads.googleads.v5.resources.FeedItemAttributeValue\x12u\n\x19geo_targeting_restriction\x18\x07 \x01(\x0e\x32R.google.ads.googleads.v5.enums.GeoTargetingRestrictionEnum.GeoTargetingRestriction\x12N\n\x15url_custom_parameters\x18\x08 \x03(\x0b\x32/.google.ads.googleads.v5.common.CustomParameter\x12U\n\x06status\x18\t \x01(\x0e\x32@.google.ads.googleads.v5.enums.FeedItemStatusEnum.FeedItemStatusB\x03\xe0\x41\x03\x12[\n\x0cpolicy_infos\x18\n \x03(\x0b\x32@.google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfoB\x03\xe0\x41\x03:R\xea\x41O\n!googleads.googleapis.com/FeedItem\x12*customers/{customer}/feedItems/{feed_item}\"\xae\x04\n\x16\x46\x65\x65\x64ItemAttributeValue\x12\x36\n\x11\x66\x65\x65\x64_attribute_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x32\n\rinteger_value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x31\n\rboolean_value\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x32\n\x0cstring_value\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64ouble_value\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12:\n\x0bprice_value\x18\x06 \x01(\x0b\x32%.google.ads.googleads.v5.common.Money\x12\x33\n\x0einteger_values\x18\x07 \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x32\n\x0e\x62oolean_values\x18\x08 \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\rstring_values\x18\t \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rdouble_values\x18\n \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\"\xdf\x07\n\x1d\x46\x65\x65\x64ItemPlaceholderPolicyInfo\x12\x66\n\x15placeholder_type_enum\x18\n \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.PlaceholderTypeEnum.PlaceholderTypeB\x03\xe0\x41\x03\x12\x45\n\x1a\x66\x65\x65\x64_mapping_resource_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x64\n\rreview_status\x18\x03 \x01(\x0e\x32H.google.ads.googleads.v5.enums.PolicyReviewStatusEnum.PolicyReviewStatusB\x03\xe0\x41\x03\x12j\n\x0f\x61pproval_status\x18\x04 \x01(\x0e\x32L.google.ads.googleads.v5.enums.PolicyApprovalStatusEnum.PolicyApprovalStatusB\x03\xe0\x41\x03\x12S\n\x14policy_topic_entries\x18\x05 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.PolicyTopicEntryB\x03\xe0\x41\x03\x12t\n\x11validation_status\x18\x06 \x01(\x0e\x32T.google.ads.googleads.v5.enums.FeedItemValidationStatusEnum.FeedItemValidationStatusB\x03\xe0\x41\x03\x12Z\n\x11validation_errors\x18\x07 \x03(\x0b\x32:.google.ads.googleads.v5.resources.FeedItemValidationErrorB\x03\xe0\x41\x03\x12\x84\x01\n\x17quality_approval_status\x18\x08 \x01(\x0e\x32^.google.ads.googleads.v5.enums.FeedItemQualityApprovalStatusEnum.FeedItemQualityApprovalStatusB\x03\xe0\x41\x03\x12\x8e\x01\n\x1bquality_disapproval_reasons\x18\t \x03(\x0e\x32\x64.google.ads.googleads.v5.enums.FeedItemQualityDisapprovalReasonEnum.FeedItemQualityDisapprovalReasonB\x03\xe0\x41\x03\"\xba\x02\n\x17\x46\x65\x65\x64ItemValidationError\x12r\n\x10validation_error\x18\x01 \x01(\x0e\x32S.google.ads.googleads.v5.errors.FeedItemValidationErrorEnum.FeedItemValidationErrorB\x03\xe0\x41\x03\x12\x36\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12<\n\x12\x66\x65\x65\x64_attribute_ids\x18\x03 \x03(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x35\n\nextra_info\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x42\xfa\x01\n%com.google.ads.googleads.v5.resourcesB\rFeedItemProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__approval__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__disapproval__reason__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__validation__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__targeting__restriction__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FEEDITEM = _descriptor.Descriptor( + name='FeedItem', + full_name='google.ads.googleads.v5.resources.FeedItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.FeedItem.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/FeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.resources.FeedItem.feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.FeedItem.id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_date_time', full_name='google.ads.googleads.v5.resources.FeedItem.start_date_time', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_date_time', full_name='google.ads.googleads.v5.resources.FeedItem.end_date_time', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribute_values', full_name='google.ads.googleads.v5.resources.FeedItem.attribute_values', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_targeting_restriction', full_name='google.ads.googleads.v5.resources.FeedItem.geo_targeting_restriction', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v5.resources.FeedItem.url_custom_parameters', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.FeedItem.status', index=8, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_infos', full_name='google.ads.googleads.v5.resources.FeedItem.policy_infos', index=9, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AO\n!googleads.googleapis.com/FeedItem\022*customers/{customer}/feedItems/{feed_item}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1003, + serialized_end=1864, +) + + +_FEEDITEMATTRIBUTEVALUE = _descriptor.Descriptor( + name='FeedItemAttributeValue', + full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='feed_attribute_id', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.feed_attribute_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='integer_value', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.integer_value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='boolean_value', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.boolean_value', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_value', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.string_value', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='double_value', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.double_value', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_value', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.price_value', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='integer_values', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.integer_values', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='boolean_values', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.boolean_values', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='string_values', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.string_values', index=8, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='double_values', full_name='google.ads.googleads.v5.resources.FeedItemAttributeValue.double_values', index=9, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1867, + serialized_end=2425, +) + + +_FEEDITEMPLACEHOLDERPOLICYINFO = _descriptor.Descriptor( + name='FeedItemPlaceholderPolicyInfo', + full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='placeholder_type_enum', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.placeholder_type_enum', index=0, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_mapping_resource_name', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.feed_mapping_resource_name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='review_status', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.review_status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='approval_status', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.approval_status', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_topic_entries', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.policy_topic_entries', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validation_status', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.validation_status', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validation_errors', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.validation_errors', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quality_approval_status', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.quality_approval_status', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='quality_disapproval_reasons', full_name='google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo.quality_disapproval_reasons', index=8, + number=9, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2428, + serialized_end=3419, +) + + +_FEEDITEMVALIDATIONERROR = _descriptor.Descriptor( + name='FeedItemValidationError', + full_name='google.ads.googleads.v5.resources.FeedItemValidationError', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='validation_error', full_name='google.ads.googleads.v5.resources.FeedItemValidationError.validation_error', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.resources.FeedItemValidationError.description', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_attribute_ids', full_name='google.ads.googleads.v5.resources.FeedItemValidationError.feed_attribute_ids', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extra_info', full_name='google.ads.googleads.v5.resources.FeedItemValidationError.extra_info', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3422, + serialized_end=3736, +) + +_FEEDITEM.fields_by_name['feed'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEM.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEM.fields_by_name['start_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEM.fields_by_name['end_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEM.fields_by_name['attribute_values'].message_type = _FEEDITEMATTRIBUTEVALUE +_FEEDITEM.fields_by_name['geo_targeting_restriction'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__targeting__restriction__pb2._GEOTARGETINGRESTRICTIONENUM_GEOTARGETINGRESTRICTION +_FEEDITEM.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_FEEDITEM.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__status__pb2._FEEDITEMSTATUSENUM_FEEDITEMSTATUS +_FEEDITEM.fields_by_name['policy_infos'].message_type = _FEEDITEMPLACEHOLDERPOLICYINFO +_FEEDITEMATTRIBUTEVALUE.fields_by_name['feed_attribute_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['integer_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['boolean_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['double_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['price_value'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_feed__common__pb2._MONEY +_FEEDITEMATTRIBUTEVALUE.fields_by_name['integer_values'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['boolean_values'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['string_values'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMATTRIBUTEVALUE.fields_by_name['double_values'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['placeholder_type_enum'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2._PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['feed_mapping_resource_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['review_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__review__status__pb2._POLICYREVIEWSTATUSENUM_POLICYREVIEWSTATUS +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['approval_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_policy__approval__status__pb2._POLICYAPPROVALSTATUSENUM_POLICYAPPROVALSTATUS +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['policy_topic_entries'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYTOPICENTRY +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['validation_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__validation__status__pb2._FEEDITEMVALIDATIONSTATUSENUM_FEEDITEMVALIDATIONSTATUS +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['validation_errors'].message_type = _FEEDITEMVALIDATIONERROR +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['quality_approval_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__approval__status__pb2._FEEDITEMQUALITYAPPROVALSTATUSENUM_FEEDITEMQUALITYAPPROVALSTATUS +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['quality_disapproval_reasons'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__quality__disapproval__reason__pb2._FEEDITEMQUALITYDISAPPROVALREASONENUM_FEEDITEMQUALITYDISAPPROVALREASON +_FEEDITEMVALIDATIONERROR.fields_by_name['validation_error'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_errors_dot_feed__item__validation__error__pb2._FEEDITEMVALIDATIONERRORENUM_FEEDITEMVALIDATIONERROR +_FEEDITEMVALIDATIONERROR.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMVALIDATIONERROR.fields_by_name['feed_attribute_ids'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEMVALIDATIONERROR.fields_by_name['extra_info'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['FeedItem'] = _FEEDITEM +DESCRIPTOR.message_types_by_name['FeedItemAttributeValue'] = _FEEDITEMATTRIBUTEVALUE +DESCRIPTOR.message_types_by_name['FeedItemPlaceholderPolicyInfo'] = _FEEDITEMPLACEHOLDERPOLICYINFO +DESCRIPTOR.message_types_by_name['FeedItemValidationError'] = _FEEDITEMVALIDATIONERROR +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItem = _reflection.GeneratedProtocolMessageType('FeedItem', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEM, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_item_pb2' + , + '__doc__': """A feed item. + + Attributes: + resource_name: + Immutable. The resource name of the feed item. Feed item + resource names have the form: + ``customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}`` + feed: + Immutable. The feed to which this feed item belongs. + id: + Output only. The ID of this feed item. + start_date_time: + Start time in which this feed item is effective and can begin + serving. The time is in the customer's time zone. The format + is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 09:15:00" or + "2018-02-01 14:34:30" + end_date_time: + End time in which this feed item is no longer effective and + will stop serving. The time is in the customer's time zone. + The format is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 + 09:15:00" or "2018-02-01 14:34:30" + attribute_values: + The feed item's attribute values. + geo_targeting_restriction: + Geo targeting restriction specifies the type of location that + can be used for targeting. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + status: + Output only. Status of the feed item. This field is read-only. + policy_infos: + Output only. List of info about a feed item's validation and + approval state for active feed mappings. There will be an + entry in the list for each type of feed mapping associated + with the feed, e.g. a feed with a sitelink and a call feed + mapping would cause every feed item associated with that feed + to have an entry in this list for both sitelink and call. This + field is read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedItem) + }) +_sym_db.RegisterMessage(FeedItem) + +FeedItemAttributeValue = _reflection.GeneratedProtocolMessageType('FeedItemAttributeValue', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMATTRIBUTEVALUE, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_item_pb2' + , + '__doc__': """A feed item attribute value. + + Attributes: + feed_attribute_id: + Id of the feed attribute for which the value is associated + with. + integer_value: + Int64 value. Should be set if feed\_attribute\_id refers to a + feed attribute of type INT64. + boolean_value: + Bool value. Should be set if feed\_attribute\_id refers to a + feed attribute of type BOOLEAN. + string_value: + String value. Should be set if feed\_attribute\_id refers to a + feed attribute of type STRING, URL or DATE\_TIME. For STRING + the maximum length is 1500 characters. For URL the maximum + length is 2076 characters. For DATE\_TIME the string must be + in the format "YYYYMMDD HHMMSS". + double_value: + Double value. Should be set if feed\_attribute\_id refers to a + feed attribute of type DOUBLE. + price_value: + Price value. Should be set if feed\_attribute\_id refers to a + feed attribute of type PRICE. + integer_values: + Repeated int64 value. Should be set if feed\_attribute\_id + refers to a feed attribute of type INT64\_LIST. + boolean_values: + Repeated bool value. Should be set if feed\_attribute\_id + refers to a feed attribute of type BOOLEAN\_LIST. + string_values: + Repeated string value. Should be set if feed\_attribute\_id + refers to a feed attribute of type STRING\_LIST, URL\_LIST or + DATE\_TIME\_LIST. For STRING\_LIST and URL\_LIST the total + size of the list in bytes may not exceed 3000. For + DATE\_TIME\_LIST the number of elements may not exceed 200. + For STRING\_LIST the maximum length of each string element is + 1500 characters. For URL\_LIST the maximum length is 2076 + characters. For DATE\_TIME the format of the string must be + the same as start and end time for the feed item. + double_values: + Repeated double value. Should be set if feed\_attribute\_id + refers to a feed attribute of type DOUBLE\_LIST. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedItemAttributeValue) + }) +_sym_db.RegisterMessage(FeedItemAttributeValue) + +FeedItemPlaceholderPolicyInfo = _reflection.GeneratedProtocolMessageType('FeedItemPlaceholderPolicyInfo', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMPLACEHOLDERPOLICYINFO, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_item_pb2' + , + '__doc__': """Policy, validation, and quality approval info for a feed item for the + specified placeholder type. + + Attributes: + placeholder_type_enum: + Output only. The placeholder type. + feed_mapping_resource_name: + Output only. The FeedMapping that contains the placeholder + type. + review_status: + Output only. Where the placeholder type is in the review + process. + approval_status: + Output only. The overall approval status of the placeholder + type, calculated based on the status of its individual policy + topic entries. + policy_topic_entries: + Output only. The list of policy findings for the placeholder + type. + validation_status: + Output only. The validation status of the palceholder type. + validation_errors: + Output only. List of placeholder type validation errors. + quality_approval_status: + Output only. Placeholder type quality evaluation approval + status. + quality_disapproval_reasons: + Output only. List of placeholder type quality evaluation + disapproval reasons. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedItemPlaceholderPolicyInfo) + }) +_sym_db.RegisterMessage(FeedItemPlaceholderPolicyInfo) + +FeedItemValidationError = _reflection.GeneratedProtocolMessageType('FeedItemValidationError', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMVALIDATIONERROR, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_item_pb2' + , + '__doc__': """Stores a validation error and the set of offending feed attributes + which together are responsible for causing a feed item validation + error. + + Attributes: + validation_error: + Output only. Error code indicating what validation error was + triggered. The description of the error can be found in the + 'description' field. + description: + Output only. The description of the validation error. + feed_attribute_ids: + Output only. Set of feed attributes in the feed item flagged + during validation. If empty, no specific feed attributes can + be associated with the error (e.g. error across the entire + feed item). + extra_info: + Output only. Any extra information related to this error which + is not captured by validation\_error and feed\_attribute\_id + (e.g. placeholder field IDs when feed\_attribute\_id is not + mapped). Note that extra\_info is not localized. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedItemValidationError) + }) +_sym_db.RegisterMessage(FeedItemValidationError) + + +DESCRIPTOR._options = None +_FEEDITEM.fields_by_name['resource_name']._options = None +_FEEDITEM.fields_by_name['feed']._options = None +_FEEDITEM.fields_by_name['id']._options = None +_FEEDITEM.fields_by_name['status']._options = None +_FEEDITEM.fields_by_name['policy_infos']._options = None +_FEEDITEM._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['placeholder_type_enum']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['feed_mapping_resource_name']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['review_status']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['approval_status']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['policy_topic_entries']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['validation_status']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['validation_errors']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['quality_approval_status']._options = None +_FEEDITEMPLACEHOLDERPOLICYINFO.fields_by_name['quality_disapproval_reasons']._options = None +_FEEDITEMVALIDATIONERROR.fields_by_name['validation_error']._options = None +_FEEDITEMVALIDATIONERROR.fields_by_name['description']._options = None +_FEEDITEMVALIDATIONERROR.fields_by_name['feed_attribute_ids']._options = None +_FEEDITEMVALIDATIONERROR.fields_by_name['extra_info']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/feed_item_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/feed_item_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_item_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2.py b/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2.py new file mode 100644 index 000000000..327330d45 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2.py @@ -0,0 +1,231 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/feed_item_target.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_target_device_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_target_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__status__pb2 +from google.ads.google_ads.v5.proto.enums import feed_item_target_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/feed_item_target.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023FeedItemTargetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/resources/feed_item_target.proto\x12!google.ads.googleads.v5.resources\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a\x41google/ads/googleads_v5/proto/enums/feed_item_target_device.proto\x1a\x41google/ads/googleads_v5/proto/enums/feed_item_target_status.proto\x1a?google/ads/googleads_v5/proto/enums/feed_item_target_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xd5\x08\n\x0e\x46\x65\x65\x64ItemTarget\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x05\xfa\x41)\n\'googleads.googleapis.com/FeedItemTarget\x12Z\n\tfeed_item\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/FeedItem\x12l\n\x15\x66\x65\x65\x64_item_target_type\x18\x03 \x01(\x0e\x32H.google.ads.googleads.v5.enums.FeedItemTargetTypeEnum.FeedItemTargetTypeB\x03\xe0\x41\x03\x12=\n\x13\x66\x65\x65\x64_item_target_id\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x61\n\x06status\x18\x0b \x01(\x0e\x32L.google.ads.googleads.v5.enums.FeedItemTargetStatusEnum.FeedItemTargetStatusB\x03\xe0\x41\x03\x12[\n\x08\x63\x61mpaign\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/CampaignH\x00\x12Z\n\x08\x61\x64_group\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB(\xe0\x41\x05\xfa\x41\"\n googleads.googleapis.com/AdGroupH\x00\x12\x43\n\x07keyword\x18\x07 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x05H\x00\x12o\n\x13geo_target_constant\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValueB2\xe0\x41\x05\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstantH\x00\x12\x63\n\x06\x64\x65vice\x18\t \x01(\x0e\x32L.google.ads.googleads.v5.enums.FeedItemTargetDeviceEnum.FeedItemTargetDeviceB\x03\xe0\x41\x05H\x00\x12J\n\x0b\x61\x64_schedule\x18\n \x01(\x0b\x32..google.ads.googleads.v5.common.AdScheduleInfoB\x03\xe0\x41\x05H\x00:e\xea\x41\x62\n\'googleads.googleapis.com/FeedItemTarget\x12\x37\x63ustomers/{customer}/feedItemTargets/{feed_item_target}B\x08\n\x06targetB\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13\x46\x65\x65\x64ItemTargetProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FEEDITEMTARGET = _descriptor.Descriptor( + name='FeedItemTarget', + full_name='google.ads.googleads.v5.resources.FeedItemTarget', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.FeedItemTarget.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A)\n\'googleads.googleapis.com/FeedItemTarget', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item', full_name='google.ads.googleads.v5.resources.FeedItemTarget.feed_item', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/FeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target_type', full_name='google.ads.googleads.v5.resources.FeedItemTarget.feed_item_target_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target_id', full_name='google.ads.googleads.v5.resources.FeedItemTarget.feed_item_target_id', index=3, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.FeedItemTarget.status', index=4, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.FeedItemTarget.campaign', index=5, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.FeedItemTarget.ad_group', index=6, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.FeedItemTarget.keyword', index=7, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v5.resources.FeedItemTarget.geo_target_constant', index=8, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v5.resources.FeedItemTarget.device', index=9, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_schedule', full_name='google.ads.googleads.v5.resources.FeedItemTarget.ad_schedule', index=10, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n\'googleads.googleapis.com/FeedItemTarget\0227customers/{customer}/feedItemTargets/{feed_item_target}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='target', full_name='google.ads.googleads.v5.resources.FeedItemTarget.target', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=476, + serialized_end=1585, +) + +_FEEDITEMTARGET.fields_by_name['feed_item'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMTARGET.fields_by_name['feed_item_target_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__type__pb2._FEEDITEMTARGETTYPEENUM_FEEDITEMTARGETTYPE +_FEEDITEMTARGET.fields_by_name['feed_item_target_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDITEMTARGET.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__status__pb2._FEEDITEMTARGETSTATUSENUM_FEEDITEMTARGETSTATUS +_FEEDITEMTARGET.fields_by_name['campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMTARGET.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMTARGET.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_FEEDITEMTARGET.fields_by_name['geo_target_constant'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDITEMTARGET.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__item__target__device__pb2._FEEDITEMTARGETDEVICEENUM_FEEDITEMTARGETDEVICE +_FEEDITEMTARGET.fields_by_name['ad_schedule'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._ADSCHEDULEINFO +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['campaign']) +_FEEDITEMTARGET.fields_by_name['campaign'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['ad_group']) +_FEEDITEMTARGET.fields_by_name['ad_group'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['keyword']) +_FEEDITEMTARGET.fields_by_name['keyword'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['geo_target_constant']) +_FEEDITEMTARGET.fields_by_name['geo_target_constant'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['device']) +_FEEDITEMTARGET.fields_by_name['device'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +_FEEDITEMTARGET.oneofs_by_name['target'].fields.append( + _FEEDITEMTARGET.fields_by_name['ad_schedule']) +_FEEDITEMTARGET.fields_by_name['ad_schedule'].containing_oneof = _FEEDITEMTARGET.oneofs_by_name['target'] +DESCRIPTOR.message_types_by_name['FeedItemTarget'] = _FEEDITEMTARGET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedItemTarget = _reflection.GeneratedProtocolMessageType('FeedItemTarget', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGET, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_item_target_pb2' + , + '__doc__': """A feed item target. + + Attributes: + resource_name: + Immutable. The resource name of the feed item target. Feed + item target resource names have the form: ``customers/{custome + r_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_targ + et_type}~{feed_item_target_id}`` + feed_item: + Immutable. The feed item to which this feed item target + belongs. + feed_item_target_type: + Output only. The target type of this feed item target. This + field is read-only. + feed_item_target_id: + Output only. The ID of the targeted resource. This field is + read-only. + status: + Output only. Status of the feed item target. This field is + read-only. + target: + The targeted resource. + campaign: + Immutable. The targeted campaign. + ad_group: + Immutable. The targeted ad group. + keyword: + Immutable. The targeted keyword. + geo_target_constant: + Immutable. The targeted geo target constant resource name. + device: + Immutable. The targeted device. + ad_schedule: + Immutable. The targeted schedule. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedItemTarget) + }) +_sym_db.RegisterMessage(FeedItemTarget) + + +DESCRIPTOR._options = None +_FEEDITEMTARGET.fields_by_name['resource_name']._options = None +_FEEDITEMTARGET.fields_by_name['feed_item']._options = None +_FEEDITEMTARGET.fields_by_name['feed_item_target_type']._options = None +_FEEDITEMTARGET.fields_by_name['feed_item_target_id']._options = None +_FEEDITEMTARGET.fields_by_name['status']._options = None +_FEEDITEMTARGET.fields_by_name['campaign']._options = None +_FEEDITEMTARGET.fields_by_name['ad_group']._options = None +_FEEDITEMTARGET.fields_by_name['keyword']._options = None +_FEEDITEMTARGET.fields_by_name['geo_target_constant']._options = None +_FEEDITEMTARGET.fields_by_name['device']._options = None +_FEEDITEMTARGET.fields_by_name['ad_schedule']._options = None +_FEEDITEMTARGET._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_item_target_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2.py b/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2.py new file mode 100644 index 000000000..6389f9709 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2.py @@ -0,0 +1,556 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/feed_mapping.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import ad_customizer_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__customizer__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import affiliate_location_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import app_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import call_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import callout_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_callout__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import custom_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import dsa_page_feed_criterion_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_dsa__page__feed__criterion__field__pb2 +from google.ads.google_ads.v5.proto.enums import education_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_education__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import feed_mapping_criterion_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__criterion__type__pb2 +from google.ads.google_ads.v5.proto.enums import feed_mapping_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__status__pb2 +from google.ads.google_ads.v5.proto.enums import flight_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_flight__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import hotel_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import job_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_job__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import local_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_local__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import location_extension_targeting_criterion_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__extension__targeting__criterion__field__pb2 +from google.ads.google_ads.v5.proto.enums import location_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import message_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_message__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.ads.google_ads.v5.proto.enums import price_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import promotion_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import real_estate_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_real__estate__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import sitelink_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_sitelink__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import structured_snippet_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_structured__snippet__placeholder__field__pb2 +from google.ads.google_ads.v5.proto.enums import travel_placeholder_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_travel__placeholder__field__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/feed_mapping.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\020FeedMappingProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/resources/feed_mapping.proto\x12!google.ads.googleads.v5.resources\x1aIgoogle/ads/googleads_v5/proto/enums/ad_customizer_placeholder_field.proto\x1aNgoogle/ads/googleads_v5/proto/enums/affiliate_location_placeholder_field.proto\x1a?google/ads/googleads_v5/proto/enums/app_placeholder_field.proto\x1a@google/ads/googleads_v5/proto/enums/call_placeholder_field.proto\x1a\x43google/ads/googleads_v5/proto/enums/callout_placeholder_field.proto\x1a\x42google/ads/googleads_v5/proto/enums/custom_placeholder_field.proto\x1aGgoogle/ads/googleads_v5/proto/enums/dsa_page_feed_criterion_field.proto\x1a\x45google/ads/googleads_v5/proto/enums/education_placeholder_field.proto\x1a\x45google/ads/googleads_v5/proto/enums/feed_mapping_criterion_type.proto\x1a=google/ads/googleads_v5/proto/enums/feed_mapping_status.proto\x1a\x42google/ads/googleads_v5/proto/enums/flight_placeholder_field.proto\x1a\x41google/ads/googleads_v5/proto/enums/hotel_placeholder_field.proto\x1a?google/ads/googleads_v5/proto/enums/job_placeholder_field.proto\x1a\x41google/ads/googleads_v5/proto/enums/local_placeholder_field.proto\x1aVgoogle/ads/googleads_v5/proto/enums/location_extension_targeting_criterion_field.proto\x1a\x44google/ads/googleads_v5/proto/enums/location_placeholder_field.proto\x1a\x43google/ads/googleads_v5/proto/enums/message_placeholder_field.proto\x1a:google/ads/googleads_v5/proto/enums/placeholder_type.proto\x1a\x41google/ads/googleads_v5/proto/enums/price_placeholder_field.proto\x1a\x45google/ads/googleads_v5/proto/enums/promotion_placeholder_field.proto\x1aGgoogle/ads/googleads_v5/proto/enums/real_estate_placeholder_field.proto\x1a\x44google/ads/googleads_v5/proto/enums/sitelink_placeholder_field.proto\x1aNgoogle/ads/googleads_v5/proto/enums/structured_snippet_placeholder_field.proto\x1a\x42google/ads/googleads_v5/proto/enums/travel_placeholder_field.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xa4\x05\n\x0b\x46\x65\x65\x64Mapping\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x05\xfa\x41&\n$googleads.googleapis.com/FeedMapping\x12Q\n\x04\x66\x65\x65\x64\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB%\xe0\x41\x05\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/Feed\x12_\n\x18\x61ttribute_field_mappings\x18\x05 \x03(\x0b\x32\x38.google.ads.googleads.v5.resources.AttributeFieldMappingB\x03\xe0\x41\x05\x12[\n\x06status\x18\x06 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.FeedMappingStatusEnum.FeedMappingStatusB\x03\xe0\x41\x03\x12\x63\n\x10placeholder_type\x18\x03 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.PlaceholderTypeEnum.PlaceholderTypeB\x03\xe0\x41\x05H\x00\x12s\n\x0e\x63riterion_type\x18\x04 \x01(\x0e\x32T.google.ads.googleads.v5.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionTypeB\x03\xe0\x41\x05H\x00:[\xea\x41X\n$googleads.googleapis.com/FeedMapping\x12\x30\x63ustomers/{customer}/feedMappings/{feed_mapping}B\x08\n\x06target\"\xde\x14\n\x15\x41ttributeFieldMapping\x12;\n\x11\x66\x65\x65\x64_attribute_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x05\x12\x32\n\x08\x66ield_id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12s\n\x0esitelink_field\x18\x03 \x01(\x0e\x32T.google.ads.googleads.v5.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12g\n\ncall_field\x18\x04 \x01(\x0e\x32L.google.ads.googleads.v5.enums.CallPlaceholderFieldEnum.CallPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12\x64\n\tapp_field\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.AppPlaceholderFieldEnum.AppPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12s\n\x0elocation_field\x18\x06 \x01(\x0e\x32T.google.ads.googleads.v5.enums.LocationPlaceholderFieldEnum.LocationPlaceholderFieldB\x03\xe0\x41\x03H\x00\x12\x8f\x01\n\x18\x61\x66\x66iliate_location_field\x18\x07 \x01(\x0e\x32\x66.google.ads.googleads.v5.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderFieldB\x03\xe0\x41\x03H\x00\x12p\n\rcallout_field\x18\x08 \x01(\x0e\x32R.google.ads.googleads.v5.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12\x8f\x01\n\x18structured_snippet_field\x18\t \x01(\x0e\x32\x66.google.ads.googleads.v5.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12p\n\rmessage_field\x18\n \x01(\x0e\x32R.google.ads.googleads.v5.enums.MessagePlaceholderFieldEnum.MessagePlaceholderFieldB\x03\xe0\x41\x05H\x00\x12j\n\x0bprice_field\x18\x0b \x01(\x0e\x32N.google.ads.googleads.v5.enums.PricePlaceholderFieldEnum.PricePlaceholderFieldB\x03\xe0\x41\x05H\x00\x12v\n\x0fpromotion_field\x18\x0c \x01(\x0e\x32V.google.ads.googleads.v5.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12\x80\x01\n\x13\x61\x64_customizer_field\x18\r \x01(\x0e\x32\\.google.ads.googleads.v5.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12z\n\x13\x64sa_page_feed_field\x18\x0e \x01(\x0e\x32V.google.ads.googleads.v5.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionFieldB\x03\xe0\x41\x05H\x00\x12\xa7\x01\n\"location_extension_targeting_field\x18\x0f \x01(\x0e\x32t.google.ads.googleads.v5.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionFieldB\x03\xe0\x41\x05H\x00\x12v\n\x0f\x65\x64ucation_field\x18\x10 \x01(\x0e\x32V.google.ads.googleads.v5.enums.EducationPlaceholderFieldEnum.EducationPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12m\n\x0c\x66light_field\x18\x11 \x01(\x0e\x32P.google.ads.googleads.v5.enums.FlightPlaceholderFieldEnum.FlightPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12m\n\x0c\x63ustom_field\x18\x12 \x01(\x0e\x32P.google.ads.googleads.v5.enums.CustomPlaceholderFieldEnum.CustomPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12j\n\x0bhotel_field\x18\x13 \x01(\x0e\x32N.google.ads.googleads.v5.enums.HotelPlaceholderFieldEnum.HotelPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12z\n\x11real_estate_field\x18\x14 \x01(\x0e\x32X.google.ads.googleads.v5.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderFieldB\x03\xe0\x41\x05H\x00\x12m\n\x0ctravel_field\x18\x15 \x01(\x0e\x32P.google.ads.googleads.v5.enums.TravelPlaceholderFieldEnum.TravelPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12j\n\x0blocal_field\x18\x16 \x01(\x0e\x32N.google.ads.googleads.v5.enums.LocalPlaceholderFieldEnum.LocalPlaceholderFieldB\x03\xe0\x41\x05H\x00\x12\x64\n\tjob_field\x18\x17 \x01(\x0e\x32J.google.ads.googleads.v5.enums.JobPlaceholderFieldEnum.JobPlaceholderFieldB\x03\xe0\x41\x05H\x00\x42\x07\n\x05\x66ieldB\xfd\x01\n%com.google.ads.googleads.v5.resourcesB\x10\x46\x65\x65\x64MappingProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__customizer__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_callout__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_dsa__page__feed__criterion__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_education__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__criterion__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_flight__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_job__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_local__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__extension__targeting__criterion__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_message__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_real__estate__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_sitelink__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_structured__snippet__placeholder__field__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_travel__placeholder__field__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FEEDMAPPING = _descriptor.Descriptor( + name='FeedMapping', + full_name='google.ads.googleads.v5.resources.FeedMapping', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.FeedMapping.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A&\n$googleads.googleapis.com/FeedMapping', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.resources.FeedMapping.feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribute_field_mappings', full_name='google.ads.googleads.v5.resources.FeedMapping.attribute_field_mappings', index=2, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.FeedMapping.status', index=3, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placeholder_type', full_name='google.ads.googleads.v5.resources.FeedMapping.placeholder_type', index=4, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_type', full_name='google.ads.googleads.v5.resources.FeedMapping.criterion_type', index=5, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AX\n$googleads.googleapis.com/FeedMapping\0220customers/{customer}/feedMappings/{feed_mapping}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='target', full_name='google.ads.googleads.v5.resources.FeedMapping.target', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1904, + serialized_end=2580, +) + + +_ATTRIBUTEFIELDMAPPING = _descriptor.Descriptor( + name='AttributeFieldMapping', + full_name='google.ads.googleads.v5.resources.AttributeFieldMapping', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='feed_attribute_id', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.feed_attribute_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_id', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.field_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sitelink_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.sitelink_field', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.call_field', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='app_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.app_field', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.location_field', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='affiliate_location_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.affiliate_location_field', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='callout_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.callout_field', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='structured_snippet_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.structured_snippet_field', index=8, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='message_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.message_field', index=9, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='price_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.price_field', index=10, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='promotion_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.promotion_field', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_customizer_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.ad_customizer_field', index=12, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dsa_page_feed_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.dsa_page_feed_field', index=13, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_extension_targeting_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.location_extension_targeting_field', index=14, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='education_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.education_field', index=15, + number=16, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='flight_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.flight_field', index=16, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.custom_field', index=17, + number=18, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.hotel_field', index=18, + number=19, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='real_estate_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.real_estate_field', index=19, + number=20, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='travel_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.travel_field', index=20, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='local_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.local_field', index=21, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='job_field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.job_field', index=22, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='field', full_name='google.ads.googleads.v5.resources.AttributeFieldMapping.field', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2583, + serialized_end=5237, +) + +_FEEDMAPPING.fields_by_name['feed'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDMAPPING.fields_by_name['attribute_field_mappings'].message_type = _ATTRIBUTEFIELDMAPPING +_FEEDMAPPING.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__status__pb2._FEEDMAPPINGSTATUSENUM_FEEDMAPPINGSTATUS +_FEEDMAPPING.fields_by_name['placeholder_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2._PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE +_FEEDMAPPING.fields_by_name['criterion_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__mapping__criterion__type__pb2._FEEDMAPPINGCRITERIONTYPEENUM_FEEDMAPPINGCRITERIONTYPE +_FEEDMAPPING.oneofs_by_name['target'].fields.append( + _FEEDMAPPING.fields_by_name['placeholder_type']) +_FEEDMAPPING.fields_by_name['placeholder_type'].containing_oneof = _FEEDMAPPING.oneofs_by_name['target'] +_FEEDMAPPING.oneofs_by_name['target'].fields.append( + _FEEDMAPPING.fields_by_name['criterion_type']) +_FEEDMAPPING.fields_by_name['criterion_type'].containing_oneof = _FEEDMAPPING.oneofs_by_name['target'] +_ATTRIBUTEFIELDMAPPING.fields_by_name['feed_attribute_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ATTRIBUTEFIELDMAPPING.fields_by_name['field_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ATTRIBUTEFIELDMAPPING.fields_by_name['sitelink_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_sitelink__placeholder__field__pb2._SITELINKPLACEHOLDERFIELDENUM_SITELINKPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['call_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_call__placeholder__field__pb2._CALLPLACEHOLDERFIELDENUM_CALLPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['app_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_app__placeholder__field__pb2._APPPLACEHOLDERFIELDENUM_APPPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__placeholder__field__pb2._LOCATIONPLACEHOLDERFIELDENUM_LOCATIONPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['affiliate_location_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__placeholder__field__pb2._AFFILIATELOCATIONPLACEHOLDERFIELDENUM_AFFILIATELOCATIONPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['callout_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_callout__placeholder__field__pb2._CALLOUTPLACEHOLDERFIELDENUM_CALLOUTPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['structured_snippet_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_structured__snippet__placeholder__field__pb2._STRUCTUREDSNIPPETPLACEHOLDERFIELDENUM_STRUCTUREDSNIPPETPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['message_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_message__placeholder__field__pb2._MESSAGEPLACEHOLDERFIELDENUM_MESSAGEPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['price_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_price__placeholder__field__pb2._PRICEPLACEHOLDERFIELDENUM_PRICEPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['promotion_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_promotion__placeholder__field__pb2._PROMOTIONPLACEHOLDERFIELDENUM_PROMOTIONPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['ad_customizer_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_ad__customizer__placeholder__field__pb2._ADCUSTOMIZERPLACEHOLDERFIELDENUM_ADCUSTOMIZERPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['dsa_page_feed_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_dsa__page__feed__criterion__field__pb2._DSAPAGEFEEDCRITERIONFIELDENUM_DSAPAGEFEEDCRITERIONFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_extension_targeting_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_location__extension__targeting__criterion__field__pb2._LOCATIONEXTENSIONTARGETINGCRITERIONFIELDENUM_LOCATIONEXTENSIONTARGETINGCRITERIONFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['education_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_education__placeholder__field__pb2._EDUCATIONPLACEHOLDERFIELDENUM_EDUCATIONPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['flight_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_flight__placeholder__field__pb2._FLIGHTPLACEHOLDERFIELDENUM_FLIGHTPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['custom_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_custom__placeholder__field__pb2._CUSTOMPLACEHOLDERFIELDENUM_CUSTOMPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['hotel_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_hotel__placeholder__field__pb2._HOTELPLACEHOLDERFIELDENUM_HOTELPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['real_estate_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_real__estate__placeholder__field__pb2._REALESTATEPLACEHOLDERFIELDENUM_REALESTATEPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['travel_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_travel__placeholder__field__pb2._TRAVELPLACEHOLDERFIELDENUM_TRAVELPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['local_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_local__placeholder__field__pb2._LOCALPLACEHOLDERFIELDENUM_LOCALPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.fields_by_name['job_field'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_job__placeholder__field__pb2._JOBPLACEHOLDERFIELDENUM_JOBPLACEHOLDERFIELD +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['sitelink_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['sitelink_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['call_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['call_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['app_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['app_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['location_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['affiliate_location_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['affiliate_location_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['callout_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['callout_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['structured_snippet_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['structured_snippet_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['message_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['message_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['price_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['price_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['promotion_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['promotion_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['ad_customizer_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['ad_customizer_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['dsa_page_feed_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['dsa_page_feed_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['location_extension_targeting_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_extension_targeting_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['education_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['education_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['flight_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['flight_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['custom_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['custom_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['hotel_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['hotel_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['real_estate_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['real_estate_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['travel_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['travel_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['local_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['local_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +_ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'].fields.append( + _ATTRIBUTEFIELDMAPPING.fields_by_name['job_field']) +_ATTRIBUTEFIELDMAPPING.fields_by_name['job_field'].containing_oneof = _ATTRIBUTEFIELDMAPPING.oneofs_by_name['field'] +DESCRIPTOR.message_types_by_name['FeedMapping'] = _FEEDMAPPING +DESCRIPTOR.message_types_by_name['AttributeFieldMapping'] = _ATTRIBUTEFIELDMAPPING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedMapping = _reflection.GeneratedProtocolMessageType('FeedMapping', (_message.Message,), { + 'DESCRIPTOR' : _FEEDMAPPING, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_mapping_pb2' + , + '__doc__': """A feed mapping. + + Attributes: + resource_name: + Immutable. The resource name of the feed mapping. Feed mapping + resource names have the form: ``customers/{customer_id}/feedM + appings/{feed_id}~{feed_mapping_id}`` + feed: + Immutable. The feed of this feed mapping. + attribute_field_mappings: + Immutable. Feed attributes to field mappings. These mappings + are a one-to-many relationship meaning that 1 feed attribute + can be used to populate multiple placeholder fields, but 1 + placeholder field can only draw data from 1 feed attribute. Ad + Customizer is an exception, 1 placeholder field can be mapped + to multiple feed attributes. Required. + status: + Output only. Status of the feed mapping. This field is read- + only. + target: + Feed mapping target. Can be either a placeholder or a + criterion. For a given feed, the active FeedMappings must have + unique targets. Required. + placeholder_type: + Immutable. The placeholder type of this mapping (i.e., if the + mapping maps feed attributes to placeholder fields). + criterion_type: + Immutable. The criterion type of this mapping (i.e., if the + mapping maps feed attributes to criterion fields). + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedMapping) + }) +_sym_db.RegisterMessage(FeedMapping) + +AttributeFieldMapping = _reflection.GeneratedProtocolMessageType('AttributeFieldMapping', (_message.Message,), { + 'DESCRIPTOR' : _ATTRIBUTEFIELDMAPPING, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_mapping_pb2' + , + '__doc__': """Maps from feed attribute id to a placeholder or criterion field id. + + Attributes: + feed_attribute_id: + Immutable. Feed attribute from which to map. + field_id: + Output only. The placeholder field ID. If a placeholder field + enum is not published in the current API version, then this + field will be populated and the field oneof will be empty. + This field is read-only. + field: + Placeholder or criterion field to be populated using data from + the above feed attribute. Required. + sitelink_field: + Immutable. Sitelink Placeholder Fields. + call_field: + Immutable. Call Placeholder Fields. + app_field: + Immutable. App Placeholder Fields. + location_field: + Output only. Location Placeholder Fields. This field is read- + only. + affiliate_location_field: + Output only. Affiliate Location Placeholder Fields. This field + is read-only. + callout_field: + Immutable. Callout Placeholder Fields. + structured_snippet_field: + Immutable. Structured Snippet Placeholder Fields. + message_field: + Immutable. Message Placeholder Fields. + price_field: + Immutable. Price Placeholder Fields. + promotion_field: + Immutable. Promotion Placeholder Fields. + ad_customizer_field: + Immutable. Ad Customizer Placeholder Fields + dsa_page_feed_field: + Immutable. Dynamic Search Ad Page Feed Fields. + location_extension_targeting_field: + Immutable. Location Target Fields. + education_field: + Immutable. Education Placeholder Fields + flight_field: + Immutable. Flight Placeholder Fields + custom_field: + Immutable. Custom Placeholder Fields + hotel_field: + Immutable. Hotel Placeholder Fields + real_estate_field: + Immutable. Real Estate Placeholder Fields + travel_field: + Immutable. Travel Placeholder Fields + local_field: + Immutable. Local Placeholder Fields + job_field: + Immutable. Job Placeholder Fields + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.AttributeFieldMapping) + }) +_sym_db.RegisterMessage(AttributeFieldMapping) + + +DESCRIPTOR._options = None +_FEEDMAPPING.fields_by_name['resource_name']._options = None +_FEEDMAPPING.fields_by_name['feed']._options = None +_FEEDMAPPING.fields_by_name['attribute_field_mappings']._options = None +_FEEDMAPPING.fields_by_name['status']._options = None +_FEEDMAPPING.fields_by_name['placeholder_type']._options = None +_FEEDMAPPING.fields_by_name['criterion_type']._options = None +_FEEDMAPPING._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['feed_attribute_id']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['field_id']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['sitelink_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['call_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['app_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['affiliate_location_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['callout_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['structured_snippet_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['message_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['price_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['promotion_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['ad_customizer_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['dsa_page_feed_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['location_extension_targeting_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['education_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['flight_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['custom_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['hotel_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['real_estate_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['travel_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['local_field']._options = None +_ATTRIBUTEFIELDMAPPING.fields_by_name['job_field']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_mapping_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/feed_pb2.py b/google/ads/google_ads/v5/proto/resources/feed_pb2.py new file mode 100644 index 000000000..e8cc93366 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_pb2.py @@ -0,0 +1,618 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/feed.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import affiliate_location_feed_relationship_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__feed__relationship__type__pb2 +from google.ads.google_ads.v5.proto.enums import feed_attribute_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__attribute__type__pb2 +from google.ads.google_ads.v5.proto.enums import feed_origin_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__origin__pb2 +from google.ads.google_ads.v5.proto.enums import feed_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/feed.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\tFeedProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n2google/ads/googleads_v5/proto/resources/feed.proto\x12!google.ads.googleads.v5.resources\x1aSgoogle/ads/googleads_v5/proto/enums/affiliate_location_feed_relationship_type.proto\x1a=google/ads/googleads_v5/proto/enums/feed_attribute_type.proto\x1a\x35google/ads/googleads_v5/proto/enums/feed_origin.proto\x1a\x35google/ads/googleads_v5/proto/enums/feed_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xc1\x0c\n\x04\x46\x65\x65\x64\x12<\n\rresource_name\x18\x01 \x01(\tB%\xe0\x41\x05\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/Feed\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12/\n\x04name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x05\x12\x44\n\nattributes\x18\x04 \x03(\x0b\x32\x30.google.ads.googleads.v5.resources.FeedAttribute\x12W\n\x14\x61ttribute_operations\x18\t \x03(\x0b\x32\x39.google.ads.googleads.v5.resources.FeedAttributeOperation\x12M\n\x06origin\x18\x05 \x01(\x0e\x32\x38.google.ads.googleads.v5.enums.FeedOriginEnum.FeedOriginB\x03\xe0\x41\x05\x12M\n\x06status\x18\x08 \x01(\x0e\x32\x38.google.ads.googleads.v5.enums.FeedStatusEnum.FeedStatusB\x03\xe0\x41\x03\x12\x63\n\x19places_location_feed_data\x18\x06 \x01(\x0b\x32>.google.ads.googleads.v5.resources.Feed.PlacesLocationFeedDataH\x00\x12i\n\x1c\x61\x66\x66iliate_location_feed_data\x18\x07 \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.Feed.AffiliateLocationFeedDataH\x00\x1a\xce\x04\n\x16PlacesLocationFeedData\x12\x61\n\noauth_info\x18\x01 \x01(\x0b\x32H.google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfoB\x03\xe0\x41\x05\x12\x33\n\remail_address\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x39\n\x13\x62usiness_account_id\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x14\x62usiness_name_filter\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x63\x61tegory_filters\x18\x05 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlabel_filters\x18\x06 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x1a\xb7\x01\n\tOAuthInfo\x12\x31\n\x0bhttp_method\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10http_request_url\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12?\n\x19http_authorization_header\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1a\xd7\x01\n\x19\x41\x66\x66iliateLocationFeedData\x12.\n\tchain_ids\x18\x01 \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x89\x01\n\x11relationship_type\x18\x02 \x01(\x0e\x32n.google.ads.googleads.v5.enums.AffiliateLocationFeedRelationshipTypeEnum.AffiliateLocationFeedRelationshipType:E\xea\x41\x42\n\x1dgoogleads.googleapis.com/Feed\x12!customers/{customer}/feeds/{feed}B\x1d\n\x1bsystem_feed_generation_data\"\xee\x01\n\rFeedAttribute\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12T\n\x04type\x18\x03 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.FeedAttributeTypeEnum.FeedAttributeType\x12\x32\n\x0eis_part_of_key\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\xec\x01\n\x16\x46\x65\x65\x64\x41ttributeOperation\x12Y\n\x08operator\x18\x01 \x01(\x0e\x32\x42.google.ads.googleads.v5.resources.FeedAttributeOperation.OperatorB\x03\xe0\x41\x03\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.FeedAttributeB\x03\xe0\x41\x03\"1\n\x08Operator\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x07\n\x03\x41\x44\x44\x10\x02\x42\xf6\x01\n%com.google.ads.googleads.v5.resourcesB\tFeedProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__feed__relationship__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__attribute__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__origin__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + +_FEEDATTRIBUTEOPERATION_OPERATOR = _descriptor.EnumDescriptor( + name='Operator', + full_name='google.ads.googleads.v5.resources.FeedAttributeOperation.Operator', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ADD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2502, + serialized_end=2551, +) +_sym_db.RegisterEnumDescriptor(_FEEDATTRIBUTEOPERATION_OPERATOR) + + +_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO = _descriptor.Descriptor( + name='OAuthInfo', + full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='http_method', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfo.http_method', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='http_request_url', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfo.http_request_url', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='http_authorization_header', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfo.http_authorization_header', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1568, + serialized_end=1751, +) + +_FEED_PLACESLOCATIONFEEDDATA = _descriptor.Descriptor( + name='PlacesLocationFeedData', + full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='oauth_info', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.oauth_info', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='email_address', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.email_address', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_account_id', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.business_account_id', index=2, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='business_name_filter', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.business_name_filter', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='category_filters', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.category_filters', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label_filters', full_name='google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.label_filters', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1161, + serialized_end=1751, +) + +_FEED_AFFILIATELOCATIONFEEDDATA = _descriptor.Descriptor( + name='AffiliateLocationFeedData', + full_name='google.ads.googleads.v5.resources.Feed.AffiliateLocationFeedData', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='chain_ids', full_name='google.ads.googleads.v5.resources.Feed.AffiliateLocationFeedData.chain_ids', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='relationship_type', full_name='google.ads.googleads.v5.resources.Feed.AffiliateLocationFeedData.relationship_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1754, + serialized_end=1969, +) + +_FEED = _descriptor.Descriptor( + name='Feed', + full_name='google.ads.googleads.v5.resources.Feed', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Feed.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Feed.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.Feed.name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attributes', full_name='google.ads.googleads.v5.resources.Feed.attributes', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribute_operations', full_name='google.ads.googleads.v5.resources.Feed.attribute_operations', index=4, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='origin', full_name='google.ads.googleads.v5.resources.Feed.origin', index=5, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.Feed.status', index=6, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='places_location_feed_data', full_name='google.ads.googleads.v5.resources.Feed.places_location_feed_data', index=7, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='affiliate_location_feed_data', full_name='google.ads.googleads.v5.resources.Feed.affiliate_location_feed_data', index=8, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_FEED_PLACESLOCATIONFEEDDATA, _FEED_AFFILIATELOCATIONFEEDDATA, ], + enum_types=[ + ], + serialized_options=b'\352AB\n\035googleads.googleapis.com/Feed\022!customers/{customer}/feeds/{feed}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='system_feed_generation_data', full_name='google.ads.googleads.v5.resources.Feed.system_feed_generation_data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=470, + serialized_end=2071, +) + + +_FEEDATTRIBUTE = _descriptor.Descriptor( + name='FeedAttribute', + full_name='google.ads.googleads.v5.resources.FeedAttribute', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.FeedAttribute.id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.FeedAttribute.name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.FeedAttribute.type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_part_of_key', full_name='google.ads.googleads.v5.resources.FeedAttribute.is_part_of_key', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2074, + serialized_end=2312, +) + + +_FEEDATTRIBUTEOPERATION = _descriptor.Descriptor( + name='FeedAttributeOperation', + full_name='google.ads.googleads.v5.resources.FeedAttributeOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operator', full_name='google.ads.googleads.v5.resources.FeedAttributeOperation.operator', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v5.resources.FeedAttributeOperation.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDATTRIBUTEOPERATION_OPERATOR, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2315, + serialized_end=2551, +) + +_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO.fields_by_name['http_method'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO.fields_by_name['http_request_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO.fields_by_name['http_authorization_header'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO.containing_type = _FEED_PLACESLOCATIONFEEDDATA +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['oauth_info'].message_type = _FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['email_address'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['business_account_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['business_name_filter'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['category_filters'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['label_filters'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED_PLACESLOCATIONFEEDDATA.containing_type = _FEED +_FEED_AFFILIATELOCATIONFEEDDATA.fields_by_name['chain_ids'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEED_AFFILIATELOCATIONFEEDDATA.fields_by_name['relationship_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_affiliate__location__feed__relationship__type__pb2._AFFILIATELOCATIONFEEDRELATIONSHIPTYPEENUM_AFFILIATELOCATIONFEEDRELATIONSHIPTYPE +_FEED_AFFILIATELOCATIONFEEDDATA.containing_type = _FEED +_FEED.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEED.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEED.fields_by_name['attributes'].message_type = _FEEDATTRIBUTE +_FEED.fields_by_name['attribute_operations'].message_type = _FEEDATTRIBUTEOPERATION +_FEED.fields_by_name['origin'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__origin__pb2._FEEDORIGINENUM_FEEDORIGIN +_FEED.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__status__pb2._FEEDSTATUSENUM_FEEDSTATUS +_FEED.fields_by_name['places_location_feed_data'].message_type = _FEED_PLACESLOCATIONFEEDDATA +_FEED.fields_by_name['affiliate_location_feed_data'].message_type = _FEED_AFFILIATELOCATIONFEEDDATA +_FEED.oneofs_by_name['system_feed_generation_data'].fields.append( + _FEED.fields_by_name['places_location_feed_data']) +_FEED.fields_by_name['places_location_feed_data'].containing_oneof = _FEED.oneofs_by_name['system_feed_generation_data'] +_FEED.oneofs_by_name['system_feed_generation_data'].fields.append( + _FEED.fields_by_name['affiliate_location_feed_data']) +_FEED.fields_by_name['affiliate_location_feed_data'].containing_oneof = _FEED.oneofs_by_name['system_feed_generation_data'] +_FEEDATTRIBUTE.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FEEDATTRIBUTE.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_FEEDATTRIBUTE.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_feed__attribute__type__pb2._FEEDATTRIBUTETYPEENUM_FEEDATTRIBUTETYPE +_FEEDATTRIBUTE.fields_by_name['is_part_of_key'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_FEEDATTRIBUTEOPERATION.fields_by_name['operator'].enum_type = _FEEDATTRIBUTEOPERATION_OPERATOR +_FEEDATTRIBUTEOPERATION.fields_by_name['value'].message_type = _FEEDATTRIBUTE +_FEEDATTRIBUTEOPERATION_OPERATOR.containing_type = _FEEDATTRIBUTEOPERATION +DESCRIPTOR.message_types_by_name['Feed'] = _FEED +DESCRIPTOR.message_types_by_name['FeedAttribute'] = _FEEDATTRIBUTE +DESCRIPTOR.message_types_by_name['FeedAttributeOperation'] = _FEEDATTRIBUTEOPERATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Feed = _reflection.GeneratedProtocolMessageType('Feed', (_message.Message,), { + + 'PlacesLocationFeedData' : _reflection.GeneratedProtocolMessageType('PlacesLocationFeedData', (_message.Message,), { + + 'OAuthInfo' : _reflection.GeneratedProtocolMessageType('OAuthInfo', (_message.Message,), { + 'DESCRIPTOR' : _FEED_PLACESLOCATIONFEEDDATA_OAUTHINFO, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """Data used for authorization using OAuth. + + Attributes: + http_method: + The HTTP method used to obtain authorization. + http_request_url: + The HTTP request URL used to obtain authorization. + http_authorization_header: + The HTTP authorization header used to obtain authorization. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData.OAuthInfo) + }) + , + 'DESCRIPTOR' : _FEED_PLACESLOCATIONFEEDDATA, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """Data used to configure a location feed populated from Google My + Business Locations. + + Attributes: + oauth_info: + Immutable. Required authentication token (from OAuth API) for + the email. This field can only be specified in a create + request. All its subfields are not selectable. + email_address: + Email address of a Google My Business account or email address + of a manager of the Google My Business account. Required. + business_account_id: + Plus page ID of the managed business whose locations should be + used. If this field is not set, then all businesses accessible + by the user (specified by email\_address) are used. This field + is mutate-only and is not selectable. + business_name_filter: + Used to filter Google My Business listings by business name. + If business\_name\_filter is set, only listings with a + matching business name are candidates to be sync'd into + FeedItems. + category_filters: + Used to filter Google My Business listings by categories. If + entries exist in category\_filters, only listings that belong + to any of the categories are candidates to be sync'd into + FeedItems. If no entries exist in category\_filters, then all + listings are candidates for syncing. + label_filters: + Used to filter Google My Business listings by labels. If + entries exist in label\_filters, only listings that has any of + the labels set are candidates to be synchronized into + FeedItems. If no entries exist in label\_filters, then all + listings are candidates for syncing. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Feed.PlacesLocationFeedData) + }) + , + + 'AffiliateLocationFeedData' : _reflection.GeneratedProtocolMessageType('AffiliateLocationFeedData', (_message.Message,), { + 'DESCRIPTOR' : _FEED_AFFILIATELOCATIONFEEDDATA, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """Data used to configure an affiliate location feed populated with the + specified chains. + + Attributes: + chain_ids: + The list of chains that the affiliate location feed will sync + the locations from. + relationship_type: + The relationship the chains have with the advertiser. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Feed.AffiliateLocationFeedData) + }) + , + 'DESCRIPTOR' : _FEED, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """A feed. + + Attributes: + resource_name: + Immutable. The resource name of the feed. Feed resource names + have the form: ``customers/{customer_id}/feeds/{feed_id}`` + id: + Output only. The ID of the feed. This field is read-only. + name: + Immutable. Name of the feed. Required. + attributes: + The Feed's attributes. Required on CREATE, unless + system\_feed\_generation\_data is provided, in which case + Google Ads will update the feed with the correct attributes. + Disallowed on UPDATE. Use attribute\_operations to add new + attributes. + attribute_operations: + The list of operations changing the feed attributes. + Attributes can only be added, not removed. + origin: + Immutable. Specifies who manages the FeedAttributes for the + Feed. + status: + Output only. Status of the feed. This field is read-only. + system_feed_generation_data: + The system data for the Feed. This data specifies information + for generating the feed items of the system generated feed. + places_location_feed_data: + Data used to configure a location feed populated from Google + My Business Locations. + affiliate_location_feed_data: + Data used to configure an affiliate location feed populated + with the specified chains. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Feed) + }) +_sym_db.RegisterMessage(Feed) +_sym_db.RegisterMessage(Feed.PlacesLocationFeedData) +_sym_db.RegisterMessage(Feed.PlacesLocationFeedData.OAuthInfo) +_sym_db.RegisterMessage(Feed.AffiliateLocationFeedData) + +FeedAttribute = _reflection.GeneratedProtocolMessageType('FeedAttribute', (_message.Message,), { + 'DESCRIPTOR' : _FEEDATTRIBUTE, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """FeedAttributes define the types of data expected to be present in a + Feed. A single FeedAttribute specifies the expected type of the + FeedItemAttributes with the same FeedAttributeId. Optionally, a + FeedAttribute can be marked as being part of a FeedItem's unique key. + + Attributes: + id: + ID of the attribute. + name: + The name of the attribute. Required. + type: + Data type for feed attribute. Required. + is_part_of_key: + Indicates that data corresponding to this attribute is part of + a FeedItem's unique key. It defaults to false if it is + unspecified. Note that a unique key is not required in a + Feed's schema, in which case the FeedItems must be referenced + by their feed\_item\_id. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedAttribute) + }) +_sym_db.RegisterMessage(FeedAttribute) + +FeedAttributeOperation = _reflection.GeneratedProtocolMessageType('FeedAttributeOperation', (_message.Message,), { + 'DESCRIPTOR' : _FEEDATTRIBUTEOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_pb2' + , + '__doc__': """Operation to be performed on a feed attribute list in a mutate. + + Attributes: + operator: + Output only. Type of list operation to perform. + value: + Output only. The feed attribute being added to the list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedAttributeOperation) + }) +_sym_db.RegisterMessage(FeedAttributeOperation) + + +DESCRIPTOR._options = None +_FEED_PLACESLOCATIONFEEDDATA.fields_by_name['oauth_info']._options = None +_FEED.fields_by_name['resource_name']._options = None +_FEED.fields_by_name['id']._options = None +_FEED.fields_by_name['name']._options = None +_FEED.fields_by_name['origin']._options = None +_FEED.fields_by_name['status']._options = None +_FEED._options = None +_FEEDATTRIBUTEOPERATION.fields_by_name['operator']._options = None +_FEEDATTRIBUTEOPERATION.fields_by_name['value']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/feed_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/feed_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2.py b/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2.py new file mode 100644 index 000000000..c8bf98c64 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/feed_placeholder_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import placeholder_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/feed_placeholder_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\030FeedPlaceholderViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/resources/feed_placeholder_view.proto\x12!google.ads.googleads.v5.resources\x1a:google/ads/googleads_v5/proto/enums/placeholder_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xbb\x02\n\x13\x46\x65\x65\x64PlaceholderView\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x03\xfa\x41.\n,googleads.googleapis.com/FeedPlaceholderView\x12\x61\n\x10placeholder_type\x18\x02 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.PlaceholderTypeEnum.PlaceholderTypeB\x03\xe0\x41\x03:t\xea\x41q\n,googleads.googleapis.com/FeedPlaceholderView\x12\x41\x63ustomers/{customer}/feedPlaceholderViews/{feed_placeholder_view}B\x85\x02\n%com.google.ads.googleads.v5.resourcesB\x18\x46\x65\x65\x64PlaceholderViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_FEEDPLACEHOLDERVIEW = _descriptor.Descriptor( + name='FeedPlaceholderView', + full_name='google.ads.googleads.v5.resources.FeedPlaceholderView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.FeedPlaceholderView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A.\n,googleads.googleapis.com/FeedPlaceholderView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placeholder_type', full_name='google.ads.googleads.v5.resources.FeedPlaceholderView.placeholder_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Aq\n,googleads.googleapis.com/FeedPlaceholderView\022Acustomers/{customer}/feedPlaceholderViews/{feed_placeholder_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=257, + serialized_end=572, +) + +_FEEDPLACEHOLDERVIEW.fields_by_name['placeholder_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placeholder__type__pb2._PLACEHOLDERTYPEENUM_PLACEHOLDERTYPE +DESCRIPTOR.message_types_by_name['FeedPlaceholderView'] = _FEEDPLACEHOLDERVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedPlaceholderView = _reflection.GeneratedProtocolMessageType('FeedPlaceholderView', (_message.Message,), { + 'DESCRIPTOR' : _FEEDPLACEHOLDERVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.feed_placeholder_view_pb2' + , + '__doc__': """A feed placeholder view. + + Attributes: + resource_name: + Output only. The resource name of the feed placeholder view. + Feed placeholder view resource names have the form: ``custome + rs/{customer_id}/feedPlaceholderViews/{placeholder_type}`` + placeholder_type: + Output only. The placeholder type of the feed placeholder + view. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.FeedPlaceholderView) + }) +_sym_db.RegisterMessage(FeedPlaceholderView) + + +DESCRIPTOR._options = None +_FEEDPLACEHOLDERVIEW.fields_by_name['resource_name']._options = None +_FEEDPLACEHOLDERVIEW.fields_by_name['placeholder_type']._options = None +_FEEDPLACEHOLDERVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/feed_placeholder_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/gender_view_pb2.py b/google/ads/google_ads/v5/proto/resources/gender_view_pb2.py new file mode 100644 index 000000000..ff3fc403c --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/gender_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/gender_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/gender_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\017GenderViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/resources/gender_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xaa\x01\n\nGenderView\x12\x42\n\rresource_name\x18\x01 \x01(\tB+\xe0\x41\x03\xfa\x41%\n#googleads.googleapis.com/GenderView:X\xea\x41U\n#googleads.googleapis.com/GenderView\x12.customers/{customer}/genderViews/{gender_view}B\xfc\x01\n%com.google.ads.googleads.v5.resourcesB\x0fGenderViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GENDERVIEW = _descriptor.Descriptor( + name='GenderView', + full_name='google.ads.googleads.v5.resources.GenderView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.GenderView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A%\n#googleads.googleapis.com/GenderView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AU\n#googleads.googleapis.com/GenderView\022.customers/{customer}/genderViews/{gender_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=187, + serialized_end=357, +) + +DESCRIPTOR.message_types_by_name['GenderView'] = _GENDERVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GenderView = _reflection.GeneratedProtocolMessageType('GenderView', (_message.Message,), { + 'DESCRIPTOR' : _GENDERVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.gender_view_pb2' + , + '__doc__': """A gender view. + + Attributes: + resource_name: + Output only. The resource name of the gender view. Gender view + resource names have the form: ``customers/{customer_id}/gende + rViews/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.GenderView) + }) +_sym_db.RegisterMessage(GenderView) + + +DESCRIPTOR._options = None +_GENDERVIEW.fields_by_name['resource_name']._options = None +_GENDERVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/gender_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/gender_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/gender_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2.py new file mode 100644 index 000000000..9d14260f6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2.py @@ -0,0 +1,210 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/geo_target_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import geo_target_constant_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__target__constant__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/geo_target_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\026GeoTargetConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/resources/geo_target_constant.proto\x12!google.ads.googleads.v5.resources\x1a\x44google/ads/googleads_v5/proto/enums/geo_target_constant_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xdf\x04\n\x11GeoTargetConstant\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstant\x12\x14\n\x02id\x18\n \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x16\n\x04name\x18\x0b \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1e\n\x0c\x63ountry_code\x18\x0c \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1d\n\x0btarget_type\x18\r \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x12g\n\x06status\x18\x07 \x01(\x0e\x32R.google.ads.googleads.v5.enums.GeoTargetConstantStatusEnum.GeoTargetConstantStatusB\x03\xe0\x41\x03\x12 \n\x0e\x63\x61nonical_name\x18\x0e \x01(\tB\x03\xe0\x41\x03H\x04\x88\x01\x01\x12R\n\x11parent_geo_target\x18\t \x01(\tB2\xe0\x41\x03\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstantH\x05\x88\x01\x01:Y\xea\x41V\n*googleads.googleapis.com/GeoTargetConstant\x12(geoTargetConstants/{geo_target_constant}B\x05\n\x03_idB\x07\n\x05_nameB\x0f\n\r_country_codeB\x0e\n\x0c_target_typeB\x11\n\x0f_canonical_nameB\x14\n\x12_parent_geo_targetB\x83\x02\n%com.google.ads.googleads.v5.resourcesB\x16GeoTargetConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__target__constant__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GEOTARGETCONSTANT = _descriptor.Descriptor( + name='GeoTargetConstant', + full_name='google.ads.googleads.v5.resources.GeoTargetConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.id', index=1, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.name', index=2, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.country_code', index=3, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_type', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.target_type', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.status', index=5, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='canonical_name', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.canonical_name', index=6, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_geo_target', full_name='google.ads.googleads.v5.resources.GeoTargetConstant.parent_geo_target', index=7, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AV\n*googleads.googleapis.com/GeoTargetConstant\022(geoTargetConstants/{geo_target_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._country_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_target_type', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._target_type', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_canonical_name', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._canonical_name', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_parent_geo_target', full_name='google.ads.googleads.v5.resources.GeoTargetConstant._parent_geo_target', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=265, + serialized_end=872, +) + +_GEOTARGETCONSTANT.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__target__constant__status__pb2._GEOTARGETCONSTANTSTATUSENUM_GEOTARGETCONSTANTSTATUS +_GEOTARGETCONSTANT.oneofs_by_name['_id'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['id']) +_GEOTARGETCONSTANT.fields_by_name['id'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_id'] +_GEOTARGETCONSTANT.oneofs_by_name['_name'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['name']) +_GEOTARGETCONSTANT.fields_by_name['name'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_name'] +_GEOTARGETCONSTANT.oneofs_by_name['_country_code'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['country_code']) +_GEOTARGETCONSTANT.fields_by_name['country_code'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_country_code'] +_GEOTARGETCONSTANT.oneofs_by_name['_target_type'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['target_type']) +_GEOTARGETCONSTANT.fields_by_name['target_type'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_target_type'] +_GEOTARGETCONSTANT.oneofs_by_name['_canonical_name'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['canonical_name']) +_GEOTARGETCONSTANT.fields_by_name['canonical_name'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_canonical_name'] +_GEOTARGETCONSTANT.oneofs_by_name['_parent_geo_target'].fields.append( + _GEOTARGETCONSTANT.fields_by_name['parent_geo_target']) +_GEOTARGETCONSTANT.fields_by_name['parent_geo_target'].containing_oneof = _GEOTARGETCONSTANT.oneofs_by_name['_parent_geo_target'] +DESCRIPTOR.message_types_by_name['GeoTargetConstant'] = _GEOTARGETCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GeoTargetConstant = _reflection.GeneratedProtocolMessageType('GeoTargetConstant', (_message.Message,), { + 'DESCRIPTOR' : _GEOTARGETCONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.geo_target_constant_pb2' + , + '__doc__': """A geo target constant. + + Attributes: + resource_name: + Output only. The resource name of the geo target constant. Geo + target constant resource names have the form: + ``geoTargetConstants/{geo_target_constant_id}`` + id: + Output only. The ID of the geo target constant. + name: + Output only. Geo target constant English name. + country_code: + Output only. The ISO-3166-1 alpha-2 country code that is + associated with the target. + target_type: + Output only. Geo target constant target type. + status: + Output only. Geo target constant status. + canonical_name: + Output only. The fully qualified English name, consisting of + the target's name and that of its parent and country. + parent_geo_target: + Output only. The resource name of the parent geo target + constant. Geo target constant resource names have the form: + ``geoTargetConstants/{parent_geo_target_constant_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.GeoTargetConstant) + }) +_sym_db.RegisterMessage(GeoTargetConstant) + + +DESCRIPTOR._options = None +_GEOTARGETCONSTANT.fields_by_name['resource_name']._options = None +_GEOTARGETCONSTANT.fields_by_name['id']._options = None +_GEOTARGETCONSTANT.fields_by_name['name']._options = None +_GEOTARGETCONSTANT.fields_by_name['country_code']._options = None +_GEOTARGETCONSTANT.fields_by_name['target_type']._options = None +_GEOTARGETCONSTANT.fields_by_name['status']._options = None +_GEOTARGETCONSTANT.fields_by_name['canonical_name']._options = None +_GEOTARGETCONSTANT.fields_by_name['parent_geo_target']._options = None +_GEOTARGETCONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/geo_target_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/geographic_view_pb2.py b/google/ads/google_ads/v5/proto/resources/geographic_view_pb2.py new file mode 100644 index 000000000..e13b9b596 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/geographic_view_pb2.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/geographic_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import geo_targeting_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_geo__targeting__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/geographic_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023GeographicViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/resources/geographic_view.proto\x12!google.ads.googleads.v5.resources\x1agoogle/ads/googleads_v5/proto/resources/google_ads_field.proto\x12!google.ads.googleads.v5.resources\x1a\x43google/ads/googleads_v5/proto/enums/google_ads_field_category.proto\x1a\x44google/ads/googleads_v5/proto/enums/google_ads_field_data_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x80\x06\n\x0eGoogleAdsField\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/GoogleAdsField\x12\x16\n\x04name\x18\x15 \x01(\tB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12g\n\x08\x63\x61tegory\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v5.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategoryB\x03\xe0\x41\x03\x12\x1c\n\nselectable\x18\x16 \x01(\x08\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x1c\n\nfilterable\x18\x17 \x01(\x08\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1a\n\x08sortable\x18\x18 \x01(\x08\x42\x03\xe0\x41\x03H\x03\x88\x01\x01\x12\x1c\n\x0fselectable_with\x18\x19 \x03(\tB\x03\xe0\x41\x03\x12 \n\x13\x61ttribute_resources\x18\x1a \x03(\tB\x03\xe0\x41\x03\x12\x14\n\x07metrics\x18\x1b \x03(\tB\x03\xe0\x41\x03\x12\x15\n\x08segments\x18\x1c \x03(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x65num_values\x18\x1d \x03(\tB\x03\xe0\x41\x03\x12h\n\tdata_type\x18\x0c \x01(\x0e\x32P.google.ads.googleads.v5.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataTypeB\x03\xe0\x41\x03\x12\x1a\n\x08type_url\x18\x1e \x01(\tB\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\x1d\n\x0bis_repeated\x18\x1f \x01(\x08\x42\x03\xe0\x41\x03H\x05\x88\x01\x01:P\xea\x41M\n\'googleads.googleapis.com/GoogleAdsField\x12\"googleAdsFields/{google_ads_field}B\x07\n\x05_nameB\r\n\x0b_selectableB\r\n\x0b_filterableB\x0b\n\t_sortableB\x0b\n\t_type_urlB\x0e\n\x0c_is_repeatedB\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13GoogleAdsFieldProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_google__ads__field__category__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_google__ads__field__data__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GOOGLEADSFIELD = _descriptor.Descriptor( + name='GoogleAdsField', + full_name='google.ads.googleads.v5.resources.GoogleAdsField', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.GoogleAdsField.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/GoogleAdsField', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.GoogleAdsField.name', index=1, + number=21, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='category', full_name='google.ads.googleads.v5.resources.GoogleAdsField.category', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='selectable', full_name='google.ads.googleads.v5.resources.GoogleAdsField.selectable', index=3, + number=22, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='filterable', full_name='google.ads.googleads.v5.resources.GoogleAdsField.filterable', index=4, + number=23, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sortable', full_name='google.ads.googleads.v5.resources.GoogleAdsField.sortable', index=5, + number=24, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='selectable_with', full_name='google.ads.googleads.v5.resources.GoogleAdsField.selectable_with', index=6, + number=25, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribute_resources', full_name='google.ads.googleads.v5.resources.GoogleAdsField.attribute_resources', index=7, + number=26, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='metrics', full_name='google.ads.googleads.v5.resources.GoogleAdsField.metrics', index=8, + number=27, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='segments', full_name='google.ads.googleads.v5.resources.GoogleAdsField.segments', index=9, + number=28, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enum_values', full_name='google.ads.googleads.v5.resources.GoogleAdsField.enum_values', index=10, + number=29, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data_type', full_name='google.ads.googleads.v5.resources.GoogleAdsField.data_type', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_url', full_name='google.ads.googleads.v5.resources.GoogleAdsField.type_url', index=12, + number=30, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_repeated', full_name='google.ads.googleads.v5.resources.GoogleAdsField.is_repeated', index=13, + number=31, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AM\n\'googleads.googleapis.com/GoogleAdsField\022\"googleAdsFields/{google_ads_field}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.GoogleAdsField._name', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_selectable', full_name='google.ads.googleads.v5.resources.GoogleAdsField._selectable', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_filterable', full_name='google.ads.googleads.v5.resources.GoogleAdsField._filterable', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_sortable', full_name='google.ads.googleads.v5.resources.GoogleAdsField._sortable', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_type_url', full_name='google.ads.googleads.v5.resources.GoogleAdsField._type_url', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_is_repeated', full_name='google.ads.googleads.v5.resources.GoogleAdsField._is_repeated', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=331, + serialized_end=1099, +) + +_GOOGLEADSFIELD.fields_by_name['category'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_google__ads__field__category__pb2._GOOGLEADSFIELDCATEGORYENUM_GOOGLEADSFIELDCATEGORY +_GOOGLEADSFIELD.fields_by_name['data_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_google__ads__field__data__type__pb2._GOOGLEADSFIELDDATATYPEENUM_GOOGLEADSFIELDDATATYPE +_GOOGLEADSFIELD.oneofs_by_name['_name'].fields.append( + _GOOGLEADSFIELD.fields_by_name['name']) +_GOOGLEADSFIELD.fields_by_name['name'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_name'] +_GOOGLEADSFIELD.oneofs_by_name['_selectable'].fields.append( + _GOOGLEADSFIELD.fields_by_name['selectable']) +_GOOGLEADSFIELD.fields_by_name['selectable'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_selectable'] +_GOOGLEADSFIELD.oneofs_by_name['_filterable'].fields.append( + _GOOGLEADSFIELD.fields_by_name['filterable']) +_GOOGLEADSFIELD.fields_by_name['filterable'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_filterable'] +_GOOGLEADSFIELD.oneofs_by_name['_sortable'].fields.append( + _GOOGLEADSFIELD.fields_by_name['sortable']) +_GOOGLEADSFIELD.fields_by_name['sortable'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_sortable'] +_GOOGLEADSFIELD.oneofs_by_name['_type_url'].fields.append( + _GOOGLEADSFIELD.fields_by_name['type_url']) +_GOOGLEADSFIELD.fields_by_name['type_url'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_type_url'] +_GOOGLEADSFIELD.oneofs_by_name['_is_repeated'].fields.append( + _GOOGLEADSFIELD.fields_by_name['is_repeated']) +_GOOGLEADSFIELD.fields_by_name['is_repeated'].containing_oneof = _GOOGLEADSFIELD.oneofs_by_name['_is_repeated'] +DESCRIPTOR.message_types_by_name['GoogleAdsField'] = _GOOGLEADSFIELD +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GoogleAdsField = _reflection.GeneratedProtocolMessageType('GoogleAdsField', (_message.Message,), { + 'DESCRIPTOR' : _GOOGLEADSFIELD, + '__module__' : 'google.ads.googleads_v5.proto.resources.google_ads_field_pb2' + , + '__doc__': """A field or resource (artifact) used by GoogleAdsService. + + Attributes: + resource_name: + Output only. The resource name of the artifact. Artifact + resource names have the form: ``googleAdsFields/{name}`` + name: + Output only. The name of the artifact. + category: + Output only. The category of the artifact. + selectable: + Output only. Whether the artifact can be used in a SELECT + clause in search queries. + filterable: + Output only. Whether the artifact can be used in a WHERE + clause in search queries. + sortable: + Output only. Whether the artifact can be used in a ORDER BY + clause in search queries. + selectable_with: + Output only. The names of all resources, segments, and metrics + that are selectable with the described artifact. + attribute_resources: + Output only. The names of all resources that are selectable + with the described artifact. Fields from these resources do + not segment metrics when included in search queries. This + field is only set for artifacts whose category is RESOURCE. + metrics: + Output only. At and beyond version V1 this field lists the + names of all metrics that are selectable with the described + artifact when it is used in the FROM clause. It is only set + for artifacts whose category is RESOURCE. Before version V1 + this field lists the names of all metrics that are selectable + with the described artifact. It is only set for artifacts + whose category is either RESOURCE or SEGMENT + segments: + Output only. At and beyond version V1 this field lists the + names of all artifacts, whether a segment or another resource, + that segment metrics when included in search queries and when + the described artifact is used in the FROM clause. It is only + set for artifacts whose category is RESOURCE. Before version + V1 this field lists the names of all artifacts, whether a + segment or another resource, that segment metrics when + included in search queries. It is only set for artifacts of + category RESOURCE, SEGMENT or METRIC. + enum_values: + Output only. Values the artifact can assume if it is a field + of type ENUM. This field is only set for artifacts of + category SEGMENT or ATTRIBUTE. + data_type: + Output only. This field determines the operators that can be + used with the artifact in WHERE clauses. + type_url: + Output only. The URL of proto describing the artifact's data + type. + is_repeated: + Output only. Whether the field artifact is repeated. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.GoogleAdsField) + }) +_sym_db.RegisterMessage(GoogleAdsField) + + +DESCRIPTOR._options = None +_GOOGLEADSFIELD.fields_by_name['resource_name']._options = None +_GOOGLEADSFIELD.fields_by_name['name']._options = None +_GOOGLEADSFIELD.fields_by_name['category']._options = None +_GOOGLEADSFIELD.fields_by_name['selectable']._options = None +_GOOGLEADSFIELD.fields_by_name['filterable']._options = None +_GOOGLEADSFIELD.fields_by_name['sortable']._options = None +_GOOGLEADSFIELD.fields_by_name['selectable_with']._options = None +_GOOGLEADSFIELD.fields_by_name['attribute_resources']._options = None +_GOOGLEADSFIELD.fields_by_name['metrics']._options = None +_GOOGLEADSFIELD.fields_by_name['segments']._options = None +_GOOGLEADSFIELD.fields_by_name['enum_values']._options = None +_GOOGLEADSFIELD.fields_by_name['data_type']._options = None +_GOOGLEADSFIELD.fields_by_name['type_url']._options = None +_GOOGLEADSFIELD.fields_by_name['is_repeated']._options = None +_GOOGLEADSFIELD._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/google_ads_field_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/google_ads_field_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/google_ads_field_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2.py b/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2.py new file mode 100644 index 000000000..a796d422d --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/group_placement_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import placement_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/group_placement_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\027GroupPlacementViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/resources/group_placement_view.proto\x12!google.ads.googleads.v5.resources\x1a\x38google/ads/googleads_v5/proto/enums/placement_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xd6\x03\n\x12GroupPlacementView\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x03\xfa\x41-\n+googleads.googleapis.com/GroupPlacementView\x12\x34\n\tplacement\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x37\n\x0c\x64isplay_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x35\n\ntarget_url\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12[\n\x0eplacement_type\x18\x05 \x01(\x0e\x32>.google.ads.googleads.v5.enums.PlacementTypeEnum.PlacementTypeB\x03\xe0\x41\x03:q\xea\x41n\n+googleads.googleapis.com/GroupPlacementView\x12?customers/{customer}/groupPlacementViews/{group_placement_view}B\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17GroupPlacementViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GROUPPLACEMENTVIEW = _descriptor.Descriptor( + name='GroupPlacementView', + full_name='google.ads.googleads.v5.resources.GroupPlacementView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.GroupPlacementView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A-\n+googleads.googleapis.com/GroupPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.GroupPlacementView.placement', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_name', full_name='google.ads.googleads.v5.resources.GroupPlacementView.display_name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_url', full_name='google.ads.googleads.v5.resources.GroupPlacementView.target_url', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement_type', full_name='google.ads.googleads.v5.resources.GroupPlacementView.placement_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352An\n+googleads.googleapis.com/GroupPlacementView\022?customers/{customer}/groupPlacementViews/{group_placement_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=756, +) + +_GROUPPLACEMENTVIEW.fields_by_name['placement'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GROUPPLACEMENTVIEW.fields_by_name['display_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GROUPPLACEMENTVIEW.fields_by_name['target_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GROUPPLACEMENTVIEW.fields_by_name['placement_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_placement__type__pb2._PLACEMENTTYPEENUM_PLACEMENTTYPE +DESCRIPTOR.message_types_by_name['GroupPlacementView'] = _GROUPPLACEMENTVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GroupPlacementView = _reflection.GeneratedProtocolMessageType('GroupPlacementView', (_message.Message,), { + 'DESCRIPTOR' : _GROUPPLACEMENTVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.group_placement_view_pb2' + , + '__doc__': """A group placement view. + + Attributes: + resource_name: + Output only. The resource name of the group placement view. + Group placement view resource names have the form: ``customer + s/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_plac + ement}`` + placement: + Output only. The automatic placement string at group level, e. + g. web domain, mobile app ID, or a YouTube channel ID. + display_name: + Output only. Domain name for websites and YouTube channel name + for YouTube channels. + target_url: + Output only. URL of the group placement, e.g. domain, link to + the mobile application in app store, or a YouTube channel URL. + placement_type: + Output only. Type of the placement, e.g. Website, YouTube + Channel, Mobile Application. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.GroupPlacementView) + }) +_sym_db.RegisterMessage(GroupPlacementView) + + +DESCRIPTOR._options = None +_GROUPPLACEMENTVIEW.fields_by_name['resource_name']._options = None +_GROUPPLACEMENTVIEW.fields_by_name['placement']._options = None +_GROUPPLACEMENTVIEW.fields_by_name['display_name']._options = None +_GROUPPLACEMENTVIEW.fields_by_name['target_url']._options = None +_GROUPPLACEMENTVIEW.fields_by_name['placement_type']._options = None +_GROUPPLACEMENTVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/group_placement_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2.py b/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2.py new file mode 100644 index 000000000..37ab296b7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/hotel_group_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/hotel_group_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023HotelGroupViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/resources/hotel_group_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xbf\x01\n\x0eHotelGroupView\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/HotelGroupView:e\xea\x41\x62\n\'googleads.googleapis.com/HotelGroupView\x12\x37\x63ustomers/{customer}/hotelGroupViews/{hotel_group_view}B\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13HotelGroupViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_HOTELGROUPVIEW = _descriptor.Descriptor( + name='HotelGroupView', + full_name='google.ads.googleads.v5.resources.HotelGroupView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.HotelGroupView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/HotelGroupView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n\'googleads.googleapis.com/HotelGroupView\0227customers/{customer}/hotelGroupViews/{hotel_group_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=192, + serialized_end=383, +) + +DESCRIPTOR.message_types_by_name['HotelGroupView'] = _HOTELGROUPVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +HotelGroupView = _reflection.GeneratedProtocolMessageType('HotelGroupView', (_message.Message,), { + 'DESCRIPTOR' : _HOTELGROUPVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.hotel_group_view_pb2' + , + '__doc__': """A hotel group view. + + Attributes: + resource_name: + Output only. The resource name of the hotel group view. Hotel + Group view resource names have the form: ``customers/{custome + r_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.HotelGroupView) + }) +_sym_db.RegisterMessage(HotelGroupView) + + +DESCRIPTOR._options = None +_HOTELGROUPVIEW.fields_by_name['resource_name']._options = None +_HOTELGROUPVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/hotel_group_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2.py b/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2.py new file mode 100644 index 000000000..5869b0729 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/hotel_performance_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/hotel_performance_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\031HotelPerformanceViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/resources/hotel_performance_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xc3\x01\n\x14HotelPerformanceView\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x03\xfa\x41/\n-googleads.googleapis.com/HotelPerformanceView:]\xea\x41Z\n-googleads.googleapis.com/HotelPerformanceView\x12)customers/{customer}/hotelPerformanceViewB\x86\x02\n%com.google.ads.googleads.v5.resourcesB\x19HotelPerformanceViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_HOTELPERFORMANCEVIEW = _descriptor.Descriptor( + name='HotelPerformanceView', + full_name='google.ads.googleads.v5.resources.HotelPerformanceView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.HotelPerformanceView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A/\n-googleads.googleapis.com/HotelPerformanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AZ\n-googleads.googleapis.com/HotelPerformanceView\022)customers/{customer}/hotelPerformanceView', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=198, + serialized_end=393, +) + +DESCRIPTOR.message_types_by_name['HotelPerformanceView'] = _HOTELPERFORMANCEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +HotelPerformanceView = _reflection.GeneratedProtocolMessageType('HotelPerformanceView', (_message.Message,), { + 'DESCRIPTOR' : _HOTELPERFORMANCEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.hotel_performance_view_pb2' + , + '__doc__': """A hotel performance view. + + Attributes: + resource_name: + Output only. The resource name of the hotel performance view. + Hotel performance view resource names have the form: + ``customers/{customer_id}/hotelPerformanceView`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.HotelPerformanceView) + }) +_sym_db.RegisterMessage(HotelPerformanceView) + + +DESCRIPTOR._options = None +_HOTELPERFORMANCEVIEW.fields_by_name['resource_name']._options = None +_HOTELPERFORMANCEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/hotel_performance_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/income_range_view_pb2.py b/google/ads/google_ads/v5/proto/resources/income_range_view_pb2.py new file mode 100644 index 000000000..93d96fbbd --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/income_range_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/income_range_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/income_range_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\024IncomeRangeViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/income_range_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xc4\x01\n\x0fIncomeRangeView\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(googleads.googleapis.com/IncomeRangeView:h\xea\x41\x65\n(googleads.googleapis.com/IncomeRangeView\x12\x39\x63ustomers/{customer}/incomeRangeViews/{income_range_view}B\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14IncomeRangeViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_INCOMERANGEVIEW = _descriptor.Descriptor( + name='IncomeRangeView', + full_name='google.ads.googleads.v5.resources.IncomeRangeView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.IncomeRangeView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A*\n(googleads.googleapis.com/IncomeRangeView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ae\n(googleads.googleapis.com/IncomeRangeView\0229customers/{customer}/incomeRangeViews/{income_range_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=193, + serialized_end=389, +) + +DESCRIPTOR.message_types_by_name['IncomeRangeView'] = _INCOMERANGEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +IncomeRangeView = _reflection.GeneratedProtocolMessageType('IncomeRangeView', (_message.Message,), { + 'DESCRIPTOR' : _INCOMERANGEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.income_range_view_pb2' + , + '__doc__': """An income range view. + + Attributes: + resource_name: + Output only. The resource name of the income range view. + Income range view resource names have the form: ``customers/{ + customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.IncomeRangeView) + }) +_sym_db.RegisterMessage(IncomeRangeView) + + +DESCRIPTOR._options = None +_INCOMERANGEVIEW.fields_by_name['resource_name']._options = None +_INCOMERANGEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/income_range_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/income_range_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/income_range_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/invoice_pb2.py b/google/ads/google_ads/v5/proto/resources/invoice_pb2.py new file mode 100644 index 000000000..9088693d4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/invoice_pb2.py @@ -0,0 +1,468 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/invoice.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import dates_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2 +from google.ads.google_ads.v5.proto.enums import invoice_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_invoice__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/invoice.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\014InvoiceProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n5google/ads/googleads_v5/proto/resources/invoice.proto\x12!google.ads.googleads.v5.resources\x1a\x30google/ads/googleads_v5/proto/common/dates.proto\x1a\x36google/ads/googleads_v5/proto/enums/invoice_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xcb\x0e\n\x07Invoice\x12?\n\rresource_name\x18\x01 \x01(\tB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/Invoice\x12-\n\x02id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12M\n\x04type\x18\x03 \x01(\x0e\x32:.google.ads.googleads.v5.enums.InvoiceTypeEnum.InvoiceTypeB\x03\xe0\x41\x03\x12\x38\n\rbilling_setup\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12>\n\x13payments_account_id\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12>\n\x13payments_profile_id\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x35\n\nissue_date\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x33\n\x08\x64ue_date\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12J\n\x12service_date_range\x18\t \x01(\x0b\x32).google.ads.googleads.v5.common.DateRangeB\x03\xe0\x41\x03\x12\x38\n\rcurrency_code\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12J\n invoice_level_adjustments_micros\x18\x0b \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12@\n\x16subtotal_amount_micros\x18\x0c \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12;\n\x11tax_amount_micros\x18\r \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12=\n\x13total_amount_micros\x18\x0e \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12<\n\x11\x63orrected_invoice\x18\x0f \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12<\n\x11replaced_invoices\x18\x10 \x03(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x32\n\x07pdf_url\x18\x11 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x66\n\x18\x61\x63\x63ount_budget_summaries\x18\x12 \x03(\x0b\x32?.google.ads.googleads.v5.resources.Invoice.AccountBudgetSummaryB\x03\xe0\x41\x03\x1a\xe2\x04\n\x14\x41\x63\x63ountBudgetSummary\x12\x33\n\x08\x63ustomer\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x44\n\x19\x63ustomer_descriptive_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x39\n\x0e\x61\x63\x63ount_budget\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12>\n\x13\x61\x63\x63ount_budget_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12@\n\x15purchase_order_number\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12@\n\x16subtotal_amount_micros\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12;\n\x11tax_amount_micros\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12=\n\x13total_amount_micros\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12T\n\x1c\x62illable_activity_date_range\x18\t \x01(\x0b\x32).google.ads.googleads.v5.common.DateRangeB\x03\xe0\x41\x03:N\xea\x41K\n googleads.googleapis.com/Invoice\x12\'customers/{customer}/invoices/{invoice}B\xf9\x01\n%com.google.ads.googleads.v5.resourcesB\x0cInvoiceProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_invoice__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_INVOICE_ACCOUNTBUDGETSUMMARY = _descriptor.Descriptor( + name='AccountBudgetSummary', + full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.customer', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_descriptive_name', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.customer_descriptive_name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_budget', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.account_budget', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_budget_name', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.account_budget_name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='purchase_order_number', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.purchase_order_number', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='subtotal_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.subtotal_amount_micros', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tax_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.tax_amount_micros', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.total_amount_micros', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='billable_activity_date_range', full_name='google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary.billable_activity_date_range', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1498, + serialized_end=2108, +) + +_INVOICE = _descriptor.Descriptor( + name='Invoice', + full_name='google.ads.googleads.v5.resources.Invoice', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Invoice.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/Invoice', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Invoice.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.Invoice.type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='billing_setup', full_name='google.ads.googleads.v5.resources.Invoice.billing_setup', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account_id', full_name='google.ads.googleads.v5.resources.Invoice.payments_account_id', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_profile_id', full_name='google.ads.googleads.v5.resources.Invoice.payments_profile_id', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='issue_date', full_name='google.ads.googleads.v5.resources.Invoice.issue_date', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='due_date', full_name='google.ads.googleads.v5.resources.Invoice.due_date', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='service_date_range', full_name='google.ads.googleads.v5.resources.Invoice.service_date_range', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.resources.Invoice.currency_code', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='invoice_level_adjustments_micros', full_name='google.ads.googleads.v5.resources.Invoice.invoice_level_adjustments_micros', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='subtotal_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.subtotal_amount_micros', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tax_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.tax_amount_micros', index=12, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_amount_micros', full_name='google.ads.googleads.v5.resources.Invoice.total_amount_micros', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='corrected_invoice', full_name='google.ads.googleads.v5.resources.Invoice.corrected_invoice', index=14, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='replaced_invoices', full_name='google.ads.googleads.v5.resources.Invoice.replaced_invoices', index=15, + number=16, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='pdf_url', full_name='google.ads.googleads.v5.resources.Invoice.pdf_url', index=16, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_budget_summaries', full_name='google.ads.googleads.v5.resources.Invoice.account_budget_summaries', index=17, + number=18, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_INVOICE_ACCOUNTBUDGETSUMMARY, ], + enum_types=[ + ], + serialized_options=b'\352AK\n googleads.googleapis.com/Invoice\022\'customers/{customer}/invoices/{invoice}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=321, + serialized_end=2188, +) + +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['customer'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['customer_descriptive_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['account_budget'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['account_budget_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['purchase_order_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['subtotal_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['tax_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['total_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['billable_activity_date_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2._DATERANGE +_INVOICE_ACCOUNTBUDGETSUMMARY.containing_type = _INVOICE +_INVOICE.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_invoice__type__pb2._INVOICETYPEENUM_INVOICETYPE +_INVOICE.fields_by_name['billing_setup'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['payments_account_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['payments_profile_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['issue_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['due_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['service_date_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2._DATERANGE +_INVOICE.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['invoice_level_adjustments_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE.fields_by_name['subtotal_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE.fields_by_name['tax_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE.fields_by_name['total_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_INVOICE.fields_by_name['corrected_invoice'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['replaced_invoices'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['pdf_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_INVOICE.fields_by_name['account_budget_summaries'].message_type = _INVOICE_ACCOUNTBUDGETSUMMARY +DESCRIPTOR.message_types_by_name['Invoice'] = _INVOICE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Invoice = _reflection.GeneratedProtocolMessageType('Invoice', (_message.Message,), { + + 'AccountBudgetSummary' : _reflection.GeneratedProtocolMessageType('AccountBudgetSummary', (_message.Message,), { + 'DESCRIPTOR' : _INVOICE_ACCOUNTBUDGETSUMMARY, + '__module__' : 'google.ads.googleads_v5.proto.resources.invoice_pb2' + , + '__doc__': """Represents a summarized account budget billable cost. + + Attributes: + customer: + Output only. The resource name of the customer associated with + this account budget. This contains the customer ID, which + appears on the invoice PDF as "Account ID". Customer resource + names have the form: ``customers/{customer_id}`` + customer_descriptive_name: + Output only. The descriptive name of the account budget’s + customer. It appears on the invoice PDF as "Account". + account_budget: + Output only. The resource name of the account budget + associated with this summarized billable cost. AccountBudget + resource names have the form: + ``customers/{customer_id}/accountBudgets/{account_budget_id}`` + account_budget_name: + Output only. The name of the account budget. It appears on the + invoice PDF as "Account budget". + purchase_order_number: + Output only. The purchase order number of the account budget. + It appears on the invoice PDF as "Purchase order". + subtotal_amount_micros: + Output only. The pretax subtotal amount attributable to this + budget during the service period, in micros. + tax_amount_micros: + Output only. The tax amount attributable to this budget during + the service period, in micros. + total_amount_micros: + Output only. The total amount attributable to this budget + during the service period, in micros. This equals the sum of + the account budget subtotal amount and the account budget tax + amount. + billable_activity_date_range: + Output only. The billable activity date range of the account + budget, within the service date range of this invoice. The end + date is inclusive. This can be different from the account + budget's start and end time. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Invoice.AccountBudgetSummary) + }) + , + 'DESCRIPTOR' : _INVOICE, + '__module__' : 'google.ads.googleads_v5.proto.resources.invoice_pb2' + , + '__doc__': """An invoice. All invoice information is snapshotted to match the PDF + invoice. For invoices older than the launch of InvoiceService, the + snapshotted information may not match the PDF invoice. + + Attributes: + resource_name: + Output only. The resource name of the invoice. Multiple + customers can share a given invoice, so multiple resource + names may point to the same invoice. Invoice resource names + have the form: + ``customers/{customer_id}/invoices/{invoice_id}`` + id: + Output only. The ID of the invoice. It appears on the invoice + PDF as "Invoice number". + type: + Output only. The type of invoice. + billing_setup: + Output only. The resource name of this invoice’s billing + setup. + ``customers/{customer_id}/billingSetups/{billing_setup_id}`` + payments_account_id: + Output only. A 16 digit ID used to identify the payments + account associated with the billing setup, e.g. + "1234-5678-9012-3456". It appears on the invoice PDF as + "Billing Account Number". + payments_profile_id: + Output only. A 12 digit ID used to identify the payments + profile associated with the billing setup, e.g. + "1234-5678-9012". It appears on the invoice PDF as "Billing + ID". + issue_date: + Output only. The issue date in yyyy-mm-dd format. It appears + on the invoice PDF as either "Issue date" or "Invoice date". + due_date: + Output only. The due date in yyyy-mm-dd format. + service_date_range: + Output only. The service period date range of this invoice. + The end date is inclusive. + currency_code: + Output only. The currency code. All costs are returned in this + currency. A subset of the currency codes derived from the ISO + 4217 standard is supported. + invoice_level_adjustments_micros: + Output only. The total amount of invoice level adjustments. + These adjustments are made on the invoice, not on a specific + account budget. + subtotal_amount_micros: + Output only. The pretax subtotal amount, in micros. This + equals the sum of the AccountBudgetSummary subtotal amounts, + plus the invoice level adjustments. + tax_amount_micros: + Output only. The sum of all taxes on the invoice, in micros. + This equals the sum of the AccountBudgetSummary tax amounts, + plus taxes not associated with a specific account budget. + total_amount_micros: + Output only. The total amount, in micros. This equals the sum + of the invoice subtotal amount and the invoice tax amount. + corrected_invoice: + Output only. The resource name of the original invoice + corrected, wrote off, or canceled by this invoice, if + applicable. If ``corrected_invoice`` is set, + ``replaced_invoices`` will not be set. Invoice resource names + have the form: + ``customers/{customer_id}/invoices/{invoice_id}`` + replaced_invoices: + Output only. The resource name of the original invoice(s) + being rebilled or replaced by this invoice, if applicable. + There might be multiple replaced invoices due to invoice + consolidation. The replaced invoices may not belong to the + same payments account. If ``replaced_invoices`` is set, + ``corrected_invoice`` will not be set. Invoice resource names + have the form: + ``customers/{customer_id}/invoices/{invoice_id}`` + pdf_url: + Output only. The URL to a PDF copy of the invoice. Users need + to pass in their OAuth token to request the PDF with this URL. + account_budget_summaries: + Output only. The list of summarized account budget information + associated with this invoice. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Invoice) + }) +_sym_db.RegisterMessage(Invoice) +_sym_db.RegisterMessage(Invoice.AccountBudgetSummary) + + +DESCRIPTOR._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['customer']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['customer_descriptive_name']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['account_budget']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['account_budget_name']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['purchase_order_number']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['subtotal_amount_micros']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['tax_amount_micros']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['total_amount_micros']._options = None +_INVOICE_ACCOUNTBUDGETSUMMARY.fields_by_name['billable_activity_date_range']._options = None +_INVOICE.fields_by_name['resource_name']._options = None +_INVOICE.fields_by_name['id']._options = None +_INVOICE.fields_by_name['type']._options = None +_INVOICE.fields_by_name['billing_setup']._options = None +_INVOICE.fields_by_name['payments_account_id']._options = None +_INVOICE.fields_by_name['payments_profile_id']._options = None +_INVOICE.fields_by_name['issue_date']._options = None +_INVOICE.fields_by_name['due_date']._options = None +_INVOICE.fields_by_name['service_date_range']._options = None +_INVOICE.fields_by_name['currency_code']._options = None +_INVOICE.fields_by_name['invoice_level_adjustments_micros']._options = None +_INVOICE.fields_by_name['subtotal_amount_micros']._options = None +_INVOICE.fields_by_name['tax_amount_micros']._options = None +_INVOICE.fields_by_name['total_amount_micros']._options = None +_INVOICE.fields_by_name['corrected_invoice']._options = None +_INVOICE.fields_by_name['replaced_invoices']._options = None +_INVOICE.fields_by_name['pdf_url']._options = None +_INVOICE.fields_by_name['account_budget_summaries']._options = None +_INVOICE._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/invoice_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/invoice_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/invoice_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_keyword_pb2.py b/google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_keyword_pb2.py new file mode 100644 index 000000000..c7df4f190 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_plan_ad_group_keyword_pb2.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/keyword_plan_ad_group_keyword.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/keyword_plan_ad_group_keyword.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\036KeywordPlanAdGroupKeywordProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/resources/keyword_plan_ad_group_keyword.proto\x12!google.ads.googleads.v5.resources\x1agoogle/ads/googleads_v5/proto/enums/keyword_plan_network.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xe6\x05\n\x13KeywordPlanCampaign\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x05\xfa\x41.\n,googleads.googleapis.com/KeywordPlanCampaign\x12]\n\x0ckeyword_plan\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB)\xfa\x41&\n$googleads.googleapis.com/KeywordPlan\x12,\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12h\n\x12language_constants\x18\x05 \x03(\x0b\x32\x1c.google.protobuf.StringValueB.\xfa\x41+\n)googleads.googleapis.com/LanguageConstant\x12\x66\n\x14keyword_plan_network\x18\x06 \x01(\x0e\x32H.google.ads.googleads.v5.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork\x12\x33\n\x0e\x63pc_bid_micros\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12L\n\x0bgeo_targets\x18\x08 \x03(\x0b\x32\x37.google.ads.googleads.v5.resources.KeywordPlanGeoTarget:t\xea\x41q\n,googleads.googleapis.com/KeywordPlanCampaign\x12\x41\x63ustomers/{customer}/keywordPlanCampaigns/{keyword_plan_campaign}\"\x82\x01\n\x14KeywordPlanGeoTarget\x12j\n\x13geo_target_constant\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueB/\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstantB\x85\x02\n%com.google.ads.googleads.v5.resourcesB\x18KeywordPlanCampaignProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__network__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_KEYWORDPLANCAMPAIGN = _descriptor.Descriptor( + name='KeywordPlanCampaign', + full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A.\n,googleads.googleapis.com/KeywordPlanCampaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.keyword_plan', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A&\n$googleads.googleapis.com/KeywordPlan', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_constants', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.language_constants', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A+\n)googleads.googleapis.com/LanguageConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_network', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.keyword_plan_network', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.cpc_bid_micros', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_targets', full_name='google.ads.googleads.v5.resources.KeywordPlanCampaign.geo_targets', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Aq\n,googleads.googleapis.com/KeywordPlanCampaign\022Acustomers/{customer}/keywordPlanCampaigns/{keyword_plan_campaign}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=293, + serialized_end=1035, +) + + +_KEYWORDPLANGEOTARGET = _descriptor.Descriptor( + name='KeywordPlanGeoTarget', + full_name='google.ads.googleads.v5.resources.KeywordPlanGeoTarget', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v5.resources.KeywordPlanGeoTarget.geo_target_constant', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1038, + serialized_end=1168, +) + +_KEYWORDPLANCAMPAIGN.fields_by_name['keyword_plan'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANCAMPAIGN.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANCAMPAIGN.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANCAMPAIGN.fields_by_name['language_constants'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANCAMPAIGN.fields_by_name['keyword_plan_network'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__network__pb2._KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK +_KEYWORDPLANCAMPAIGN.fields_by_name['cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANCAMPAIGN.fields_by_name['geo_targets'].message_type = _KEYWORDPLANGEOTARGET +_KEYWORDPLANGEOTARGET.fields_by_name['geo_target_constant'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['KeywordPlanCampaign'] = _KEYWORDPLANCAMPAIGN +DESCRIPTOR.message_types_by_name['KeywordPlanGeoTarget'] = _KEYWORDPLANGEOTARGET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlanCampaign = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaign', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGN, + '__module__' : 'google.ads.googleads_v5.proto.resources.keyword_plan_campaign_pb2' + , + '__doc__': """A Keyword Plan campaign. Max number of keyword plan campaigns per plan + allowed: 1. + + Attributes: + resource_name: + Immutable. The resource name of the Keyword Plan campaign. + KeywordPlanCampaign resource names have the form: ``customers + /{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`` + keyword_plan: + The keyword plan this campaign belongs to. + id: + Output only. The ID of the Keyword Plan campaign. + name: + The name of the Keyword Plan campaign. This field is required + and should not be empty when creating Keyword Plan campaigns. + language_constants: + The languages targeted for the Keyword Plan campaign. Max + allowed: 1. + keyword_plan_network: + Targeting network. This field is required and should not be + empty when creating Keyword Plan campaigns. + cpc_bid_micros: + A default max cpc bid in micros, and in the account currency, + for all ad groups under the campaign. This field is required + and should not be empty when creating Keyword Plan campaigns. + geo_targets: + The geo targets. Max number allowed: 20. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.KeywordPlanCampaign) + }) +_sym_db.RegisterMessage(KeywordPlanCampaign) + +KeywordPlanGeoTarget = _reflection.GeneratedProtocolMessageType('KeywordPlanGeoTarget', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANGEOTARGET, + '__module__' : 'google.ads.googleads_v5.proto.resources.keyword_plan_campaign_pb2' + , + '__doc__': """A geo target. + + Attributes: + geo_target_constant: + Required. The resource name of the geo target. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.KeywordPlanGeoTarget) + }) +_sym_db.RegisterMessage(KeywordPlanGeoTarget) + + +DESCRIPTOR._options = None +_KEYWORDPLANCAMPAIGN.fields_by_name['resource_name']._options = None +_KEYWORDPLANCAMPAIGN.fields_by_name['keyword_plan']._options = None +_KEYWORDPLANCAMPAIGN.fields_by_name['id']._options = None +_KEYWORDPLANCAMPAIGN.fields_by_name['language_constants']._options = None +_KEYWORDPLANCAMPAIGN._options = None +_KEYWORDPLANGEOTARGET.fields_by_name['geo_target_constant']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_plan_campaign_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2.py b/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2.py new file mode 100644 index 000000000..92d0b4bad --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/keyword_plan.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import dates_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2 +from google.ads.google_ads.v5.proto.enums import keyword_plan_forecast_interval_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__forecast__interval__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/keyword_plan.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\020KeywordPlanProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/resources/keyword_plan.proto\x12!google.ads.googleads.v5.resources\x1a\x30google/ads/googleads_v5/proto/common/dates.proto\x1aHgoogle/ads/googleads_v5/proto/enums/keyword_plan_forecast_interval.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xe0\x02\n\x0bKeywordPlan\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x05\xfa\x41&\n$googleads.googleapis.com/KeywordPlan\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12*\n\x04name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12U\n\x0f\x66orecast_period\x18\x04 \x01(\x0b\x32<.google.ads.googleads.v5.resources.KeywordPlanForecastPeriod:[\xea\x41X\n$googleads.googleapis.com/KeywordPlan\x12\x30\x63ustomers/{customer}/keywordPlans/{keyword_plan}\"\xdd\x01\n\x19KeywordPlanForecastPeriod\x12s\n\rdate_interval\x18\x01 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastIntervalH\x00\x12?\n\ndate_range\x18\x02 \x01(\x0b\x32).google.ads.googleads.v5.common.DateRangeH\x00\x42\n\n\x08intervalB\xfd\x01\n%com.google.ads.googleads.v5.resourcesB\x10KeywordPlanProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__forecast__interval__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_KEYWORDPLAN = _descriptor.Descriptor( + name='KeywordPlan', + full_name='google.ads.googleads.v5.resources.KeywordPlan', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.KeywordPlan.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A&\n$googleads.googleapis.com/KeywordPlan', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.KeywordPlan.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.KeywordPlan.name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='forecast_period', full_name='google.ads.googleads.v5.resources.KeywordPlan.forecast_period', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AX\n$googleads.googleapis.com/KeywordPlan\0220customers/{customer}/keywordPlans/{keyword_plan}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=344, + serialized_end=696, +) + + +_KEYWORDPLANFORECASTPERIOD = _descriptor.Descriptor( + name='KeywordPlanForecastPeriod', + full_name='google.ads.googleads.v5.resources.KeywordPlanForecastPeriod', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='date_interval', full_name='google.ads.googleads.v5.resources.KeywordPlanForecastPeriod.date_interval', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='date_range', full_name='google.ads.googleads.v5.resources.KeywordPlanForecastPeriod.date_range', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='interval', full_name='google.ads.googleads.v5.resources.KeywordPlanForecastPeriod.interval', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=699, + serialized_end=920, +) + +_KEYWORDPLAN.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLAN.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLAN.fields_by_name['forecast_period'].message_type = _KEYWORDPLANFORECASTPERIOD +_KEYWORDPLANFORECASTPERIOD.fields_by_name['date_interval'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__forecast__interval__pb2._KEYWORDPLANFORECASTINTERVALENUM_KEYWORDPLANFORECASTINTERVAL +_KEYWORDPLANFORECASTPERIOD.fields_by_name['date_range'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_dates__pb2._DATERANGE +_KEYWORDPLANFORECASTPERIOD.oneofs_by_name['interval'].fields.append( + _KEYWORDPLANFORECASTPERIOD.fields_by_name['date_interval']) +_KEYWORDPLANFORECASTPERIOD.fields_by_name['date_interval'].containing_oneof = _KEYWORDPLANFORECASTPERIOD.oneofs_by_name['interval'] +_KEYWORDPLANFORECASTPERIOD.oneofs_by_name['interval'].fields.append( + _KEYWORDPLANFORECASTPERIOD.fields_by_name['date_range']) +_KEYWORDPLANFORECASTPERIOD.fields_by_name['date_range'].containing_oneof = _KEYWORDPLANFORECASTPERIOD.oneofs_by_name['interval'] +DESCRIPTOR.message_types_by_name['KeywordPlan'] = _KEYWORDPLAN +DESCRIPTOR.message_types_by_name['KeywordPlanForecastPeriod'] = _KEYWORDPLANFORECASTPERIOD +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordPlan = _reflection.GeneratedProtocolMessageType('KeywordPlan', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLAN, + '__module__' : 'google.ads.googleads_v5.proto.resources.keyword_plan_pb2' + , + '__doc__': """A Keyword Planner plan. Max number of saved keyword plans: 10000. It's + possible to remove plans if limit is reached. + + Attributes: + resource_name: + Immutable. The resource name of the Keyword Planner plan. + KeywordPlan resource names have the form: + ``customers/{customer_id}/keywordPlans/{kp_plan_id}`` + id: + Output only. The ID of the keyword plan. + name: + The name of the keyword plan. This field is required and + should not be empty when creating new keyword plans. + forecast_period: + The date period used for forecasting the plan. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.KeywordPlan) + }) +_sym_db.RegisterMessage(KeywordPlan) + +KeywordPlanForecastPeriod = _reflection.GeneratedProtocolMessageType('KeywordPlanForecastPeriod', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANFORECASTPERIOD, + '__module__' : 'google.ads.googleads_v5.proto.resources.keyword_plan_pb2' + , + '__doc__': """The forecasting period associated with the keyword plan. + + Attributes: + interval: + Required. The date used for forecasting the Plan. + date_interval: + A future date range relative to the current date used for + forecasting. + date_range: + The custom date range used for forecasting. The start and end + dates must be in the future. Otherwise, an error will be + returned when the forecasting action is performed. The start + and end dates are inclusive. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.KeywordPlanForecastPeriod) + }) +_sym_db.RegisterMessage(KeywordPlanForecastPeriod) + + +DESCRIPTOR._options = None +_KEYWORDPLAN.fields_by_name['resource_name']._options = None +_KEYWORDPLAN.fields_by_name['id']._options = None +_KEYWORDPLAN._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_plan_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/keyword_view_pb2.py b/google/ads/google_ads/v5/proto/resources/keyword_view_pb2.py new file mode 100644 index 000000000..a268a545b --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/keyword_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/keyword_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\020KeywordViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/resources/keyword_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xaf\x01\n\x0bKeywordView\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x03\xfa\x41&\n$googleads.googleapis.com/KeywordView:[\xea\x41X\n$googleads.googleapis.com/KeywordView\x12\x30\x63ustomers/{customer}/keywordViews/{keyword_view}B\xfd\x01\n%com.google.ads.googleads.v5.resourcesB\x10KeywordViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_KEYWORDVIEW = _descriptor.Descriptor( + name='KeywordView', + full_name='google.ads.googleads.v5.resources.KeywordView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.KeywordView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A&\n$googleads.googleapis.com/KeywordView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AX\n$googleads.googleapis.com/KeywordView\0220customers/{customer}/keywordViews/{keyword_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=188, + serialized_end=363, +) + +DESCRIPTOR.message_types_by_name['KeywordView'] = _KEYWORDVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordView = _reflection.GeneratedProtocolMessageType('KeywordView', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.keyword_view_pb2' + , + '__doc__': """A keyword view. + + Attributes: + resource_name: + Output only. The resource name of the keyword view. Keyword + view resource names have the form: ``customers/{customer_id}/ + keywordViews/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.KeywordView) + }) +_sym_db.RegisterMessage(KeywordView) + + +DESCRIPTOR._options = None +_KEYWORDVIEW.fields_by_name['resource_name']._options = None +_KEYWORDVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/keyword_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/keyword_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/keyword_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/label_pb2.py b/google/ads/google_ads/v5/proto/resources/label_pb2.py new file mode 100644 index 000000000..f27bf8399 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/label_pb2.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/label.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import text_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_text__label__pb2 +from google.ads.google_ads.v5.proto.enums import label_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_label__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/label.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\nLabelProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/resources/label.proto\x12!google.ads.googleads.v5.resources\x1a\x35google/ads/googleads_v5/proto/common/text_label.proto\x1a\x36google/ads/googleads_v5/proto/enums/label_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xfa\x02\n\x05Label\x12=\n\rresource_name\x18\x01 \x01(\tB&\xe0\x41\x05\xfa\x41 \n\x1egoogleads.googleapis.com/Label\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12*\n\x04name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12O\n\x06status\x18\x04 \x01(\x0e\x32:.google.ads.googleads.v5.enums.LabelStatusEnum.LabelStatusB\x03\xe0\x41\x03\x12=\n\ntext_label\x18\x05 \x01(\x0b\x32).google.ads.googleads.v5.common.TextLabel:H\xea\x41\x45\n\x1egoogleads.googleapis.com/Label\x12#customers/{customer}/labels/{label}B\xf7\x01\n%com.google.ads.googleads.v5.resourcesB\nLabelProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_text__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_label__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_LABEL = _descriptor.Descriptor( + name='Label', + full_name='google.ads.googleads.v5.resources.Label', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Label.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A \n\036googleads.googleapis.com/Label', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Label.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.Label.name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.Label.status', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_label', full_name='google.ads.googleads.v5.resources.Label.text_label', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AE\n\036googleads.googleapis.com/Label\022#customers/{customer}/labels/{label}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=324, + serialized_end=702, +) + +_LABEL.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_LABEL.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LABEL.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_label__status__pb2._LABELSTATUSENUM_LABELSTATUS +_LABEL.fields_by_name['text_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_text__label__pb2._TEXTLABEL +DESCRIPTOR.message_types_by_name['Label'] = _LABEL +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Label = _reflection.GeneratedProtocolMessageType('Label', (_message.Message,), { + 'DESCRIPTOR' : _LABEL, + '__module__' : 'google.ads.googleads_v5.proto.resources.label_pb2' + , + '__doc__': """A label. + + Attributes: + resource_name: + Immutable. Name of the resource. Label resource names have the + form: ``customers/{customer_id}/labels/{label_id}`` + id: + Output only. Id of the label. Read only. + name: + The name of the label. This field is required and should not + be empty when creating a new label. The length of this string + should be between 1 and 80, inclusive. + status: + Output only. Status of the label. Read only. + text_label: + A type of label displaying text on a colored background. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Label) + }) +_sym_db.RegisterMessage(Label) + + +DESCRIPTOR._options = None +_LABEL.fields_by_name['resource_name']._options = None +_LABEL.fields_by_name['id']._options = None +_LABEL.fields_by_name['status']._options = None +_LABEL._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/label_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/label_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/label_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2.py b/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2.py new file mode 100644 index 000000000..ac8b5f5d0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/landing_page_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/landing_page_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\024LandingPageViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/landing_page_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\x85\x02\n\x0fLandingPageView\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(googleads.googleapis.com/LandingPageView\x12?\n\x14unexpanded_final_url\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:h\xea\x41\x65\n(googleads.googleapis.com/LandingPageView\x12\x39\x63ustomers/{customer}/landingPageViews/{landing_page_view}B\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14LandingPageViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_LANDINGPAGEVIEW = _descriptor.Descriptor( + name='LandingPageView', + full_name='google.ads.googleads.v5.resources.LandingPageView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.LandingPageView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A*\n(googleads.googleapis.com/LandingPageView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unexpanded_final_url', full_name='google.ads.googleads.v5.resources.LandingPageView.unexpanded_final_url', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ae\n(googleads.googleapis.com/LandingPageView\0229customers/{customer}/landingPageViews/{landing_page_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=225, + serialized_end=486, +) + +_LANDINGPAGEVIEW.fields_by_name['unexpanded_final_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['LandingPageView'] = _LANDINGPAGEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LandingPageView = _reflection.GeneratedProtocolMessageType('LandingPageView', (_message.Message,), { + 'DESCRIPTOR' : _LANDINGPAGEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.landing_page_view_pb2' + , + '__doc__': """A landing page view with metrics aggregated at the unexpanded final + URL level. + + Attributes: + resource_name: + Output only. The resource name of the landing page view. + Landing page view resource names have the form: ``customers/{ + customer_id}/landingPageViews/{unexpanded_final_url_fingerprin + t}`` + unexpanded_final_url: + Output only. The advertiser-specified final URL. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.LandingPageView) + }) +_sym_db.RegisterMessage(LandingPageView) + + +DESCRIPTOR._options = None +_LANDINGPAGEVIEW.fields_by_name['resource_name']._options = None +_LANDINGPAGEVIEW.fields_by_name['unexpanded_final_url']._options = None +_LANDINGPAGEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/landing_page_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/language_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/language_constant_pb2.py new file mode 100644 index 000000000..a526dedf1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/language_constant_pb2.py @@ -0,0 +1,160 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/language_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/language_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025LanguageConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/resources/language_constant.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xbf\x02\n\x10LanguageConstant\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/LanguageConstant\x12\x14\n\x02id\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x16\n\x04\x63ode\x18\x07 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x16\n\x04name\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1c\n\ntargetable\x18\t \x01(\x08\x42\x03\xe0\x41\x03H\x03\x88\x01\x01:U\xea\x41R\n)googleads.googleapis.com/LanguageConstant\x12%languageConstants/{language_constant}B\x05\n\x03_idB\x07\n\x05_codeB\x07\n\x05_nameB\r\n\x0b_targetableB\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15LanguageConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_LANGUAGECONSTANT = _descriptor.Descriptor( + name='LanguageConstant', + full_name='google.ads.googleads.v5.resources.LanguageConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.LanguageConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A+\n)googleads.googleapis.com/LanguageConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.LanguageConstant.id', index=1, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='code', full_name='google.ads.googleads.v5.resources.LanguageConstant.code', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.LanguageConstant.name', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targetable', full_name='google.ads.googleads.v5.resources.LanguageConstant.targetable', index=4, + number=9, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AR\n)googleads.googleapis.com/LanguageConstant\022%languageConstants/{language_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.LanguageConstant._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_code', full_name='google.ads.googleads.v5.resources.LanguageConstant._code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.LanguageConstant._name', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_targetable', full_name='google.ads.googleads.v5.resources.LanguageConstant._targetable', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=193, + serialized_end=512, +) + +_LANGUAGECONSTANT.oneofs_by_name['_id'].fields.append( + _LANGUAGECONSTANT.fields_by_name['id']) +_LANGUAGECONSTANT.fields_by_name['id'].containing_oneof = _LANGUAGECONSTANT.oneofs_by_name['_id'] +_LANGUAGECONSTANT.oneofs_by_name['_code'].fields.append( + _LANGUAGECONSTANT.fields_by_name['code']) +_LANGUAGECONSTANT.fields_by_name['code'].containing_oneof = _LANGUAGECONSTANT.oneofs_by_name['_code'] +_LANGUAGECONSTANT.oneofs_by_name['_name'].fields.append( + _LANGUAGECONSTANT.fields_by_name['name']) +_LANGUAGECONSTANT.fields_by_name['name'].containing_oneof = _LANGUAGECONSTANT.oneofs_by_name['_name'] +_LANGUAGECONSTANT.oneofs_by_name['_targetable'].fields.append( + _LANGUAGECONSTANT.fields_by_name['targetable']) +_LANGUAGECONSTANT.fields_by_name['targetable'].containing_oneof = _LANGUAGECONSTANT.oneofs_by_name['_targetable'] +DESCRIPTOR.message_types_by_name['LanguageConstant'] = _LANGUAGECONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LanguageConstant = _reflection.GeneratedProtocolMessageType('LanguageConstant', (_message.Message,), { + 'DESCRIPTOR' : _LANGUAGECONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.language_constant_pb2' + , + '__doc__': """A language. + + Attributes: + resource_name: + Output only. The resource name of the language constant. + Language constant resource names have the form: + ``languageConstants/{criterion_id}`` + id: + Output only. The ID of the language constant. + code: + Output only. The language code, e.g. "en\_US", "en\_AU", "es", + "fr", etc. + name: + Output only. The full name of the language in English, e.g., + "English (US)", "Spanish", etc. + targetable: + Output only. Whether the language is targetable. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.LanguageConstant) + }) +_sym_db.RegisterMessage(LanguageConstant) + + +DESCRIPTOR._options = None +_LANGUAGECONSTANT.fields_by_name['resource_name']._options = None +_LANGUAGECONSTANT.fields_by_name['id']._options = None +_LANGUAGECONSTANT.fields_by_name['code']._options = None +_LANGUAGECONSTANT.fields_by_name['name']._options = None +_LANGUAGECONSTANT.fields_by_name['targetable']._options = None +_LANGUAGECONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/language_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/language_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/language_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/location_view_pb2.py b/google/ads/google_ads/v5/proto/resources/location_view_pb2.py new file mode 100644 index 000000000..804ead389 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/location_view_pb2.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/location_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/location_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\021LocationViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n;google/ads/googleads_v5/proto/resources/location_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xb4\x01\n\x0cLocationView\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%googleads.googleapis.com/LocationView:^\xea\x41[\n%googleads.googleapis.com/LocationView\x12\x32\x63ustomers/{customer}/locationViews/{location_view}B\xfe\x01\n%com.google.ads.googleads.v5.resourcesB\x11LocationViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_LOCATIONVIEW = _descriptor.Descriptor( + name='LocationView', + full_name='google.ads.googleads.v5.resources.LocationView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.LocationView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\'\n%googleads.googleapis.com/LocationView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A[\n%googleads.googleapis.com/LocationView\0222customers/{customer}/locationViews/{location_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=189, + serialized_end=369, +) + +DESCRIPTOR.message_types_by_name['LocationView'] = _LOCATIONVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +LocationView = _reflection.GeneratedProtocolMessageType('LocationView', (_message.Message,), { + 'DESCRIPTOR' : _LOCATIONVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.location_view_pb2' + , + '__doc__': """A location view summarizes the performance of campaigns by Location + criteria. + + Attributes: + resource_name: + Output only. The resource name of the location view. Location + view resource names have the form: ``customers/{customer_id}/ + locationViews/{campaign_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.LocationView) + }) +_sym_db.RegisterMessage(LocationView) + + +DESCRIPTOR._options = None +_LOCATIONVIEW.fields_by_name['resource_name']._options = None +_LOCATIONVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/location_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/location_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/location_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2.py b/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2.py new file mode 100644 index 000000000..ca031b0e4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/managed_placement_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/managed_placement_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\031ManagedPlacementViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/resources/managed_placement_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xdd\x01\n\x14ManagedPlacementView\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x03\xfa\x41/\n-googleads.googleapis.com/ManagedPlacementView:w\xea\x41t\n-googleads.googleapis.com/ManagedPlacementView\x12\x43\x63ustomers/{customer}/managedPlacementViews/{managed_placement_view}B\x86\x02\n%com.google.ads.googleads.v5.resourcesB\x19ManagedPlacementViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MANAGEDPLACEMENTVIEW = _descriptor.Descriptor( + name='ManagedPlacementView', + full_name='google.ads.googleads.v5.resources.ManagedPlacementView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ManagedPlacementView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A/\n-googleads.googleapis.com/ManagedPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352At\n-googleads.googleapis.com/ManagedPlacementView\022Ccustomers/{customer}/managedPlacementViews/{managed_placement_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=198, + serialized_end=419, +) + +DESCRIPTOR.message_types_by_name['ManagedPlacementView'] = _MANAGEDPLACEMENTVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ManagedPlacementView = _reflection.GeneratedProtocolMessageType('ManagedPlacementView', (_message.Message,), { + 'DESCRIPTOR' : _MANAGEDPLACEMENTVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.managed_placement_view_pb2' + , + '__doc__': """A managed placement view. + + Attributes: + resource_name: + Output only. The resource name of the Managed Placement view. + Managed placement view resource names have the form: ``custom + ers/{customer_id}/managedPlacementViews/{ad_group_id}~{criteri + on_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ManagedPlacementView) + }) +_sym_db.RegisterMessage(ManagedPlacementView) + + +DESCRIPTOR._options = None +_MANAGEDPLACEMENTVIEW.fields_by_name['resource_name']._options = None +_MANAGEDPLACEMENTVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/managed_placement_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/media_file_pb2.py b/google/ads/google_ads/v5/proto/resources/media_file_pb2.py new file mode 100644 index 000000000..7a8cb7b34 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/media_file_pb2.py @@ -0,0 +1,587 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/media_file.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import media_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_media__type__pb2 +from google.ads.google_ads.v5.proto.enums import mime_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/media_file.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\016MediaFileProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/resources/media_file.proto\x12!google.ads.googleads.v5.resources\x1a\x34google/ads/googleads_v5/proto/enums/media_type.proto\x1a\x33google/ads/googleads_v5/proto/enums/mime_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xfd\x05\n\tMediaFile\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/MediaFile\x12\x14\n\x02id\x18\x0c \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12I\n\x04type\x18\x05 \x01(\x0e\x32\x36.google.ads.googleads.v5.enums.MediaTypeEnum.MediaTypeB\x03\xe0\x41\x05\x12L\n\tmime_type\x18\x06 \x01(\x0e\x32\x34.google.ads.googleads.v5.enums.MimeTypeEnum.MimeTypeB\x03\xe0\x41\x03\x12\x1c\n\nsource_url\x18\r \x01(\tB\x03\xe0\x41\x05H\x02\x88\x01\x01\x12\x16\n\x04name\x18\x0e \x01(\tB\x03\xe0\x41\x05H\x03\x88\x01\x01\x12\x1b\n\tfile_size\x18\x0f \x01(\x03\x42\x03\xe0\x41\x03H\x04\x88\x01\x01\x12\x43\n\x05image\x18\x03 \x01(\x0b\x32-.google.ads.googleads.v5.resources.MediaImageB\x03\xe0\x41\x05H\x00\x12K\n\x0cmedia_bundle\x18\x04 \x01(\x0b\x32..google.ads.googleads.v5.resources.MediaBundleB\x03\xe0\x41\x05H\x00\x12\x43\n\x05\x61udio\x18\n \x01(\x0b\x32-.google.ads.googleads.v5.resources.MediaAudioB\x03\xe0\x41\x03H\x00\x12\x43\n\x05video\x18\x0b \x01(\x0b\x32-.google.ads.googleads.v5.resources.MediaVideoB\x03\xe0\x41\x05H\x00:U\xea\x41R\n\"googleads.googleapis.com/MediaFile\x12,customers/{customer}/mediaFiles/{media_file}B\x0b\n\tmediatypeB\x05\n\x03_idB\r\n\x0b_source_urlB\x07\n\x05_nameB\x0c\n\n_file_size\"\xb1\x01\n\nMediaImage\x12\x16\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x12%\n\x13\x66ull_size_image_url\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12(\n\x16preview_size_image_url\x18\x03 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x42\x07\n\x05_dataB\x16\n\x14_full_size_image_urlB\x19\n\x17_preview_size_image_url\"M\n\x0bMediaBundle\x12\x16\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x12\x15\n\x03url\x18\x02 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x07\n\x05_dataB\x06\n\x04_url\"I\n\nMediaAudio\x12$\n\x12\x61\x64_duration_millis\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x15\n\x13_ad_duration_millis\"\xec\x01\n\nMediaVideo\x12$\n\x12\x61\x64_duration_millis\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\"\n\x10youtube_video_id\x18\x06 \x01(\tB\x03\xe0\x41\x05H\x01\x88\x01\x01\x12%\n\x13\x61\x64vertising_id_code\x18\x07 \x01(\tB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x1b\n\tisci_code\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x03\x88\x01\x01\x42\x15\n\x13_ad_duration_millisB\x13\n\x11_youtube_video_idB\x16\n\x14_advertising_id_codeB\x0c\n\n_isci_codeB\xfb\x01\n%com.google.ads.googleads.v5.resourcesB\x0eMediaFileProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_media__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MEDIAFILE = _descriptor.Descriptor( + name='MediaFile', + full_name='google.ads.googleads.v5.resources.MediaFile', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.MediaFile.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/MediaFile', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.MediaFile.id', index=1, + number=12, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.MediaFile.type', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mime_type', full_name='google.ads.googleads.v5.resources.MediaFile.mime_type', index=3, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source_url', full_name='google.ads.googleads.v5.resources.MediaFile.source_url', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.MediaFile.name', index=5, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='file_size', full_name='google.ads.googleads.v5.resources.MediaFile.file_size', index=6, + number=15, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='image', full_name='google.ads.googleads.v5.resources.MediaFile.image', index=7, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_bundle', full_name='google.ads.googleads.v5.resources.MediaFile.media_bundle', index=8, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='audio', full_name='google.ads.googleads.v5.resources.MediaFile.audio', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video', full_name='google.ads.googleads.v5.resources.MediaFile.video', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AR\n\"googleads.googleapis.com/MediaFile\022,customers/{customer}/mediaFiles/{media_file}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='mediatype', full_name='google.ads.googleads.v5.resources.MediaFile.mediatype', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.MediaFile._id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_source_url', full_name='google.ads.googleads.v5.resources.MediaFile._source_url', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.MediaFile._name', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_file_size', full_name='google.ads.googleads.v5.resources.MediaFile._file_size', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=293, + serialized_end=1058, +) + + +_MEDIAIMAGE = _descriptor.Descriptor( + name='MediaImage', + full_name='google.ads.googleads.v5.resources.MediaImage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='data', full_name='google.ads.googleads.v5.resources.MediaImage.data', index=0, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='full_size_image_url', full_name='google.ads.googleads.v5.resources.MediaImage.full_size_image_url', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preview_size_image_url', full_name='google.ads.googleads.v5.resources.MediaImage.preview_size_image_url', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_data', full_name='google.ads.googleads.v5.resources.MediaImage._data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_full_size_image_url', full_name='google.ads.googleads.v5.resources.MediaImage._full_size_image_url', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_preview_size_image_url', full_name='google.ads.googleads.v5.resources.MediaImage._preview_size_image_url', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1061, + serialized_end=1238, +) + + +_MEDIABUNDLE = _descriptor.Descriptor( + name='MediaBundle', + full_name='google.ads.googleads.v5.resources.MediaBundle', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='data', full_name='google.ads.googleads.v5.resources.MediaBundle.data', index=0, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.resources.MediaBundle.url', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_data', full_name='google.ads.googleads.v5.resources.MediaBundle._data', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_url', full_name='google.ads.googleads.v5.resources.MediaBundle._url', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1240, + serialized_end=1317, +) + + +_MEDIAAUDIO = _descriptor.Descriptor( + name='MediaAudio', + full_name='google.ads.googleads.v5.resources.MediaAudio', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_duration_millis', full_name='google.ads.googleads.v5.resources.MediaAudio.ad_duration_millis', index=0, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ad_duration_millis', full_name='google.ads.googleads.v5.resources.MediaAudio._ad_duration_millis', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1319, + serialized_end=1392, +) + + +_MEDIAVIDEO = _descriptor.Descriptor( + name='MediaVideo', + full_name='google.ads.googleads.v5.resources.MediaVideo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_duration_millis', full_name='google.ads.googleads.v5.resources.MediaVideo.ad_duration_millis', index=0, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video_id', full_name='google.ads.googleads.v5.resources.MediaVideo.youtube_video_id', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='advertising_id_code', full_name='google.ads.googleads.v5.resources.MediaVideo.advertising_id_code', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='isci_code', full_name='google.ads.googleads.v5.resources.MediaVideo.isci_code', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_ad_duration_millis', full_name='google.ads.googleads.v5.resources.MediaVideo._ad_duration_millis', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_youtube_video_id', full_name='google.ads.googleads.v5.resources.MediaVideo._youtube_video_id', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_advertising_id_code', full_name='google.ads.googleads.v5.resources.MediaVideo._advertising_id_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_isci_code', full_name='google.ads.googleads.v5.resources.MediaVideo._isci_code', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1395, + serialized_end=1631, +) + +_MEDIAFILE.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_media__type__pb2._MEDIATYPEENUM_MEDIATYPE +_MEDIAFILE.fields_by_name['mime_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mime__type__pb2._MIMETYPEENUM_MIMETYPE +_MEDIAFILE.fields_by_name['image'].message_type = _MEDIAIMAGE +_MEDIAFILE.fields_by_name['media_bundle'].message_type = _MEDIABUNDLE +_MEDIAFILE.fields_by_name['audio'].message_type = _MEDIAAUDIO +_MEDIAFILE.fields_by_name['video'].message_type = _MEDIAVIDEO +_MEDIAFILE.oneofs_by_name['mediatype'].fields.append( + _MEDIAFILE.fields_by_name['image']) +_MEDIAFILE.fields_by_name['image'].containing_oneof = _MEDIAFILE.oneofs_by_name['mediatype'] +_MEDIAFILE.oneofs_by_name['mediatype'].fields.append( + _MEDIAFILE.fields_by_name['media_bundle']) +_MEDIAFILE.fields_by_name['media_bundle'].containing_oneof = _MEDIAFILE.oneofs_by_name['mediatype'] +_MEDIAFILE.oneofs_by_name['mediatype'].fields.append( + _MEDIAFILE.fields_by_name['audio']) +_MEDIAFILE.fields_by_name['audio'].containing_oneof = _MEDIAFILE.oneofs_by_name['mediatype'] +_MEDIAFILE.oneofs_by_name['mediatype'].fields.append( + _MEDIAFILE.fields_by_name['video']) +_MEDIAFILE.fields_by_name['video'].containing_oneof = _MEDIAFILE.oneofs_by_name['mediatype'] +_MEDIAFILE.oneofs_by_name['_id'].fields.append( + _MEDIAFILE.fields_by_name['id']) +_MEDIAFILE.fields_by_name['id'].containing_oneof = _MEDIAFILE.oneofs_by_name['_id'] +_MEDIAFILE.oneofs_by_name['_source_url'].fields.append( + _MEDIAFILE.fields_by_name['source_url']) +_MEDIAFILE.fields_by_name['source_url'].containing_oneof = _MEDIAFILE.oneofs_by_name['_source_url'] +_MEDIAFILE.oneofs_by_name['_name'].fields.append( + _MEDIAFILE.fields_by_name['name']) +_MEDIAFILE.fields_by_name['name'].containing_oneof = _MEDIAFILE.oneofs_by_name['_name'] +_MEDIAFILE.oneofs_by_name['_file_size'].fields.append( + _MEDIAFILE.fields_by_name['file_size']) +_MEDIAFILE.fields_by_name['file_size'].containing_oneof = _MEDIAFILE.oneofs_by_name['_file_size'] +_MEDIAIMAGE.oneofs_by_name['_data'].fields.append( + _MEDIAIMAGE.fields_by_name['data']) +_MEDIAIMAGE.fields_by_name['data'].containing_oneof = _MEDIAIMAGE.oneofs_by_name['_data'] +_MEDIAIMAGE.oneofs_by_name['_full_size_image_url'].fields.append( + _MEDIAIMAGE.fields_by_name['full_size_image_url']) +_MEDIAIMAGE.fields_by_name['full_size_image_url'].containing_oneof = _MEDIAIMAGE.oneofs_by_name['_full_size_image_url'] +_MEDIAIMAGE.oneofs_by_name['_preview_size_image_url'].fields.append( + _MEDIAIMAGE.fields_by_name['preview_size_image_url']) +_MEDIAIMAGE.fields_by_name['preview_size_image_url'].containing_oneof = _MEDIAIMAGE.oneofs_by_name['_preview_size_image_url'] +_MEDIABUNDLE.oneofs_by_name['_data'].fields.append( + _MEDIABUNDLE.fields_by_name['data']) +_MEDIABUNDLE.fields_by_name['data'].containing_oneof = _MEDIABUNDLE.oneofs_by_name['_data'] +_MEDIABUNDLE.oneofs_by_name['_url'].fields.append( + _MEDIABUNDLE.fields_by_name['url']) +_MEDIABUNDLE.fields_by_name['url'].containing_oneof = _MEDIABUNDLE.oneofs_by_name['_url'] +_MEDIAAUDIO.oneofs_by_name['_ad_duration_millis'].fields.append( + _MEDIAAUDIO.fields_by_name['ad_duration_millis']) +_MEDIAAUDIO.fields_by_name['ad_duration_millis'].containing_oneof = _MEDIAAUDIO.oneofs_by_name['_ad_duration_millis'] +_MEDIAVIDEO.oneofs_by_name['_ad_duration_millis'].fields.append( + _MEDIAVIDEO.fields_by_name['ad_duration_millis']) +_MEDIAVIDEO.fields_by_name['ad_duration_millis'].containing_oneof = _MEDIAVIDEO.oneofs_by_name['_ad_duration_millis'] +_MEDIAVIDEO.oneofs_by_name['_youtube_video_id'].fields.append( + _MEDIAVIDEO.fields_by_name['youtube_video_id']) +_MEDIAVIDEO.fields_by_name['youtube_video_id'].containing_oneof = _MEDIAVIDEO.oneofs_by_name['_youtube_video_id'] +_MEDIAVIDEO.oneofs_by_name['_advertising_id_code'].fields.append( + _MEDIAVIDEO.fields_by_name['advertising_id_code']) +_MEDIAVIDEO.fields_by_name['advertising_id_code'].containing_oneof = _MEDIAVIDEO.oneofs_by_name['_advertising_id_code'] +_MEDIAVIDEO.oneofs_by_name['_isci_code'].fields.append( + _MEDIAVIDEO.fields_by_name['isci_code']) +_MEDIAVIDEO.fields_by_name['isci_code'].containing_oneof = _MEDIAVIDEO.oneofs_by_name['_isci_code'] +DESCRIPTOR.message_types_by_name['MediaFile'] = _MEDIAFILE +DESCRIPTOR.message_types_by_name['MediaImage'] = _MEDIAIMAGE +DESCRIPTOR.message_types_by_name['MediaBundle'] = _MEDIABUNDLE +DESCRIPTOR.message_types_by_name['MediaAudio'] = _MEDIAAUDIO +DESCRIPTOR.message_types_by_name['MediaVideo'] = _MEDIAVIDEO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaFile = _reflection.GeneratedProtocolMessageType('MediaFile', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAFILE, + '__module__' : 'google.ads.googleads_v5.proto.resources.media_file_pb2' + , + '__doc__': """A media file. + + Attributes: + resource_name: + Immutable. The resource name of the media file. Media file + resource names have the form: + ``customers/{customer_id}/mediaFiles/{media_file_id}`` + id: + Output only. The ID of the media file. + type: + Immutable. Type of the media file. + mime_type: + Output only. The mime type of the media file. + source_url: + Immutable. The URL of where the original media file was + downloaded from (or a file name). Only used for media of type + AUDIO and IMAGE. + name: + Immutable. The name of the media file. The name can be used by + clients to help identify previously uploaded media. + file_size: + Output only. The size of the media file in bytes. + mediatype: + The specific type of the media file. + image: + Immutable. Encapsulates an Image. + media_bundle: + Immutable. A ZIP archive media the content of which contains + HTML5 assets. + audio: + Output only. Encapsulates an Audio. + video: + Immutable. Encapsulates a Video. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MediaFile) + }) +_sym_db.RegisterMessage(MediaFile) + +MediaImage = _reflection.GeneratedProtocolMessageType('MediaImage', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAIMAGE, + '__module__' : 'google.ads.googleads_v5.proto.resources.media_file_pb2' + , + '__doc__': """Encapsulates an Image. + + Attributes: + data: + Immutable. Raw image data. + full_size_image_url: + Output only. The url to the full size version of the image. + preview_size_image_url: + Output only. The url to the preview size version of the image. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MediaImage) + }) +_sym_db.RegisterMessage(MediaImage) + +MediaBundle = _reflection.GeneratedProtocolMessageType('MediaBundle', (_message.Message,), { + 'DESCRIPTOR' : _MEDIABUNDLE, + '__module__' : 'google.ads.googleads_v5.proto.resources.media_file_pb2' + , + '__doc__': """Represents a ZIP archive media the content of which contains HTML5 + assets. + + Attributes: + data: + Immutable. Raw zipped data. + url: + Output only. The url to access the uploaded zipped data. E.g. + https://tpc.googlesyndication.com/simgad/123 This field is + read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MediaBundle) + }) +_sym_db.RegisterMessage(MediaBundle) + +MediaAudio = _reflection.GeneratedProtocolMessageType('MediaAudio', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAAUDIO, + '__module__' : 'google.ads.googleads_v5.proto.resources.media_file_pb2' + , + '__doc__': """Encapsulates an Audio. + + Attributes: + ad_duration_millis: + Output only. The duration of the Audio in milliseconds. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MediaAudio) + }) +_sym_db.RegisterMessage(MediaAudio) + +MediaVideo = _reflection.GeneratedProtocolMessageType('MediaVideo', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAVIDEO, + '__module__' : 'google.ads.googleads_v5.proto.resources.media_file_pb2' + , + '__doc__': """Encapsulates a Video. + + Attributes: + ad_duration_millis: + Output only. The duration of the Video in milliseconds. + youtube_video_id: + Immutable. The YouTube video ID (as seen in YouTube URLs). + advertising_id_code: + Output only. The Advertising Digital Identification code for + this video, as defined by the American Association of + Advertising Agencies, used mainly for television commercials. + isci_code: + Output only. The Industry Standard Commercial Identifier code + for this video, used mainly for television commercials. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MediaVideo) + }) +_sym_db.RegisterMessage(MediaVideo) + + +DESCRIPTOR._options = None +_MEDIAFILE.fields_by_name['resource_name']._options = None +_MEDIAFILE.fields_by_name['id']._options = None +_MEDIAFILE.fields_by_name['type']._options = None +_MEDIAFILE.fields_by_name['mime_type']._options = None +_MEDIAFILE.fields_by_name['source_url']._options = None +_MEDIAFILE.fields_by_name['name']._options = None +_MEDIAFILE.fields_by_name['file_size']._options = None +_MEDIAFILE.fields_by_name['image']._options = None +_MEDIAFILE.fields_by_name['media_bundle']._options = None +_MEDIAFILE.fields_by_name['audio']._options = None +_MEDIAFILE.fields_by_name['video']._options = None +_MEDIAFILE._options = None +_MEDIAIMAGE.fields_by_name['data']._options = None +_MEDIAIMAGE.fields_by_name['full_size_image_url']._options = None +_MEDIAIMAGE.fields_by_name['preview_size_image_url']._options = None +_MEDIABUNDLE.fields_by_name['data']._options = None +_MEDIABUNDLE.fields_by_name['url']._options = None +_MEDIAAUDIO.fields_by_name['ad_duration_millis']._options = None +_MEDIAVIDEO.fields_by_name['ad_duration_millis']._options = None +_MEDIAVIDEO.fields_by_name['youtube_video_id']._options = None +_MEDIAVIDEO.fields_by_name['advertising_id_code']._options = None +_MEDIAVIDEO.fields_by_name['isci_code']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/media_file_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/media_file_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/media_file_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2.py b/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2.py new file mode 100644 index 000000000..325485787 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/merchant_center_link.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import merchant_center_link_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_merchant__center__link__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/merchant_center_link.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\027MerchantCenterLinkProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/resources/merchant_center_link.proto\x12!google.ads.googleads.v5.resources\x1a\x45google/ads/googleads_v5/proto/enums/merchant_center_link_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xa7\x03\n\x12MerchantCenterLink\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x05\xfa\x41-\n+googleads.googleapis.com/MerchantCenterLink\x12\x14\n\x02id\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12.\n\x1cmerchant_center_account_name\x18\x07 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01\x12\x64\n\x06status\x18\x05 \x01(\x0e\x32T.google.ads.googleads.v5.enums.MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus:q\xea\x41n\n+googleads.googleapis.com/MerchantCenterLink\x12?customers/{customer}/merchantCenterLinks/{merchant_center_link}B\x05\n\x03_idB\x1f\n\x1d_merchant_center_account_nameB\x84\x02\n%com.google.ads.googleads.v5.resourcesB\x17MerchantCenterLinkProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_merchant__center__link__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MERCHANTCENTERLINK = _descriptor.Descriptor( + name='MerchantCenterLink', + full_name='google.ads.googleads.v5.resources.MerchantCenterLink', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.MerchantCenterLink.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A-\n+googleads.googleapis.com/MerchantCenterLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.MerchantCenterLink.id', index=1, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='merchant_center_account_name', full_name='google.ads.googleads.v5.resources.MerchantCenterLink.merchant_center_account_name', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.MerchantCenterLink.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352An\n+googleads.googleapis.com/MerchantCenterLink\022?customers/{customer}/merchantCenterLinks/{merchant_center_link}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.MerchantCenterLink._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_merchant_center_account_name', full_name='google.ads.googleads.v5.resources.MerchantCenterLink._merchant_center_account_name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=267, + serialized_end=690, +) + +_MERCHANTCENTERLINK.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_merchant__center__link__status__pb2._MERCHANTCENTERLINKSTATUSENUM_MERCHANTCENTERLINKSTATUS +_MERCHANTCENTERLINK.oneofs_by_name['_id'].fields.append( + _MERCHANTCENTERLINK.fields_by_name['id']) +_MERCHANTCENTERLINK.fields_by_name['id'].containing_oneof = _MERCHANTCENTERLINK.oneofs_by_name['_id'] +_MERCHANTCENTERLINK.oneofs_by_name['_merchant_center_account_name'].fields.append( + _MERCHANTCENTERLINK.fields_by_name['merchant_center_account_name']) +_MERCHANTCENTERLINK.fields_by_name['merchant_center_account_name'].containing_oneof = _MERCHANTCENTERLINK.oneofs_by_name['_merchant_center_account_name'] +DESCRIPTOR.message_types_by_name['MerchantCenterLink'] = _MERCHANTCENTERLINK +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MerchantCenterLink = _reflection.GeneratedProtocolMessageType('MerchantCenterLink', (_message.Message,), { + 'DESCRIPTOR' : _MERCHANTCENTERLINK, + '__module__' : 'google.ads.googleads_v5.proto.resources.merchant_center_link_pb2' + , + '__doc__': """A data sharing connection, proposed or in use, between a Google Ads + Customer and a Merchant Center account. + + Attributes: + resource_name: + Immutable. The resource name of the merchant center link. + Merchant center link resource names have the form: ``customer + s/{customer_id}/merchantCenterLinks/{merchant_center_id}`` + id: + Output only. The ID of the Merchant Center account. This field + is readonly. + merchant_center_account_name: + Output only. The name of the Merchant Center account. This + field is readonly. + status: + The status of the link. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MerchantCenterLink) + }) +_sym_db.RegisterMessage(MerchantCenterLink) + + +DESCRIPTOR._options = None +_MERCHANTCENTERLINK.fields_by_name['resource_name']._options = None +_MERCHANTCENTERLINK.fields_by_name['id']._options = None +_MERCHANTCENTERLINK.fields_by_name['merchant_center_account_name']._options = None +_MERCHANTCENTERLINK._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/merchant_center_link_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2.py new file mode 100644 index 000000000..e912236ed --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/mobile_app_category_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/mobile_app_category_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\036MobileAppCategoryConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/resources/mobile_app_category_constant.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xa0\x02\n\x19MobileAppCategoryConstant\x12Q\n\rresource_name\x18\x01 \x01(\tB:\xe0\x41\x03\xfa\x41\x34\n2googleads.googleapis.com/MobileAppCategoryConstant\x12\x14\n\x02id\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x16\n\x04name\x18\x05 \x01(\tB\x03\xe0\x41\x03H\x01\x88\x01\x01:r\xea\x41o\n2googleads.googleapis.com/MobileAppCategoryConstant\x12\x39mobileAppCategoryConstants/{mobile_app_category_constant}B\x05\n\x03_idB\x07\n\x05_nameB\x8b\x02\n%com.google.ads.googleads.v5.resourcesB\x1eMobileAppCategoryConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_MOBILEAPPCATEGORYCONSTANT = _descriptor.Descriptor( + name='MobileAppCategoryConstant', + full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A4\n2googleads.googleapis.com/MobileAppCategoryConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant.id', index=1, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant.name', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ao\n2googleads.googleapis.com/MobileAppCategoryConstant\0229mobileAppCategoryConstants/{mobile_app_category_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.MobileAppCategoryConstant._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=204, + serialized_end=492, +) + +_MOBILEAPPCATEGORYCONSTANT.oneofs_by_name['_id'].fields.append( + _MOBILEAPPCATEGORYCONSTANT.fields_by_name['id']) +_MOBILEAPPCATEGORYCONSTANT.fields_by_name['id'].containing_oneof = _MOBILEAPPCATEGORYCONSTANT.oneofs_by_name['_id'] +_MOBILEAPPCATEGORYCONSTANT.oneofs_by_name['_name'].fields.append( + _MOBILEAPPCATEGORYCONSTANT.fields_by_name['name']) +_MOBILEAPPCATEGORYCONSTANT.fields_by_name['name'].containing_oneof = _MOBILEAPPCATEGORYCONSTANT.oneofs_by_name['_name'] +DESCRIPTOR.message_types_by_name['MobileAppCategoryConstant'] = _MOBILEAPPCATEGORYCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MobileAppCategoryConstant = _reflection.GeneratedProtocolMessageType('MobileAppCategoryConstant', (_message.Message,), { + 'DESCRIPTOR' : _MOBILEAPPCATEGORYCONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.mobile_app_category_constant_pb2' + , + '__doc__': """A mobile application category constant. + + Attributes: + resource_name: + Output only. The resource name of the mobile app category + constant. Mobile app category constant resource names have the + form: ``mobileAppCategoryConstants/{mobile_app_category_id}`` + id: + Output only. The ID of the mobile app category constant. + name: + Output only. Mobile app category name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.MobileAppCategoryConstant) + }) +_sym_db.RegisterMessage(MobileAppCategoryConstant) + + +DESCRIPTOR._options = None +_MOBILEAPPCATEGORYCONSTANT.fields_by_name['resource_name']._options = None +_MOBILEAPPCATEGORYCONSTANT.fields_by_name['id']._options = None +_MOBILEAPPCATEGORYCONSTANT.fields_by_name['name']._options = None +_MOBILEAPPCATEGORYCONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/mobile_app_category_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/mobile_device_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/mobile_device_constant_pb2.py new file mode 100644 index 000000000..4804845c6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/mobile_device_constant_pb2.py @@ -0,0 +1,170 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/mobile_device_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import mobile_device_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_mobile__device__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/mobile_device_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\031MobileDeviceConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/resources/mobile_device_constant.proto\x12!google.ads.googleads.v5.resources\x1agoogle/ads/googleads_v5/proto/resources/payments_account.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xbc\x04\n\x0fPaymentsAccount\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x03\xfa\x41*\n(googleads.googleapis.com/PaymentsAccount\x12>\n\x13payments_account_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12/\n\x04name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x38\n\rcurrency_code\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12>\n\x13payments_profile_id\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12H\n\x1dsecondary_payments_profile_id\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x42\n\x17paying_manager_customer\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:g\xea\x41\x64\n(googleads.googleapis.com/PaymentsAccount\x12\x38\x63ustomers/{customer}/paymentsAccounts/{payments_account}B\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14PaymentsAccountProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_PAYMENTSACCOUNT = _descriptor.Descriptor( + name='PaymentsAccount', + full_name='google.ads.googleads.v5.resources.PaymentsAccount', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.PaymentsAccount.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A*\n(googleads.googleapis.com/PaymentsAccount', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_account_id', full_name='google.ads.googleads.v5.resources.PaymentsAccount.payments_account_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.PaymentsAccount.name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.resources.PaymentsAccount.currency_code', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payments_profile_id', full_name='google.ads.googleads.v5.resources.PaymentsAccount.payments_profile_id', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='secondary_payments_profile_id', full_name='google.ads.googleads.v5.resources.PaymentsAccount.secondary_payments_profile_id', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='paying_manager_customer', full_name='google.ads.googleads.v5.resources.PaymentsAccount.paying_manager_customer', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ad\n(googleads.googleapis.com/PaymentsAccount\0228customers/{customer}/paymentsAccounts/{payments_account}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=224, + serialized_end=796, +) + +_PAYMENTSACCOUNT.fields_by_name['payments_account_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PAYMENTSACCOUNT.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PAYMENTSACCOUNT.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PAYMENTSACCOUNT.fields_by_name['payments_profile_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PAYMENTSACCOUNT.fields_by_name['secondary_payments_profile_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PAYMENTSACCOUNT.fields_by_name['paying_manager_customer'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['PaymentsAccount'] = _PAYMENTSACCOUNT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PaymentsAccount = _reflection.GeneratedProtocolMessageType('PaymentsAccount', (_message.Message,), { + 'DESCRIPTOR' : _PAYMENTSACCOUNT, + '__module__' : 'google.ads.googleads_v5.proto.resources.payments_account_pb2' + , + '__doc__': """A payments account, which can be used to set up billing for an Ads + customer. + + Attributes: + resource_name: + Output only. The resource name of the payments account. + PaymentsAccount resource names have the form: ``customers/{cu + stomer_id}/paymentsAccounts/{payments_account_id}`` + payments_account_id: + Output only. A 16 digit ID used to identify a payments + account. + name: + Output only. The name of the payments account. + currency_code: + Output only. The currency code of the payments account. A + subset of the currency codes derived from the ISO 4217 + standard is supported. + payments_profile_id: + Output only. A 12 digit ID used to identify the payments + profile associated with the payments account. + secondary_payments_profile_id: + Output only. A secondary payments profile ID present in + uncommon situations, e.g. when a sequential liability + agreement has been arranged. + paying_manager_customer: + Output only. Paying manager of this payment account. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.PaymentsAccount) + }) +_sym_db.RegisterMessage(PaymentsAccount) + + +DESCRIPTOR._options = None +_PAYMENTSACCOUNT.fields_by_name['resource_name']._options = None +_PAYMENTSACCOUNT.fields_by_name['payments_account_id']._options = None +_PAYMENTSACCOUNT.fields_by_name['name']._options = None +_PAYMENTSACCOUNT.fields_by_name['currency_code']._options = None +_PAYMENTSACCOUNT.fields_by_name['payments_profile_id']._options = None +_PAYMENTSACCOUNT.fields_by_name['secondary_payments_profile_id']._options = None +_PAYMENTSACCOUNT.fields_by_name['paying_manager_customer']._options = None +_PAYMENTSACCOUNT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/payments_account_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/payments_account_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/payments_account_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2.py new file mode 100644 index 000000000..25ad34cf0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/product_bidding_category_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import product_bidding_category_level_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2 +from google.ads.google_ads.v5.proto.enums import product_bidding_category_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__status__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/product_bidding_category_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB#ProductBiddingCategoryConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/resources/product_bidding_category_constant.proto\x12!google.ads.googleads.v5.resources\x1aHgoogle/ads/googleads_v5/proto/enums/product_bidding_category_level.proto\x1aIgoogle/ads/googleads_v5/proto/enums/product_bidding_category_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xcd\x06\n\x1eProductBiddingCategoryConstant\x12V\n\rresource_name\x18\x01 \x01(\tB?\xe0\x41\x03\xfa\x41\x39\n7googleads.googleapis.com/ProductBiddingCategoryConstant\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x37\n\x0c\x63ountry_code\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x8f\x01\n(product_bidding_category_constant_parent\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValueB?\xe0\x41\x03\xfa\x41\x39\n7googleads.googleapis.com/ProductBiddingCategoryConstant\x12n\n\x05level\x18\x05 \x01(\x0e\x32Z.google.ads.googleads.v5.enums.ProductBiddingCategoryLevelEnum.ProductBiddingCategoryLevelB\x03\xe0\x41\x03\x12q\n\x06status\x18\x06 \x01(\x0e\x32\\.google.ads.googleads.v5.enums.ProductBiddingCategoryStatusEnum.ProductBiddingCategoryStatusB\x03\xe0\x41\x03\x12\x38\n\rlanguage_code\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x39\n\x0elocalized_name\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:\x81\x01\xea\x41~\n7googleads.googleapis.com/ProductBiddingCategoryConstant\x12\x43productBiddingCategoryConstants/{product_bidding_category_constant}B\x90\x02\n%com.google.ads.googleads.v5.resourcesB#ProductBiddingCategoryConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_PRODUCTBIDDINGCATEGORYCONSTANT = _descriptor.Descriptor( + name='ProductBiddingCategoryConstant', + full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A9\n7googleads.googleapis.com/ProductBiddingCategoryConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.country_code', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_constant_parent', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.product_bidding_category_constant_parent', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A9\n7googleads.googleapis.com/ProductBiddingCategoryConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='level', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.level', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.status', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.language_code', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='localized_name', full_name='google.ads.googleads.v5.resources.ProductBiddingCategoryConstant.localized_name', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A~\n7googleads.googleapis.com/ProductBiddingCategoryConstant\022CproductBiddingCategoryConstants/{product_bidding_category_constant}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=390, + serialized_end=1235, +) + +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['product_bidding_category_constant_parent'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['level'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__level__pb2._PRODUCTBIDDINGCATEGORYLEVELENUM_PRODUCTBIDDINGCATEGORYLEVEL +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_product__bidding__category__status__pb2._PRODUCTBIDDINGCATEGORYSTATUSENUM_PRODUCTBIDDINGCATEGORYSTATUS +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['localized_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['ProductBiddingCategoryConstant'] = _PRODUCTBIDDINGCATEGORYCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductBiddingCategoryConstant = _reflection.GeneratedProtocolMessageType('ProductBiddingCategoryConstant', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTBIDDINGCATEGORYCONSTANT, + '__module__' : 'google.ads.googleads_v5.proto.resources.product_bidding_category_constant_pb2' + , + '__doc__': """A Product Bidding Category. + + Attributes: + resource_name: + Output only. The resource name of the product bidding + category. Product bidding category resource names have the + form: ``productBiddingCategoryConstants/{country_code}~{level + }~{id}`` + id: + Output only. ID of the product bidding category. This ID is + equivalent to the google\_product\_category ID as described in + this article: + https://support.google.com/merchants/answer/6324436. + country_code: + Output only. Two-letter upper-case country code of the product + bidding category. + product_bidding_category_constant_parent: + Output only. Resource name of the parent product bidding + category. + level: + Output only. Level of the product bidding category. + status: + Output only. Status of the product bidding category. + language_code: + Output only. Language code of the product bidding category. + localized_name: + Output only. Display value of the product bidding category + localized according to language\_code. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ProductBiddingCategoryConstant) + }) +_sym_db.RegisterMessage(ProductBiddingCategoryConstant) + + +DESCRIPTOR._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['resource_name']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['id']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['country_code']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['product_bidding_category_constant_parent']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['level']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['status']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['language_code']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT.fields_by_name['localized_name']._options = None +_PRODUCTBIDDINGCATEGORYCONSTANT._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/product_bidding_category_constant_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/product_group_view_pb2.py b/google/ads/google_ads/v5/proto/resources/product_group_view_pb2.py new file mode 100644 index 000000000..985422fb0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/product_group_view_pb2.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/product_group_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/product_group_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025ProductGroupViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/resources/product_group_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xc9\x01\n\x10ProductGroupView\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/ProductGroupView:k\xea\x41h\n)googleads.googleapis.com/ProductGroupView\x12;customers/{customer}/productGroupViews/{product_group_view}B\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15ProductGroupViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_PRODUCTGROUPVIEW = _descriptor.Descriptor( + name='ProductGroupView', + full_name='google.ads.googleads.v5.resources.ProductGroupView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ProductGroupView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A+\n)googleads.googleapis.com/ProductGroupView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ah\n)googleads.googleapis.com/ProductGroupView\022;customers/{customer}/productGroupViews/{product_group_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=194, + serialized_end=395, +) + +DESCRIPTOR.message_types_by_name['ProductGroupView'] = _PRODUCTGROUPVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProductGroupView = _reflection.GeneratedProtocolMessageType('ProductGroupView', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTGROUPVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.product_group_view_pb2' + , + '__doc__': """A product group view. + + Attributes: + resource_name: + Output only. The resource name of the product group view. + Product group view resource names have the form: ``customers/ + {customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ProductGroupView) + }) +_sym_db.RegisterMessage(ProductGroupView) + + +DESCRIPTOR._options = None +_PRODUCTGROUPVIEW.fields_by_name['resource_name']._options = None +_PRODUCTGROUPVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/product_group_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/product_group_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/product_group_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/recommendation_pb2.py b/google/ads/google_ads/v5/proto/resources/recommendation_pb2.py new file mode 100644 index 000000000..3eda997f3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/recommendation_pb2.py @@ -0,0 +1,1518 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/recommendation.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.common import extensions_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2 +from google.ads.google_ads.v5.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.ads.google_ads.v5.proto.enums import recommendation_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_recommendation__type__pb2 +from google.ads.google_ads.v5.proto.enums import target_cpa_opt_in_recommendation_goal_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__cpa__opt__in__recommendation__goal__pb2 +from google.ads.google_ads.v5.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/recommendation.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\023RecommendationProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\n\x14\x62udget_amount_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12[\n\x06impact\x18\x02 \x01(\x0b\x32\x46.google.ads.googleads.v5.resources.Recommendation.RecommendationImpactB\x03\xe0\x41\x03\x1a\xa0\x01\n\x15KeywordRecommendation\x12\x41\n\x07keyword\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x03\x12\x44\n\x1arecommended_cpc_bid_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x1ax\n\x1fSitelinkExtensionRecommendation\x12U\n\x16recommended_extensions\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.SitelinkFeedItemB\x03\xe0\x41\x03\x1a\xc4\x01\n\x14TextAdRecommendation\x12\x36\n\x02\x61\x64\x18\x01 \x01(\x0b\x32%.google.ads.googleads.v5.resources.AdB\x03\xe0\x41\x03\x12\x38\n\rcreation_date\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12:\n\x0f\x61uto_apply_date\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x1a\xcb\x01\n\x1dTargetRoasOptInRecommendation\x12)\n\x17recommended_target_roas\x18\x01 \x01(\x01\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x38\n&required_campaign_budget_amount_micros\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x1a\n\x18_recommended_target_roasB)\n\'_required_campaign_budget_amount_micros\x1ao\n!MaximizeClicksOptInRecommendation\x12J\n recommended_budget_amount_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x1a\xfd\x04\n\x1cTargetCpaOptInRecommendation\x12\x87\x01\n\x07options\x18\x01 \x03(\x0b\x32q.google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOptionB\x03\xe0\x41\x03\x12G\n\x1drecommended_target_cpa_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x1a\x89\x03\n\"TargetCpaOptInRecommendationOption\x12w\n\x04goal\x18\x01 \x01(\x0e\x32\x64.google.ads.googleads.v5.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoalB\x03\xe0\x41\x03\x12;\n\x11target_cpa_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12P\n&required_campaign_budget_amount_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12[\n\x06impact\x18\x04 \x01(\x0b\x32\x46.google.ads.googleads.v5.resources.Recommendation.RecommendationImpactB\x03\xe0\x41\x03\x1at\n&MaximizeConversionsOptInRecommendation\x12J\n recommended_budget_amount_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x1a \n\x1e\x45nhancedCpcOptInRecommendation\x1a\"\n OptimizeAdRotationRecommendation\x1ap\n\x1b\x43\x61llExtensionRecommendation\x12Q\n\x16recommended_extensions\x18\x01 \x03(\x0b\x32,.google.ads.googleads.v5.common.CallFeedItemB\x03\xe0\x41\x03\x1a#\n!SearchPartnersOptInRecommendation\x1av\n\x1e\x43\x61lloutExtensionRecommendation\x12T\n\x16recommended_extensions\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v5.common.CalloutFeedItemB\x03\xe0\x41\x03\x1a\xce\x01\n\x1eKeywordMatchTypeRecommendation\x12\x41\n\x07keyword\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x03\x12i\n\x16recommended_match_type\x18\x02 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.KeywordMatchTypeEnum.KeywordMatchTypeB\x03\xe0\x41\x03\x1a\xd7\x01\n\x1eMoveUnusedBudgetRecommendation\x12\x41\n\x16\x65xcess_campaign_budget\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12r\n\x15\x62udget_recommendation\x18\x02 \x01(\x0b\x32N.google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendationB\x03\xe0\x41\x03:c\xea\x41`\n\'googleads.googleapis.com/Recommendation\x12\x35\x63ustomers/{customer}/recommendations/{recommendation}B\x10\n\x0erecommendationB\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13RecommendationProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_recommendation__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__cpa__opt__in__recommendation__goal__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_RECOMMENDATION_RECOMMENDATIONIMPACT = _descriptor.Descriptor( + name='RecommendationImpact', + full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationImpact', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='base_metrics', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationImpact.base_metrics', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='potential_metrics', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationImpact.potential_metrics', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3169, + serialized_end=3396, +) + +_RECOMMENDATION_RECOMMENDATIONMETRICS = _descriptor.Descriptor( + name='RecommendationMetrics', + full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics.impressions', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics.clicks', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics.cost_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics.conversions', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video_views', full_name='google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics.video_views', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3399, + serialized_end=3696, +) + +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION = _descriptor.Descriptor( + name='CampaignBudgetRecommendationOption', + full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption.budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impact', full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption.impact', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4025, + serialized_end=4218, +) + +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION = _descriptor.Descriptor( + name='CampaignBudgetRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='current_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.current_budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommended_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.recommended_budget_amount_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_options', full_name='google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.budget_options', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3699, + serialized_end=4218, +) + +_RECOMMENDATION_KEYWORDRECOMMENDATION = _descriptor.Descriptor( + name='KeywordRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.KeywordRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.Recommendation.KeywordRecommendation.keyword', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommended_cpc_bid_micros', full_name='google.ads.googleads.v5.resources.Recommendation.KeywordRecommendation.recommended_cpc_bid_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4221, + serialized_end=4381, +) + +_RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION = _descriptor.Descriptor( + name='SitelinkExtensionRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.SitelinkExtensionRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_extensions', full_name='google.ads.googleads.v5.resources.Recommendation.SitelinkExtensionRecommendation.recommended_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4383, + serialized_end=4503, +) + +_RECOMMENDATION_TEXTADRECOMMENDATION = _descriptor.Descriptor( + name='TextAdRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.TextAdRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad', full_name='google.ads.googleads.v5.resources.Recommendation.TextAdRecommendation.ad', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='creation_date', full_name='google.ads.googleads.v5.resources.Recommendation.TextAdRecommendation.creation_date', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='auto_apply_date', full_name='google.ads.googleads.v5.resources.Recommendation.TextAdRecommendation.auto_apply_date', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4506, + serialized_end=4702, +) + +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION = _descriptor.Descriptor( + name='TargetRoasOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_target_roas', full_name='google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation.recommended_target_roas', index=0, + number=1, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='required_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation.required_campaign_budget_amount_micros', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_recommended_target_roas', full_name='google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation._recommended_target_roas', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_required_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation._required_campaign_budget_amount_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4705, + serialized_end=4908, +) + +_RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION = _descriptor.Descriptor( + name='MaximizeClicksOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.MaximizeClicksOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.MaximizeClicksOptInRecommendation.recommended_budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4910, + serialized_end=5021, +) + +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION = _descriptor.Descriptor( + name='TargetCpaOptInRecommendationOption', + full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='goal', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption.goal', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption.target_cpa_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='required_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption.required_campaign_budget_amount_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impact', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption.impact', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5268, + serialized_end=5661, +) + +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION = _descriptor.Descriptor( + name='TargetCpaOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='options', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.options', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommended_target_cpa_micros', full_name='google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.recommended_target_cpa_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5024, + serialized_end=5661, +) + +_RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION = _descriptor.Descriptor( + name='MaximizeConversionsOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.MaximizeConversionsOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_budget_amount_micros', full_name='google.ads.googleads.v5.resources.Recommendation.MaximizeConversionsOptInRecommendation.recommended_budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5663, + serialized_end=5779, +) + +_RECOMMENDATION_ENHANCEDCPCOPTINRECOMMENDATION = _descriptor.Descriptor( + name='EnhancedCpcOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.EnhancedCpcOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5781, + serialized_end=5813, +) + +_RECOMMENDATION_OPTIMIZEADROTATIONRECOMMENDATION = _descriptor.Descriptor( + name='OptimizeAdRotationRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.OptimizeAdRotationRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5815, + serialized_end=5849, +) + +_RECOMMENDATION_CALLEXTENSIONRECOMMENDATION = _descriptor.Descriptor( + name='CallExtensionRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.CallExtensionRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_extensions', full_name='google.ads.googleads.v5.resources.Recommendation.CallExtensionRecommendation.recommended_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5851, + serialized_end=5963, +) + +_RECOMMENDATION_SEARCHPARTNERSOPTINRECOMMENDATION = _descriptor.Descriptor( + name='SearchPartnersOptInRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.SearchPartnersOptInRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5965, + serialized_end=6000, +) + +_RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION = _descriptor.Descriptor( + name='CalloutExtensionRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.CalloutExtensionRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='recommended_extensions', full_name='google.ads.googleads.v5.resources.Recommendation.CalloutExtensionRecommendation.recommended_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6002, + serialized_end=6120, +) + +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION = _descriptor.Descriptor( + name='KeywordMatchTypeRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.KeywordMatchTypeRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.Recommendation.KeywordMatchTypeRecommendation.keyword', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommended_match_type', full_name='google.ads.googleads.v5.resources.Recommendation.KeywordMatchTypeRecommendation.recommended_match_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6123, + serialized_end=6329, +) + +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION = _descriptor.Descriptor( + name='MoveUnusedBudgetRecommendation', + full_name='google.ads.googleads.v5.resources.Recommendation.MoveUnusedBudgetRecommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='excess_campaign_budget', full_name='google.ads.googleads.v5.resources.Recommendation.MoveUnusedBudgetRecommendation.excess_campaign_budget', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.MoveUnusedBudgetRecommendation.budget_recommendation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6332, + serialized_end=6547, +) + +_RECOMMENDATION = _descriptor.Descriptor( + name='Recommendation', + full_name='google.ads.googleads.v5.resources.Recommendation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Recommendation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A)\n\'googleads.googleapis.com/Recommendation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.Recommendation.type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='impact', full_name='google.ads.googleads.v5.resources.Recommendation.impact', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.resources.Recommendation.campaign_budget', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/CampaignBudget', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.resources.Recommendation.campaign', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.Recommendation.ad_group', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dismissed', full_name='google.ads.googleads.v5.resources.Recommendation.dismissed', index=6, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.campaign_budget_recommendation', index=7, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.keyword_recommendation', index=8, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_ad_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.text_ad_recommendation', index=9, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.target_cpa_opt_in_recommendation', index=10, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='maximize_conversions_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.maximize_conversions_opt_in_recommendation', index=11, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enhanced_cpc_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.enhanced_cpc_opt_in_recommendation', index=12, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_partners_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.search_partners_opt_in_recommendation', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='maximize_clicks_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.maximize_clicks_opt_in_recommendation', index=14, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optimize_ad_rotation_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.optimize_ad_rotation_recommendation', index=15, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='callout_extension_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.callout_extension_recommendation', index=16, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sitelink_extension_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.sitelink_extension_recommendation', index=17, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_extension_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.call_extension_recommendation', index=18, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_match_type_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.keyword_match_type_recommendation', index=19, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='move_unused_budget_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.move_unused_budget_recommendation', index=20, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas_opt_in_recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.target_roas_opt_in_recommendation', index=21, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_RECOMMENDATION_RECOMMENDATIONIMPACT, _RECOMMENDATION_RECOMMENDATIONMETRICS, _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION, _RECOMMENDATION_KEYWORDRECOMMENDATION, _RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION, _RECOMMENDATION_TEXTADRECOMMENDATION, _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION, _RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION, _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION, _RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION, _RECOMMENDATION_ENHANCEDCPCOPTINRECOMMENDATION, _RECOMMENDATION_OPTIMIZEADROTATIONRECOMMENDATION, _RECOMMENDATION_CALLEXTENSIONRECOMMENDATION, _RECOMMENDATION_SEARCHPARTNERSOPTINRECOMMENDATION, _RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION, _RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION, _RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION, ], + enum_types=[ + ], + serialized_options=b'\352A`\n\'googleads.googleapis.com/Recommendation\0225customers/{customer}/recommendations/{recommendation}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='recommendation', full_name='google.ads.googleads.v5.resources.Recommendation.recommendation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=586, + serialized_end=6666, +) + +_RECOMMENDATION_RECOMMENDATIONIMPACT.fields_by_name['base_metrics'].message_type = _RECOMMENDATION_RECOMMENDATIONMETRICS +_RECOMMENDATION_RECOMMENDATIONIMPACT.fields_by_name['potential_metrics'].message_type = _RECOMMENDATION_RECOMMENDATIONMETRICS +_RECOMMENDATION_RECOMMENDATIONIMPACT.containing_type = _RECOMMENDATION +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['clicks'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['cost_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['video_views'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_RECOMMENDATION_RECOMMENDATIONMETRICS.containing_type = _RECOMMENDATION +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION.fields_by_name['budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION.fields_by_name['impact'].message_type = _RECOMMENDATION_RECOMMENDATIONIMPACT +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION.containing_type = _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['current_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['recommended_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['budget_options'].message_type = _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_KEYWORDRECOMMENDATION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_RECOMMENDATION_KEYWORDRECOMMENDATION.fields_by_name['recommended_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_KEYWORDRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._SITELINKFEEDITEM +_RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['creation_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['auto_apply_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION_TEXTADRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.oneofs_by_name['_recommended_target_roas'].fields.append( + _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['recommended_target_roas']) +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['recommended_target_roas'].containing_oneof = _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.oneofs_by_name['_recommended_target_roas'] +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.oneofs_by_name['_required_campaign_budget_amount_micros'].fields.append( + _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['required_campaign_budget_amount_micros']) +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['required_campaign_budget_amount_micros'].containing_oneof = _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.oneofs_by_name['_required_campaign_budget_amount_micros'] +_RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION.fields_by_name['recommended_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['goal'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_target__cpa__opt__in__recommendation__goal__pb2._TARGETCPAOPTINRECOMMENDATIONGOALENUM_TARGETCPAOPTINRECOMMENDATIONGOAL +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['target_cpa_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['required_campaign_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['impact'].message_type = _RECOMMENDATION_RECOMMENDATIONIMPACT +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.containing_type = _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION.fields_by_name['options'].message_type = _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION.fields_by_name['recommended_target_cpa_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION.fields_by_name['recommended_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_ENHANCEDCPCOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_OPTIMIZEADROTATIONRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_CALLEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLFEEDITEM +_RECOMMENDATION_CALLEXTENSIONRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_SEARCHPARTNERSOPTINRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLOUTFEEDITEM +_RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION.fields_by_name['recommended_match_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2._KEYWORDMATCHTYPEENUM_KEYWORDMATCHTYPE +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION.fields_by_name['excess_campaign_budget'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION.fields_by_name['budget_recommendation'].message_type = _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION.containing_type = _RECOMMENDATION +_RECOMMENDATION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_recommendation__type__pb2._RECOMMENDATIONTYPEENUM_RECOMMENDATIONTYPE +_RECOMMENDATION.fields_by_name['impact'].message_type = _RECOMMENDATION_RECOMMENDATIONIMPACT +_RECOMMENDATION.fields_by_name['campaign_budget'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION.fields_by_name['campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RECOMMENDATION.fields_by_name['dismissed'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_RECOMMENDATION.fields_by_name['campaign_budget_recommendation'].message_type = _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION +_RECOMMENDATION.fields_by_name['keyword_recommendation'].message_type = _RECOMMENDATION_KEYWORDRECOMMENDATION +_RECOMMENDATION.fields_by_name['text_ad_recommendation'].message_type = _RECOMMENDATION_TEXTADRECOMMENDATION +_RECOMMENDATION.fields_by_name['target_cpa_opt_in_recommendation'].message_type = _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION +_RECOMMENDATION.fields_by_name['maximize_conversions_opt_in_recommendation'].message_type = _RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION +_RECOMMENDATION.fields_by_name['enhanced_cpc_opt_in_recommendation'].message_type = _RECOMMENDATION_ENHANCEDCPCOPTINRECOMMENDATION +_RECOMMENDATION.fields_by_name['search_partners_opt_in_recommendation'].message_type = _RECOMMENDATION_SEARCHPARTNERSOPTINRECOMMENDATION +_RECOMMENDATION.fields_by_name['maximize_clicks_opt_in_recommendation'].message_type = _RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION +_RECOMMENDATION.fields_by_name['optimize_ad_rotation_recommendation'].message_type = _RECOMMENDATION_OPTIMIZEADROTATIONRECOMMENDATION +_RECOMMENDATION.fields_by_name['callout_extension_recommendation'].message_type = _RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION +_RECOMMENDATION.fields_by_name['sitelink_extension_recommendation'].message_type = _RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION +_RECOMMENDATION.fields_by_name['call_extension_recommendation'].message_type = _RECOMMENDATION_CALLEXTENSIONRECOMMENDATION +_RECOMMENDATION.fields_by_name['keyword_match_type_recommendation'].message_type = _RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION +_RECOMMENDATION.fields_by_name['move_unused_budget_recommendation'].message_type = _RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION +_RECOMMENDATION.fields_by_name['target_roas_opt_in_recommendation'].message_type = _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['campaign_budget_recommendation']) +_RECOMMENDATION.fields_by_name['campaign_budget_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['keyword_recommendation']) +_RECOMMENDATION.fields_by_name['keyword_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['text_ad_recommendation']) +_RECOMMENDATION.fields_by_name['text_ad_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['target_cpa_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['target_cpa_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['maximize_conversions_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['maximize_conversions_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['enhanced_cpc_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['enhanced_cpc_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['search_partners_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['search_partners_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['maximize_clicks_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['maximize_clicks_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['optimize_ad_rotation_recommendation']) +_RECOMMENDATION.fields_by_name['optimize_ad_rotation_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['callout_extension_recommendation']) +_RECOMMENDATION.fields_by_name['callout_extension_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['sitelink_extension_recommendation']) +_RECOMMENDATION.fields_by_name['sitelink_extension_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['call_extension_recommendation']) +_RECOMMENDATION.fields_by_name['call_extension_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['keyword_match_type_recommendation']) +_RECOMMENDATION.fields_by_name['keyword_match_type_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['move_unused_budget_recommendation']) +_RECOMMENDATION.fields_by_name['move_unused_budget_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +_RECOMMENDATION.oneofs_by_name['recommendation'].fields.append( + _RECOMMENDATION.fields_by_name['target_roas_opt_in_recommendation']) +_RECOMMENDATION.fields_by_name['target_roas_opt_in_recommendation'].containing_oneof = _RECOMMENDATION.oneofs_by_name['recommendation'] +DESCRIPTOR.message_types_by_name['Recommendation'] = _RECOMMENDATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Recommendation = _reflection.GeneratedProtocolMessageType('Recommendation', (_message.Message,), { + + 'RecommendationImpact' : _reflection.GeneratedProtocolMessageType('RecommendationImpact', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_RECOMMENDATIONIMPACT, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The impact of making the change as described in the recommendation. + Some types of recommendations may not have impact information. + + Attributes: + base_metrics: + Output only. Base metrics at the time the recommendation was + generated. + potential_metrics: + Output only. Estimated metrics if the recommendation is + applied. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.RecommendationImpact) + }) + , + + 'RecommendationMetrics' : _reflection.GeneratedProtocolMessageType('RecommendationMetrics', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_RECOMMENDATIONMETRICS, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """Weekly account performance metrics. For some recommendation types, + these are averaged over the past 90-day period and hence can be + fractional. + + Attributes: + impressions: + Output only. Number of ad impressions. + clicks: + Output only. Number of ad clicks. + cost_micros: + Output only. Cost (in micros) for advertising, in the local + currency for the account. + conversions: + Output only. Number of conversions. + video_views: + Output only. Number of video views for a video ad campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.RecommendationMetrics) + }) + , + + 'CampaignBudgetRecommendation' : _reflection.GeneratedProtocolMessageType('CampaignBudgetRecommendation', (_message.Message,), { + + 'CampaignBudgetRecommendationOption' : _reflection.GeneratedProtocolMessageType('CampaignBudgetRecommendationOption', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The impact estimates for a given budget amount. + + Attributes: + budget_amount_micros: + Output only. The budget amount for this option. + impact: + Output only. The impact estimate if budget is changed to + amount specified in this option. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption) + }) + , + 'DESCRIPTOR' : _RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The budget recommendation for budget constrained campaigns. + + Attributes: + current_budget_amount_micros: + Output only. The current budget amount in micros. + recommended_budget_amount_micros: + Output only. The recommended budget amount in micros. + budget_options: + Output only. The budget amounts and associated impact + estimates for some values of possible budget amounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.CampaignBudgetRecommendation) + }) + , + + 'KeywordRecommendation' : _reflection.GeneratedProtocolMessageType('KeywordRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_KEYWORDRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The keyword recommendation. + + Attributes: + keyword: + Output only. The recommended keyword. + recommended_cpc_bid_micros: + Output only. The recommended CPC (cost-per-click) bid. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.KeywordRecommendation) + }) + , + + 'SitelinkExtensionRecommendation' : _reflection.GeneratedProtocolMessageType('SitelinkExtensionRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Sitelink extension recommendation. + + Attributes: + recommended_extensions: + Output only. Sitelink extensions recommended to be added. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.SitelinkExtensionRecommendation) + }) + , + + 'TextAdRecommendation' : _reflection.GeneratedProtocolMessageType('TextAdRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_TEXTADRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The text ad recommendation. + + Attributes: + ad: + Output only. Recommended ad. + creation_date: + Output only. Creation date of the recommended ad. YYYY-MM-DD + format, e.g., 2018-04-17. + auto_apply_date: + Output only. Date, if present, is the earliest when the + recommendation will be auto applied. YYYY-MM-DD format, e.g., + 2018-04-17. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.TextAdRecommendation) + }) + , + + 'TargetRoasOptInRecommendation' : _reflection.GeneratedProtocolMessageType('TargetRoasOptInRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_TARGETROASOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Target ROAS opt-in recommendation. + + Attributes: + recommended_target_roas: + Output only. The recommended target ROAS (revenue per unit of + spend). The value is between 0.01 and 1000.0, inclusive. + required_campaign_budget_amount_micros: + Output only. The minimum campaign budget, in local currency + for the account, required to achieve the target ROAS. Amount + is specified in micros, where one million is equivalent to one + currency unit. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.TargetRoasOptInRecommendation) + }) + , + + 'MaximizeClicksOptInRecommendation' : _reflection.GeneratedProtocolMessageType('MaximizeClicksOptInRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Maximize Clicks opt-in recommendation. + + Attributes: + recommended_budget_amount_micros: + Output only. The recommended new budget amount. Only set if + the current budget is too high. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.MaximizeClicksOptInRecommendation) + }) + , + + 'TargetCpaOptInRecommendation' : _reflection.GeneratedProtocolMessageType('TargetCpaOptInRecommendation', (_message.Message,), { + + 'TargetCpaOptInRecommendationOption' : _reflection.GeneratedProtocolMessageType('TargetCpaOptInRecommendationOption', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Target CPA opt-in option with impact estimate. + + Attributes: + goal: + Output only. The goal achieved by this option. + target_cpa_micros: + Output only. Average CPA target. + required_campaign_budget_amount_micros: + Output only. The minimum campaign budget, in local currency + for the account, required to achieve the target CPA. Amount is + specified in micros, where one million is equivalent to one + currency unit. + impact: + Output only. The impact estimate if this option is selected. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption) + }) + , + 'DESCRIPTOR' : _RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Target CPA opt-in recommendation. + + Attributes: + options: + Output only. The available goals and corresponding options for + Target CPA strategy. + recommended_target_cpa_micros: + Output only. The recommended average CPA target. See required + budget amount and impact of using this recommendation in + options list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.TargetCpaOptInRecommendation) + }) + , + + 'MaximizeConversionsOptInRecommendation' : _reflection.GeneratedProtocolMessageType('MaximizeConversionsOptInRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Maximize Conversions Opt-In recommendation. + + Attributes: + recommended_budget_amount_micros: + Output only. The recommended new budget amount. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.MaximizeConversionsOptInRecommendation) + }) + , + + 'EnhancedCpcOptInRecommendation' : _reflection.GeneratedProtocolMessageType('EnhancedCpcOptInRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_ENHANCEDCPCOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Enhanced Cost-Per-Click Opt-In recommendation.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.EnhancedCpcOptInRecommendation) + }) + , + + 'OptimizeAdRotationRecommendation' : _reflection.GeneratedProtocolMessageType('OptimizeAdRotationRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_OPTIMIZEADROTATIONRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Optimize Ad Rotation recommendation.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.OptimizeAdRotationRecommendation) + }) + , + + 'CallExtensionRecommendation' : _reflection.GeneratedProtocolMessageType('CallExtensionRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_CALLEXTENSIONRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Call extension recommendation. + + Attributes: + recommended_extensions: + Output only. Call extensions recommended to be added. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.CallExtensionRecommendation) + }) + , + + 'SearchPartnersOptInRecommendation' : _reflection.GeneratedProtocolMessageType('SearchPartnersOptInRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_SEARCHPARTNERSOPTINRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Search Partners Opt-In recommendation.""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.SearchPartnersOptInRecommendation) + }) + , + + 'CalloutExtensionRecommendation' : _reflection.GeneratedProtocolMessageType('CalloutExtensionRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The Callout extension recommendation. + + Attributes: + recommended_extensions: + Output only. Callout extensions recommended to be added. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.CalloutExtensionRecommendation) + }) + , + + 'KeywordMatchTypeRecommendation' : _reflection.GeneratedProtocolMessageType('KeywordMatchTypeRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The keyword match type recommendation. + + Attributes: + keyword: + Output only. The existing keyword where the match type should + be more broad. + recommended_match_type: + Output only. The recommended new match type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.KeywordMatchTypeRecommendation) + }) + , + + 'MoveUnusedBudgetRecommendation' : _reflection.GeneratedProtocolMessageType('MoveUnusedBudgetRecommendation', (_message.Message,), { + 'DESCRIPTOR' : _RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """The move unused budget recommendation. + + Attributes: + excess_campaign_budget: + Output only. The excess budget's resource\_name. + budget_recommendation: + Output only. The recommendation for the constrained budget to + increase. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation.MoveUnusedBudgetRecommendation) + }) + , + 'DESCRIPTOR' : _RECOMMENDATION, + '__module__' : 'google.ads.googleads_v5.proto.resources.recommendation_pb2' + , + '__doc__': """A recommendation. + + Attributes: + resource_name: + Immutable. The resource name of the recommendation. ``custome + rs/{customer_id}/recommendations/{recommendation_id}`` + type: + Output only. The type of recommendation. + impact: + Output only. The impact on account performance as a result of + applying the recommendation. + campaign_budget: + Output only. The budget targeted by this recommendation. This + will be set only when the recommendation affects a single + campaign budget. This field will be set for the following + recommendation types: CAMPAIGN\_BUDGET, + FORECASTING\_CAMPAIGN\_BUDGET, MOVE\_UNUSED\_BUDGET + campaign: + Output only. The campaign targeted by this recommendation. + This will be set only when the recommendation affects a single + campaign. This field will be set for the following + recommendation types: CALL\_EXTENSION, CALLOUT\_EXTENSION, + ENHANCED\_CPC\_OPT\_IN, KEYWORD, KEYWORD\_MATCH\_TYPE, + MAXIMIZE\_CLICKS\_OPT\_IN, MAXIMIZE\_CONVERSIONS\_OPT\_IN, + OPTIMIZE\_AD\_ROTATION, SEARCH\_PARTNERS\_OPT\_IN, + SITELINK\_EXTENSION, TARGET\_CPA\_OPT\_IN, + TARGET\_ROAS\_OPT\_IN, TEXT\_AD + ad_group: + Output only. The ad group targeted by this recommendation. + This will be set only when the recommendation affects a single + ad group. This field will be set for the following + recommendation types: KEYWORD, OPTIMIZE\_AD\_ROTATION, + TEXT\_AD + dismissed: + Output only. Whether the recommendation is dismissed or not. + recommendation: + The details of recommendation. + campaign_budget_recommendation: + Output only. The campaign budget recommendation. + keyword_recommendation: + Output only. The keyword recommendation. + text_ad_recommendation: + Output only. Add expanded text ad recommendation. + target_cpa_opt_in_recommendation: + Output only. The TargetCPA opt-in recommendation. + maximize_conversions_opt_in_recommendation: + Output only. The MaximizeConversions Opt-In recommendation. + enhanced_cpc_opt_in_recommendation: + Output only. The Enhanced Cost-Per-Click Opt-In + recommendation. + search_partners_opt_in_recommendation: + Output only. The Search Partners Opt-In recommendation. + maximize_clicks_opt_in_recommendation: + Output only. The MaximizeClicks Opt-In recommendation. + optimize_ad_rotation_recommendation: + Output only. The Optimize Ad Rotation recommendation. + callout_extension_recommendation: + Output only. The Callout extension recommendation. + sitelink_extension_recommendation: + Output only. The Sitelink extension recommendation. + call_extension_recommendation: + Output only. The Call extension recommendation. + keyword_match_type_recommendation: + Output only. The keyword match type recommendation. + move_unused_budget_recommendation: + Output only. The move unused budget recommendation. + target_roas_opt_in_recommendation: + Output only. The Target ROAS opt-in recommendation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Recommendation) + }) +_sym_db.RegisterMessage(Recommendation) +_sym_db.RegisterMessage(Recommendation.RecommendationImpact) +_sym_db.RegisterMessage(Recommendation.RecommendationMetrics) +_sym_db.RegisterMessage(Recommendation.CampaignBudgetRecommendation) +_sym_db.RegisterMessage(Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption) +_sym_db.RegisterMessage(Recommendation.KeywordRecommendation) +_sym_db.RegisterMessage(Recommendation.SitelinkExtensionRecommendation) +_sym_db.RegisterMessage(Recommendation.TextAdRecommendation) +_sym_db.RegisterMessage(Recommendation.TargetRoasOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.MaximizeClicksOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.TargetCpaOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption) +_sym_db.RegisterMessage(Recommendation.MaximizeConversionsOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.EnhancedCpcOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.OptimizeAdRotationRecommendation) +_sym_db.RegisterMessage(Recommendation.CallExtensionRecommendation) +_sym_db.RegisterMessage(Recommendation.SearchPartnersOptInRecommendation) +_sym_db.RegisterMessage(Recommendation.CalloutExtensionRecommendation) +_sym_db.RegisterMessage(Recommendation.KeywordMatchTypeRecommendation) +_sym_db.RegisterMessage(Recommendation.MoveUnusedBudgetRecommendation) + + +DESCRIPTOR._options = None +_RECOMMENDATION_RECOMMENDATIONIMPACT.fields_by_name['base_metrics']._options = None +_RECOMMENDATION_RECOMMENDATIONIMPACT.fields_by_name['potential_metrics']._options = None +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['impressions']._options = None +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['clicks']._options = None +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['cost_micros']._options = None +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['conversions']._options = None +_RECOMMENDATION_RECOMMENDATIONMETRICS.fields_by_name['video_views']._options = None +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION.fields_by_name['budget_amount_micros']._options = None +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATIONOPTION.fields_by_name['impact']._options = None +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['current_budget_amount_micros']._options = None +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['recommended_budget_amount_micros']._options = None +_RECOMMENDATION_CAMPAIGNBUDGETRECOMMENDATION.fields_by_name['budget_options']._options = None +_RECOMMENDATION_KEYWORDRECOMMENDATION.fields_by_name['keyword']._options = None +_RECOMMENDATION_KEYWORDRECOMMENDATION.fields_by_name['recommended_cpc_bid_micros']._options = None +_RECOMMENDATION_SITELINKEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions']._options = None +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['ad']._options = None +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['creation_date']._options = None +_RECOMMENDATION_TEXTADRECOMMENDATION.fields_by_name['auto_apply_date']._options = None +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['recommended_target_roas']._options = None +_RECOMMENDATION_TARGETROASOPTINRECOMMENDATION.fields_by_name['required_campaign_budget_amount_micros']._options = None +_RECOMMENDATION_MAXIMIZECLICKSOPTINRECOMMENDATION.fields_by_name['recommended_budget_amount_micros']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['goal']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['target_cpa_micros']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['required_campaign_budget_amount_micros']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION_TARGETCPAOPTINRECOMMENDATIONOPTION.fields_by_name['impact']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION.fields_by_name['options']._options = None +_RECOMMENDATION_TARGETCPAOPTINRECOMMENDATION.fields_by_name['recommended_target_cpa_micros']._options = None +_RECOMMENDATION_MAXIMIZECONVERSIONSOPTINRECOMMENDATION.fields_by_name['recommended_budget_amount_micros']._options = None +_RECOMMENDATION_CALLEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions']._options = None +_RECOMMENDATION_CALLOUTEXTENSIONRECOMMENDATION.fields_by_name['recommended_extensions']._options = None +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION.fields_by_name['keyword']._options = None +_RECOMMENDATION_KEYWORDMATCHTYPERECOMMENDATION.fields_by_name['recommended_match_type']._options = None +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION.fields_by_name['excess_campaign_budget']._options = None +_RECOMMENDATION_MOVEUNUSEDBUDGETRECOMMENDATION.fields_by_name['budget_recommendation']._options = None +_RECOMMENDATION.fields_by_name['resource_name']._options = None +_RECOMMENDATION.fields_by_name['type']._options = None +_RECOMMENDATION.fields_by_name['impact']._options = None +_RECOMMENDATION.fields_by_name['campaign_budget']._options = None +_RECOMMENDATION.fields_by_name['campaign']._options = None +_RECOMMENDATION.fields_by_name['ad_group']._options = None +_RECOMMENDATION.fields_by_name['dismissed']._options = None +_RECOMMENDATION.fields_by_name['campaign_budget_recommendation']._options = None +_RECOMMENDATION.fields_by_name['keyword_recommendation']._options = None +_RECOMMENDATION.fields_by_name['text_ad_recommendation']._options = None +_RECOMMENDATION.fields_by_name['target_cpa_opt_in_recommendation']._options = None +_RECOMMENDATION.fields_by_name['maximize_conversions_opt_in_recommendation']._options = None +_RECOMMENDATION.fields_by_name['enhanced_cpc_opt_in_recommendation']._options = None +_RECOMMENDATION.fields_by_name['search_partners_opt_in_recommendation']._options = None +_RECOMMENDATION.fields_by_name['maximize_clicks_opt_in_recommendation']._options = None +_RECOMMENDATION.fields_by_name['optimize_ad_rotation_recommendation']._options = None +_RECOMMENDATION.fields_by_name['callout_extension_recommendation']._options = None +_RECOMMENDATION.fields_by_name['sitelink_extension_recommendation']._options = None +_RECOMMENDATION.fields_by_name['call_extension_recommendation']._options = None +_RECOMMENDATION.fields_by_name['keyword_match_type_recommendation']._options = None +_RECOMMENDATION.fields_by_name['move_unused_budget_recommendation']._options = None +_RECOMMENDATION.fields_by_name['target_roas_opt_in_recommendation']._options = None +_RECOMMENDATION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/recommendation_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/recommendation_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/recommendation_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/remarketing_action_pb2.py b/google/ads/google_ads/v5/proto/resources/remarketing_action_pb2.py new file mode 100644 index 000000000..54e782c80 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/remarketing_action_pb2.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/remarketing_action.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import tag_snippet_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_tag__snippet__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/remarketing_action.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\026RemarketingActionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/resources/remarketing_action.proto\x12!google.ads.googleads.v5.resources\x1a\x36google/ads/googleads_v5/proto/common/tag_snippet.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xcd\x02\n\x11RemarketingAction\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x05\xfa\x41,\n*googleads.googleapis.com/RemarketingAction\x12\x14\n\x02id\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x45\n\x0ctag_snippets\x18\x04 \x03(\x0b\x32*.google.ads.googleads.v5.common.TagSnippetB\x03\xe0\x41\x03:m\xea\x41j\n*googleads.googleapis.com/RemarketingAction\x12google/ads/googleads_v5/proto/resources/search_term_view.proto\x12!google.ads.googleads.v5.resources\x1a\x46google/ads/googleads_v5/proto/enums/search_term_targeting_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xbe\x03\n\x0eSearchTermView\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'googleads.googleapis.com/SearchTermView\x12\x36\n\x0bsearch_term\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12X\n\x08\x61\x64_group\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB(\xe0\x41\x03\xfa\x41\"\n googleads.googleapis.com/AdGroup\x12k\n\x06status\x18\x04 \x01(\x0e\x32V.google.ads.googleads.v5.enums.SearchTermTargetingStatusEnum.SearchTermTargetingStatusB\x03\xe0\x41\x03:e\xea\x41\x62\n\'googleads.googleapis.com/SearchTermView\x12\x37\x63ustomers/{customer}/searchTermViews/{search_term_view}B\x80\x02\n%com.google.ads.googleads.v5.resourcesB\x13SearchTermViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__term__targeting__status__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SEARCHTERMVIEW = _descriptor.Descriptor( + name='SearchTermView', + full_name='google.ads.googleads.v5.resources.SearchTermView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.SearchTermView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A)\n\'googleads.googleapis.com/SearchTermView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_term', full_name='google.ads.googleads.v5.resources.SearchTermView.search_term', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.resources.SearchTermView.ad_group', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A\"\n googleads.googleapis.com/AdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.SearchTermView.status', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n\'googleads.googleapis.com/SearchTermView\0227customers/{customer}/searchTermViews/{search_term_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=296, + serialized_end=742, +) + +_SEARCHTERMVIEW.fields_by_name['search_term'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SEARCHTERMVIEW.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SEARCHTERMVIEW.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_search__term__targeting__status__pb2._SEARCHTERMTARGETINGSTATUSENUM_SEARCHTERMTARGETINGSTATUS +DESCRIPTOR.message_types_by_name['SearchTermView'] = _SEARCHTERMVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SearchTermView = _reflection.GeneratedProtocolMessageType('SearchTermView', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHTERMVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.search_term_view_pb2' + , + '__doc__': """A search term view with metrics aggregated by search term at the ad + group level. + + Attributes: + resource_name: + Output only. The resource name of the search term view. Search + term view resource names have the form: ``customers/{customer + _id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL- + base64_search_term}`` + search_term: + Output only. The search term. + ad_group: + Output only. The ad group the search term served in. + status: + Output only. Indicates whether the search term is currently + one of your targeted or excluded keywords. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.SearchTermView) + }) +_sym_db.RegisterMessage(SearchTermView) + + +DESCRIPTOR._options = None +_SEARCHTERMVIEW.fields_by_name['resource_name']._options = None +_SEARCHTERMVIEW.fields_by_name['search_term']._options = None +_SEARCHTERMVIEW.fields_by_name['ad_group']._options = None +_SEARCHTERMVIEW.fields_by_name['status']._options = None +_SEARCHTERMVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/search_term_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/search_term_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/search_term_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2.py b/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2.py new file mode 100644 index 000000000..1a27a21c8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/shared_criterion.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.enums import criterion_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/shared_criterion.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\024SharedCriterionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/resources/shared_criterion.proto\x12!google.ads.googleads.v5.resources\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a\x38google/ads/googleads_v5/proto/enums/criterion_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\x8d\x07\n\x0fSharedCriterion\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x05\xfa\x41*\n(googleads.googleapis.com/SharedCriterion\x12\x43\n\nshared_set\x18\n \x01(\tB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/SharedSetH\x01\x88\x01\x01\x12\x1e\n\x0c\x63riterion_id\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12Q\n\x04type\x18\x04 \x01(\x0e\x32>.google.ads.googleads.v5.enums.CriterionTypeEnum.CriterionTypeB\x03\xe0\x41\x03\x12\x43\n\x07keyword\x18\x03 \x01(\x0b\x32+.google.ads.googleads.v5.common.KeywordInfoB\x03\xe0\x41\x05H\x00\x12N\n\ryoutube_video\x18\x05 \x01(\x0b\x32\x30.google.ads.googleads.v5.common.YouTubeVideoInfoB\x03\xe0\x41\x05H\x00\x12R\n\x0fyoutube_channel\x18\x06 \x01(\x0b\x32\x32.google.ads.googleads.v5.common.YouTubeChannelInfoB\x03\xe0\x41\x05H\x00\x12G\n\tplacement\x18\x07 \x01(\x0b\x32-.google.ads.googleads.v5.common.PlacementInfoB\x03\xe0\x41\x05H\x00\x12Y\n\x13mobile_app_category\x18\x08 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileAppCategoryInfoB\x03\xe0\x41\x05H\x00\x12X\n\x12mobile_application\x18\t \x01(\x0b\x32\x35.google.ads.googleads.v5.common.MobileApplicationInfoB\x03\xe0\x41\x05H\x00:e\xea\x41\x62\n(googleads.googleapis.com/SharedCriterion\x12\x36\x63ustomers/{customer}/sharedCriteria/{shared_criterion}B\x0b\n\tcriterionB\r\n\x0b_shared_setB\x0f\n\r_criterion_idB\x81\x02\n%com.google.ads.googleads.v5.resourcesB\x14SharedCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SHAREDCRITERION = _descriptor.Descriptor( + name='SharedCriterion', + full_name='google.ads.googleads.v5.resources.SharedCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.SharedCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A*\n(googleads.googleapis.com/SharedCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set', full_name='google.ads.googleads.v5.resources.SharedCriterion.shared_set', index=1, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/SharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v5.resources.SharedCriterion.criterion_id', index=2, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.SharedCriterion.type', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.resources.SharedCriterion.keyword', index=4, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_video', full_name='google.ads.googleads.v5.resources.SharedCriterion.youtube_video', index=5, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='youtube_channel', full_name='google.ads.googleads.v5.resources.SharedCriterion.youtube_channel', index=6, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='placement', full_name='google.ads.googleads.v5.resources.SharedCriterion.placement', index=7, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_category', full_name='google.ads.googleads.v5.resources.SharedCriterion.mobile_app_category', index=8, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_application', full_name='google.ads.googleads.v5.resources.SharedCriterion.mobile_application', index=9, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ab\n(googleads.googleapis.com/SharedCriterion\0226customers/{customer}/sharedCriteria/{shared_criterion}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v5.resources.SharedCriterion.criterion', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_shared_set', full_name='google.ads.googleads.v5.resources.SharedCriterion._shared_set', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_criterion_id', full_name='google.ads.googleads.v5.resources.SharedCriterion._criterion_id', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=303, + serialized_end=1212, +) + +_SHAREDCRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_SHAREDCRITERION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_SHAREDCRITERION.fields_by_name['youtube_video'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBEVIDEOINFO +_SHAREDCRITERION.fields_by_name['youtube_channel'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._YOUTUBECHANNELINFO +_SHAREDCRITERION.fields_by_name['placement'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._PLACEMENTINFO +_SHAREDCRITERION.fields_by_name['mobile_app_category'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPCATEGORYINFO +_SHAREDCRITERION.fields_by_name['mobile_application'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._MOBILEAPPLICATIONINFO +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['keyword']) +_SHAREDCRITERION.fields_by_name['keyword'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['youtube_video']) +_SHAREDCRITERION.fields_by_name['youtube_video'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['youtube_channel']) +_SHAREDCRITERION.fields_by_name['youtube_channel'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['placement']) +_SHAREDCRITERION.fields_by_name['placement'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['mobile_app_category']) +_SHAREDCRITERION.fields_by_name['mobile_app_category'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['criterion'].fields.append( + _SHAREDCRITERION.fields_by_name['mobile_application']) +_SHAREDCRITERION.fields_by_name['mobile_application'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['criterion'] +_SHAREDCRITERION.oneofs_by_name['_shared_set'].fields.append( + _SHAREDCRITERION.fields_by_name['shared_set']) +_SHAREDCRITERION.fields_by_name['shared_set'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['_shared_set'] +_SHAREDCRITERION.oneofs_by_name['_criterion_id'].fields.append( + _SHAREDCRITERION.fields_by_name['criterion_id']) +_SHAREDCRITERION.fields_by_name['criterion_id'].containing_oneof = _SHAREDCRITERION.oneofs_by_name['_criterion_id'] +DESCRIPTOR.message_types_by_name['SharedCriterion'] = _SHAREDCRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SharedCriterion = _reflection.GeneratedProtocolMessageType('SharedCriterion', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDCRITERION, + '__module__' : 'google.ads.googleads_v5.proto.resources.shared_criterion_pb2' + , + '__doc__': """A criterion belonging to a shared set. + + Attributes: + resource_name: + Immutable. The resource name of the shared criterion. Shared + set resource names have the form: ``customers/{customer_id}/s + haredCriteria/{shared_set_id}~{criterion_id}`` + shared_set: + Immutable. The shared set to which the shared criterion + belongs. + criterion_id: + Output only. The ID of the criterion. This field is ignored + for mutates. + type: + Output only. The type of the criterion. + criterion: + The criterion. Exactly one must be set. + keyword: + Immutable. Keyword. + youtube_video: + Immutable. YouTube Video. + youtube_channel: + Immutable. YouTube Channel. + placement: + Immutable. Placement. + mobile_app_category: + Immutable. Mobile App Category. + mobile_application: + Immutable. Mobile application. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.SharedCriterion) + }) +_sym_db.RegisterMessage(SharedCriterion) + + +DESCRIPTOR._options = None +_SHAREDCRITERION.fields_by_name['resource_name']._options = None +_SHAREDCRITERION.fields_by_name['shared_set']._options = None +_SHAREDCRITERION.fields_by_name['criterion_id']._options = None +_SHAREDCRITERION.fields_by_name['type']._options = None +_SHAREDCRITERION.fields_by_name['keyword']._options = None +_SHAREDCRITERION.fields_by_name['youtube_video']._options = None +_SHAREDCRITERION.fields_by_name['youtube_channel']._options = None +_SHAREDCRITERION.fields_by_name['placement']._options = None +_SHAREDCRITERION.fields_by_name['mobile_app_category']._options = None +_SHAREDCRITERION.fields_by_name['mobile_application']._options = None +_SHAREDCRITERION._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shared_criterion_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/shared_set_pb2.py b/google/ads/google_ads/v5/proto/resources/shared_set_pb2.py new file mode 100644 index 000000000..9240e5d69 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shared_set_pb2.py @@ -0,0 +1,188 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/shared_set.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import shared_set_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__status__pb2 +from google.ads.google_ads.v5.proto.enums import shared_set_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__type__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/shared_set.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\016SharedSetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n8google/ads/googleads_v5/proto/resources/shared_set.proto\x12!google.ads.googleads.v5.resources\x1a;google/ads/googleads_v5/proto/enums/shared_set_status.proto\x1a\x39google/ads/googleads_v5/proto/enums/shared_set_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xf2\x03\n\tSharedSet\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x05\xfa\x41$\n\"googleads.googleapis.com/SharedSet\x12\x14\n\x02id\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12Q\n\x04type\x18\x03 \x01(\x0e\x32>.google.ads.googleads.v5.enums.SharedSetTypeEnum.SharedSetTypeB\x03\xe0\x41\x05\x12\x11\n\x04name\x18\t \x01(\tH\x01\x88\x01\x01\x12W\n\x06status\x18\x05 \x01(\x0e\x32\x42.google.ads.googleads.v5.enums.SharedSetStatusEnum.SharedSetStatusB\x03\xe0\x41\x03\x12\x1e\n\x0cmember_count\x18\n \x01(\x03\x42\x03\xe0\x41\x03H\x02\x88\x01\x01\x12!\n\x0freference_count\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03H\x03\x88\x01\x01:U\xea\x41R\n\"googleads.googleapis.com/SharedSet\x12,customers/{customer}/sharedSets/{shared_set}B\x05\n\x03_idB\x07\n\x05_nameB\x0f\n\r_member_countB\x12\n\x10_reference_countB\xfb\x01\n%com.google.ads.googleads.v5.resourcesB\x0eSharedSetProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SHAREDSET = _descriptor.Descriptor( + name='SharedSet', + full_name='google.ads.googleads.v5.resources.SharedSet', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.SharedSet.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A$\n\"googleads.googleapis.com/SharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.SharedSet.id', index=1, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.SharedSet.type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.SharedSet.name', index=3, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.resources.SharedSet.status', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='member_count', full_name='google.ads.googleads.v5.resources.SharedSet.member_count', index=5, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reference_count', full_name='google.ads.googleads.v5.resources.SharedSet.reference_count', index=6, + number=11, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AR\n\"googleads.googleapis.com/SharedSet\022,customers/{customer}/sharedSets/{shared_set}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_id', full_name='google.ads.googleads.v5.resources.SharedSet._id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_name', full_name='google.ads.googleads.v5.resources.SharedSet._name', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_member_count', full_name='google.ads.googleads.v5.resources.SharedSet._member_count', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_reference_count', full_name='google.ads.googleads.v5.resources.SharedSet._reference_count', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=306, + serialized_end=804, +) + +_SHAREDSET.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__type__pb2._SHAREDSETTYPEENUM_SHAREDSETTYPE +_SHAREDSET.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_shared__set__status__pb2._SHAREDSETSTATUSENUM_SHAREDSETSTATUS +_SHAREDSET.oneofs_by_name['_id'].fields.append( + _SHAREDSET.fields_by_name['id']) +_SHAREDSET.fields_by_name['id'].containing_oneof = _SHAREDSET.oneofs_by_name['_id'] +_SHAREDSET.oneofs_by_name['_name'].fields.append( + _SHAREDSET.fields_by_name['name']) +_SHAREDSET.fields_by_name['name'].containing_oneof = _SHAREDSET.oneofs_by_name['_name'] +_SHAREDSET.oneofs_by_name['_member_count'].fields.append( + _SHAREDSET.fields_by_name['member_count']) +_SHAREDSET.fields_by_name['member_count'].containing_oneof = _SHAREDSET.oneofs_by_name['_member_count'] +_SHAREDSET.oneofs_by_name['_reference_count'].fields.append( + _SHAREDSET.fields_by_name['reference_count']) +_SHAREDSET.fields_by_name['reference_count'].containing_oneof = _SHAREDSET.oneofs_by_name['_reference_count'] +DESCRIPTOR.message_types_by_name['SharedSet'] = _SHAREDSET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SharedSet = _reflection.GeneratedProtocolMessageType('SharedSet', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDSET, + '__module__' : 'google.ads.googleads_v5.proto.resources.shared_set_pb2' + , + '__doc__': """SharedSets are used for sharing criterion exclusions across multiple + campaigns. + + Attributes: + resource_name: + Immutable. The resource name of the shared set. Shared set + resource names have the form: + ``customers/{customer_id}/sharedSets/{shared_set_id}`` + id: + Output only. The ID of this shared set. Read only. + type: + Immutable. The type of this shared set: each shared set holds + only a single kind of resource. Required. Immutable. + name: + The name of this shared set. Required. Shared Sets must have + names that are unique among active shared sets of the same + type. The length of this string should be between 1 and 255 + UTF-8 bytes, inclusive. + status: + Output only. The status of this shared set. Read only. + member_count: + Output only. The number of shared criteria within this shared + set. Read only. + reference_count: + Output only. The number of campaigns associated with this + shared set. Read only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.SharedSet) + }) +_sym_db.RegisterMessage(SharedSet) + + +DESCRIPTOR._options = None +_SHAREDSET.fields_by_name['resource_name']._options = None +_SHAREDSET.fields_by_name['id']._options = None +_SHAREDSET.fields_by_name['type']._options = None +_SHAREDSET.fields_by_name['status']._options = None +_SHAREDSET.fields_by_name['member_count']._options = None +_SHAREDSET.fields_by_name['reference_count']._options = None +_SHAREDSET._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/shared_set_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/shared_set_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shared_set_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2.py b/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2.py new file mode 100644 index 000000000..dcf587faa --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/shopping_performance_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/shopping_performance_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\034ShoppingPerformanceViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/resources/shopping_performance_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/api/annotations.proto\"\xcf\x01\n\x17ShoppingPerformanceView\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x03\xfa\x41\x32\n0googleads.googleapis.com/ShoppingPerformanceView:c\xea\x41`\n0googleads.googleapis.com/ShoppingPerformanceView\x12,customers/{customer}/shoppingPerformanceViewB\x89\x02\n%com.google.ads.googleads.v5.resourcesB\x1cShoppingPerformanceViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_SHOPPINGPERFORMANCEVIEW = _descriptor.Descriptor( + name='ShoppingPerformanceView', + full_name='google.ads.googleads.v5.resources.ShoppingPerformanceView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ShoppingPerformanceView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A2\n0googleads.googleapis.com/ShoppingPerformanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A`\n0googleads.googleapis.com/ShoppingPerformanceView\022,customers/{customer}/shoppingPerformanceView', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=201, + serialized_end=408, +) + +DESCRIPTOR.message_types_by_name['ShoppingPerformanceView'] = _SHOPPINGPERFORMANCEVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ShoppingPerformanceView = _reflection.GeneratedProtocolMessageType('ShoppingPerformanceView', (_message.Message,), { + 'DESCRIPTOR' : _SHOPPINGPERFORMANCEVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.shopping_performance_view_pb2' + , + '__doc__': """Shopping performance view. Provides Shopping campaign statistics + aggregated at several product dimension levels. Product dimension + values from Merchant Center such as brand, category, custom + attributes, product condition and product type will reflect the state + of each dimension as of the date and time when the corresponding event + was recorded. + + Attributes: + resource_name: + Output only. The resource name of the Shopping performance + view. Shopping performance view resource names have the form: + ``customers/{customer_id}/shoppingPerformanceView`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ShoppingPerformanceView) + }) +_sym_db.RegisterMessage(ShoppingPerformanceView) + + +DESCRIPTOR._options = None +_SHOPPINGPERFORMANCEVIEW.fields_by_name['resource_name']._options = None +_SHOPPINGPERFORMANCEVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/shopping_performance_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2.py b/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2.py new file mode 100644 index 000000000..bbc9b3865 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/third_party_app_analytics_link.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/third_party_app_analytics_link.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\037ThirdPartyAppAnalyticsLinkProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nLgoogle/ads/googleads_v5/proto/resources/third_party_app_analytics_link.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xbd\x02\n\x1aThirdPartyAppAnalyticsLink\x12R\n\rresource_name\x18\x01 \x01(\tB;\xe0\x41\x05\xfa\x41\x35\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink\x12<\n\x11shareable_link_id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:\x8c\x01\xea\x41\x88\x01\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink\x12Qcustomers/{customer}/thirdPartyAppAnalyticsLinks/{third_party_app_analytics_link}B\x8c\x02\n%com.google.ads.googleads.v5.resourcesB\x1fThirdPartyAppAnalyticsLinkProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_THIRDPARTYAPPANALYTICSLINK = _descriptor.Descriptor( + name='ThirdPartyAppAnalyticsLink', + full_name='google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A5\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shareable_link_id', full_name='google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink.shareable_link_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352A\210\001\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink\022Qcustomers/{customer}/thirdPartyAppAnalyticsLinks/{third_party_app_analytics_link}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=238, + serialized_end=555, +) + +_THIRDPARTYAPPANALYTICSLINK.fields_by_name['shareable_link_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['ThirdPartyAppAnalyticsLink'] = _THIRDPARTYAPPANALYTICSLINK +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ThirdPartyAppAnalyticsLink = _reflection.GeneratedProtocolMessageType('ThirdPartyAppAnalyticsLink', (_message.Message,), { + 'DESCRIPTOR' : _THIRDPARTYAPPANALYTICSLINK, + '__module__' : 'google.ads.googleads_v5.proto.resources.third_party_app_analytics_link_pb2' + , + '__doc__': """A data sharing connection, allowing the import of third party app + analytics into a Google Ads Customer. + + Attributes: + resource_name: + Immutable. The resource name of the third party app analytics + link. Third party app analytics link resource names have the + form: ``customers/{customer_id}/thirdPartyAppAnalyticsLinks/{ + account_link_id}`` + shareable_link_id: + Output only. The shareable link ID that should be provided to + the third party when setting up app analytics. This is able to + be regenerated using regenerate method in the + ThirdPartyAppAnalyticsLinkService. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink) + }) +_sym_db.RegisterMessage(ThirdPartyAppAnalyticsLink) + + +DESCRIPTOR._options = None +_THIRDPARTYAPPANALYTICSLINK.fields_by_name['resource_name']._options = None +_THIRDPARTYAPPANALYTICSLINK.fields_by_name['shareable_link_id']._options = None +_THIRDPARTYAPPANALYTICSLINK._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/third_party_app_analytics_link_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/topic_constant_pb2.py b/google/ads/google_ads/v5/proto/resources/topic_constant_pb2.py new file mode 100644 index 000000000..f803abbd7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/topic_constant_pb2.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/topic_constant.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/topic_constant.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\022TopicConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\ngoogle/ads/googleads_v5/proto/enums/user_list_size_range.proto\x1a\x38google/ads/googleads_v5/proto/enums/user_list_type.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xc0\x0e\n\x08UserList\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x05\xfa\x41#\n!googleads.googleapis.com/UserList\x12,\n\x02id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x32\n\tread_only\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12o\n\x11membership_status\x18\x06 \x01(\x0e\x32T.google.ads.googleads.v5.enums.UserListMembershipStatusEnum.UserListMembershipStatus\x12\x36\n\x10integration_code\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x39\n\x14membership_life_span\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x10size_for_display\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12k\n\x16size_range_for_display\x18\n \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.UserListSizeRangeEnum.UserListSizeRangeB\x03\xe0\x41\x03\x12\x39\n\x0fsize_for_search\x18\x0b \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12j\n\x15size_range_for_search\x18\x0c \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.UserListSizeRangeEnum.UserListSizeRangeB\x03\xe0\x41\x03\x12O\n\x04type\x18\r \x01(\x0e\x32<.google.ads.googleads.v5.enums.UserListTypeEnum.UserListTypeB\x03\xe0\x41\x03\x12\x66\n\x0e\x63losing_reason\x18\x0e \x01(\x0e\x32N.google.ads.googleads.v5.enums.UserListClosingReasonEnum.UserListClosingReason\x12X\n\raccess_reason\x18\x0f \x01(\x0e\x32<.google.ads.googleads.v5.enums.AccessReasonEnum.AccessReasonB\x03\xe0\x41\x03\x12n\n\x18\x61\x63\x63ount_user_list_status\x18\x10 \x01(\x0e\x32L.google.ads.googleads.v5.enums.UserListAccessStatusEnum.UserListAccessStatus\x12\x37\n\x13\x65ligible_for_search\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12=\n\x14\x65ligible_for_display\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03\x12S\n\x13\x63rm_based_user_list\x18\x13 \x01(\x0b\x32\x34.google.ads.googleads.v5.common.CrmBasedUserListInfoH\x00\x12U\n\x11similar_user_list\x18\x14 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.SimilarUserListInfoB\x03\xe0\x41\x03H\x00\x12U\n\x14rule_based_user_list\x18\x15 \x01(\x0b\x32\x35.google.ads.googleads.v5.common.RuleBasedUserListInfoH\x00\x12P\n\x11logical_user_list\x18\x16 \x01(\x0b\x32\x33.google.ads.googleads.v5.common.LogicalUserListInfoH\x00\x12L\n\x0f\x62\x61sic_user_list\x18\x17 \x01(\x0b\x32\x31.google.ads.googleads.v5.common.BasicUserListInfoH\x00:R\xea\x41O\n!googleads.googleapis.com/UserList\x12*customers/{customer}/userLists/{user_list}B\x0b\n\tuser_listB\xfa\x01\n%com.google.ads.googleads.v5.resourcesB\rUserListProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_access__reason__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__access__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__closing__reason__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__membership__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__size__range__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__type__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_USERLIST = _descriptor.Descriptor( + name='UserList', + full_name='google.ads.googleads.v5.resources.UserList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.UserList.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\005\372A#\n!googleads.googleapis.com/UserList', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.UserList.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='read_only', full_name='google.ads.googleads.v5.resources.UserList.read_only', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.resources.UserList.name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v5.resources.UserList.description', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='membership_status', full_name='google.ads.googleads.v5.resources.UserList.membership_status', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='integration_code', full_name='google.ads.googleads.v5.resources.UserList.integration_code', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='membership_life_span', full_name='google.ads.googleads.v5.resources.UserList.membership_life_span', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size_for_display', full_name='google.ads.googleads.v5.resources.UserList.size_for_display', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size_range_for_display', full_name='google.ads.googleads.v5.resources.UserList.size_range_for_display', index=9, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size_for_search', full_name='google.ads.googleads.v5.resources.UserList.size_for_search', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size_range_for_search', full_name='google.ads.googleads.v5.resources.UserList.size_range_for_search', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v5.resources.UserList.type', index=12, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='closing_reason', full_name='google.ads.googleads.v5.resources.UserList.closing_reason', index=13, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='access_reason', full_name='google.ads.googleads.v5.resources.UserList.access_reason', index=14, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_user_list_status', full_name='google.ads.googleads.v5.resources.UserList.account_user_list_status', index=15, + number=16, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='eligible_for_search', full_name='google.ads.googleads.v5.resources.UserList.eligible_for_search', index=16, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='eligible_for_display', full_name='google.ads.googleads.v5.resources.UserList.eligible_for_display', index=17, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='crm_based_user_list', full_name='google.ads.googleads.v5.resources.UserList.crm_based_user_list', index=18, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='similar_user_list', full_name='google.ads.googleads.v5.resources.UserList.similar_user_list', index=19, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='rule_based_user_list', full_name='google.ads.googleads.v5.resources.UserList.rule_based_user_list', index=20, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='logical_user_list', full_name='google.ads.googleads.v5.resources.UserList.logical_user_list', index=21, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='basic_user_list', full_name='google.ads.googleads.v5.resources.UserList.basic_user_list', index=22, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AO\n!googleads.googleapis.com/UserList\022*customers/{customer}/userLists/{user_list}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='user_list', full_name='google.ads.googleads.v5.resources.UserList.user_list', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=657, + serialized_end=2513, +) + +_USERLIST.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLIST.fields_by_name['read_only'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_USERLIST.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLIST.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLIST.fields_by_name['membership_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__membership__status__pb2._USERLISTMEMBERSHIPSTATUSENUM_USERLISTMEMBERSHIPSTATUS +_USERLIST.fields_by_name['integration_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_USERLIST.fields_by_name['membership_life_span'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLIST.fields_by_name['size_for_display'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLIST.fields_by_name['size_range_for_display'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__size__range__pb2._USERLISTSIZERANGEENUM_USERLISTSIZERANGE +_USERLIST.fields_by_name['size_for_search'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLIST.fields_by_name['size_range_for_search'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__size__range__pb2._USERLISTSIZERANGEENUM_USERLISTSIZERANGE +_USERLIST.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__type__pb2._USERLISTTYPEENUM_USERLISTTYPE +_USERLIST.fields_by_name['closing_reason'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__closing__reason__pb2._USERLISTCLOSINGREASONENUM_USERLISTCLOSINGREASON +_USERLIST.fields_by_name['access_reason'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_access__reason__pb2._ACCESSREASONENUM_ACCESSREASON +_USERLIST.fields_by_name['account_user_list_status'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_user__list__access__status__pb2._USERLISTACCESSSTATUSENUM_USERLISTACCESSSTATUS +_USERLIST.fields_by_name['eligible_for_search'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_USERLIST.fields_by_name['eligible_for_display'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_USERLIST.fields_by_name['crm_based_user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2._CRMBASEDUSERLISTINFO +_USERLIST.fields_by_name['similar_user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2._SIMILARUSERLISTINFO +_USERLIST.fields_by_name['rule_based_user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2._RULEBASEDUSERLISTINFO +_USERLIST.fields_by_name['logical_user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2._LOGICALUSERLISTINFO +_USERLIST.fields_by_name['basic_user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_user__lists__pb2._BASICUSERLISTINFO +_USERLIST.oneofs_by_name['user_list'].fields.append( + _USERLIST.fields_by_name['crm_based_user_list']) +_USERLIST.fields_by_name['crm_based_user_list'].containing_oneof = _USERLIST.oneofs_by_name['user_list'] +_USERLIST.oneofs_by_name['user_list'].fields.append( + _USERLIST.fields_by_name['similar_user_list']) +_USERLIST.fields_by_name['similar_user_list'].containing_oneof = _USERLIST.oneofs_by_name['user_list'] +_USERLIST.oneofs_by_name['user_list'].fields.append( + _USERLIST.fields_by_name['rule_based_user_list']) +_USERLIST.fields_by_name['rule_based_user_list'].containing_oneof = _USERLIST.oneofs_by_name['user_list'] +_USERLIST.oneofs_by_name['user_list'].fields.append( + _USERLIST.fields_by_name['logical_user_list']) +_USERLIST.fields_by_name['logical_user_list'].containing_oneof = _USERLIST.oneofs_by_name['user_list'] +_USERLIST.oneofs_by_name['user_list'].fields.append( + _USERLIST.fields_by_name['basic_user_list']) +_USERLIST.fields_by_name['basic_user_list'].containing_oneof = _USERLIST.oneofs_by_name['user_list'] +DESCRIPTOR.message_types_by_name['UserList'] = _USERLIST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserList = _reflection.GeneratedProtocolMessageType('UserList', (_message.Message,), { + 'DESCRIPTOR' : _USERLIST, + '__module__' : 'google.ads.googleads_v5.proto.resources.user_list_pb2' + , + '__doc__': """A user list. This is a list of users a customer may target. + + Attributes: + resource_name: + Immutable. The resource name of the user list. User list + resource names have the form: + ``customers/{customer_id}/userLists/{user_list_id}`` + id: + Output only. Id of the user list. + read_only: + Output only. A flag that indicates if a user may edit a list. + Depends on the list ownership and list type. For example, + external remarketing user lists are not editable. This field + is read-only. + name: + Name of this user list. Depending on its access\_reason, the + user list name may not be unique (e.g. if + access\_reason=SHARED) + description: + Description of this user list. + membership_status: + Membership status of this user list. Indicates whether a user + list is open or active. Only open user lists can accumulate + more users and can be targeted to. + integration_code: + An ID from external system. It is used by user list sellers to + correlate IDs on their systems. + membership_life_span: + Number of days a user's cookie stays on your list since its + most recent addition to the list. This field must be between 0 + and 540 inclusive. However, for CRM based userlists, this + field can be set to 10000 which means no expiration. It'll be + ignored for logical\_user\_list. + size_for_display: + Output only. Estimated number of users in this user list, on + the Google Display Network. This value is null if the number + of users has not yet been determined. This field is read- + only. + size_range_for_display: + Output only. Size range in terms of number of users of the + UserList, on the Google Display Network. This field is read- + only. + size_for_search: + Output only. Estimated number of users in this user list in + the google.com domain. These are the users available for + targeting in Search campaigns. This value is null if the + number of users has not yet been determined. This field is + read-only. + size_range_for_search: + Output only. Size range in terms of number of users of the + UserList, for Search ads. This field is read-only. + type: + Output only. Type of this list. This field is read-only. + closing_reason: + Indicating the reason why this user list membership status is + closed. It is only populated on lists that were automatically + closed due to inactivity, and will be cleared once the list + membership status becomes open. + access_reason: + Output only. Indicates the reason this account has been + granted access to the list. The reason can be SHARED, OWNED, + LICENSED or SUBSCRIBED. This field is read-only. + account_user_list_status: + Indicates if this share is still enabled. When a UserList is + shared with the user this field is set to ENABLED. Later the + userList owner can decide to revoke the share and make it + DISABLED. The default value of this field is set to ENABLED. + eligible_for_search: + Indicates if this user list is eligible for Google Search + Network. + eligible_for_display: + Output only. Indicates this user list is eligible for Google + Display Network. This field is read-only. + user_list: + The user list. Exactly one must be set. + crm_based_user_list: + User list of CRM users provided by the advertiser. + similar_user_list: + Output only. User list which are similar to users from another + UserList. These lists are readonly and automatically created + by google. + rule_based_user_list: + User list generated by a rule. + logical_user_list: + User list that is a custom combination of user lists and user + interests. + basic_user_list: + User list targeting as a collection of conversion or + remarketing actions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.UserList) + }) +_sym_db.RegisterMessage(UserList) + + +DESCRIPTOR._options = None +_USERLIST.fields_by_name['resource_name']._options = None +_USERLIST.fields_by_name['id']._options = None +_USERLIST.fields_by_name['read_only']._options = None +_USERLIST.fields_by_name['size_for_display']._options = None +_USERLIST.fields_by_name['size_range_for_display']._options = None +_USERLIST.fields_by_name['size_for_search']._options = None +_USERLIST.fields_by_name['size_range_for_search']._options = None +_USERLIST.fields_by_name['type']._options = None +_USERLIST.fields_by_name['access_reason']._options = None +_USERLIST.fields_by_name['eligible_for_display']._options = None +_USERLIST.fields_by_name['similar_user_list']._options = None +_USERLIST._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/user_list_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/user_list_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/user_list_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/user_location_view_pb2.py b/google/ads/google_ads/v5/proto/resources/user_location_view_pb2.py new file mode 100644 index 000000000..5fdac4909 --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/user_location_view_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/user_location_view.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/user_location_view.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\025UserLocationViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/resources/user_location_view.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xc6\x02\n\x10UserLocationView\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x03\xfa\x41+\n)googleads.googleapis.com/UserLocationView\x12>\n\x14\x63ountry_criterion_id\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12;\n\x12targeting_location\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x03:k\xea\x41h\n)googleads.googleapis.com/UserLocationView\x12;customers/{customer}/userLocationViews/{user_location_view}B\x82\x02\n%com.google.ads.googleads.v5.resourcesB\x15UserLocationViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_USERLOCATIONVIEW = _descriptor.Descriptor( + name='UserLocationView', + full_name='google.ads.googleads.v5.resources.UserLocationView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.UserLocationView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A+\n)googleads.googleapis.com/UserLocationView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_criterion_id', full_name='google.ads.googleads.v5.resources.UserLocationView.country_criterion_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting_location', full_name='google.ads.googleads.v5.resources.UserLocationView.targeting_location', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352Ah\n)googleads.googleapis.com/UserLocationView\022;customers/{customer}/userLocationViews/{user_location_view}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=226, + serialized_end=552, +) + +_USERLOCATIONVIEW.fields_by_name['country_criterion_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_USERLOCATIONVIEW.fields_by_name['targeting_location'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +DESCRIPTOR.message_types_by_name['UserLocationView'] = _USERLOCATIONVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UserLocationView = _reflection.GeneratedProtocolMessageType('UserLocationView', (_message.Message,), { + 'DESCRIPTOR' : _USERLOCATIONVIEW, + '__module__' : 'google.ads.googleads_v5.proto.resources.user_location_view_pb2' + , + '__doc__': """A user location view. User Location View includes all metrics + aggregated at the country level, one row per country. It reports + metrics at the actual physical location of the user by targeted or not + targeted location. If other segment fields are used, you may get more + than one row per country. + + Attributes: + resource_name: + Output only. The resource name of the user location view. + UserLocation view resource names have the form: ``customers/{ + customer_id}/userLocationViews/{country_criterion_id}~{targeti + ng_location}`` + country_criterion_id: + Output only. Criterion Id for the country. + targeting_location: + Output only. Indicates whether location was targeted or not. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.UserLocationView) + }) +_sym_db.RegisterMessage(UserLocationView) + + +DESCRIPTOR._options = None +_USERLOCATIONVIEW.fields_by_name['resource_name']._options = None +_USERLOCATIONVIEW.fields_by_name['country_criterion_id']._options = None +_USERLOCATIONVIEW.fields_by_name['targeting_location']._options = None +_USERLOCATIONVIEW._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/user_location_view_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/user_location_view_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/user_location_view_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/resources/video_pb2.py b/google/ads/google_ads/v5/proto/resources/video_pb2.py new file mode 100644 index 000000000..d8433119f --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/video_pb2.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/resources/video.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/resources/video.proto', + package='google.ads.googleads.v5.resources', + syntax='proto3', + serialized_options=b'\n%com.google.ads.googleads.v5.resourcesB\nVideoProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V5.Resources\312\002!Google\\Ads\\GoogleAds\\V5\\Resources\352\002%Google::Ads::GoogleAds::V5::Resources', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n3google/ads/googleads_v5/proto/resources/video.proto\x12!google.ads.googleads.v5.resources\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/api/annotations.proto\"\xe3\x02\n\x05Video\x12=\n\rresource_name\x18\x01 \x01(\tB&\xe0\x41\x03\xfa\x41 \n\x1egoogleads.googleapis.com/Video\x12-\n\x02id\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x35\n\nchannel_id\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03\x12\x39\n\x0f\x64uration_millis\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x03\x12\x30\n\x05title\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x03:H\xea\x41\x45\n\x1egoogleads.googleapis.com/Video\x12#customers/{customer}/videos/{video}B\xf7\x01\n%com.google.ads.googleads.v5.resourcesB\nVideoProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v5/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V5.Resources\xca\x02!Google\\Ads\\GoogleAds\\V5\\Resources\xea\x02%Google::Ads::GoogleAds::V5::Resourcesb\x06proto3' + , + dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_VIDEO = _descriptor.Descriptor( + name='Video', + full_name='google.ads.googleads.v5.resources.Video', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.resources.Video.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003\372A \n\036googleads.googleapis.com/Video', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.resources.Video.id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='channel_id', full_name='google.ads.googleads.v5.resources.Video.channel_id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='duration_millis', full_name='google.ads.googleads.v5.resources.Video.duration_millis', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='title', full_name='google.ads.googleads.v5.resources.Video.title', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\003', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'\352AE\n\036googleads.googleapis.com/Video\022#customers/{customer}/videos/{video}', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=213, + serialized_end=568, +) + +_VIDEO.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_VIDEO.fields_by_name['channel_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_VIDEO.fields_by_name['duration_millis'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_VIDEO.fields_by_name['title'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['Video'] = _VIDEO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Video = _reflection.GeneratedProtocolMessageType('Video', (_message.Message,), { + 'DESCRIPTOR' : _VIDEO, + '__module__' : 'google.ads.googleads_v5.proto.resources.video_pb2' + , + '__doc__': """A video. + + Attributes: + resource_name: + Output only. The resource name of the video. Video resource + names have the form: + ``customers/{customer_id}/videos/{video_id}`` + id: + Output only. The ID of the video. + channel_id: + Output only. The owner channel id of the video. + duration_millis: + Output only. The duration of the video in milliseconds. + title: + Output only. The title of the video. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.resources.Video) + }) +_sym_db.RegisterMessage(Video) + + +DESCRIPTOR._options = None +_VIDEO.fields_by_name['resource_name']._options = None +_VIDEO.fields_by_name['id']._options = None +_VIDEO.fields_by_name['channel_id']._options = None +_VIDEO.fields_by_name['duration_millis']._options = None +_VIDEO.fields_by_name['title']._options = None +_VIDEO._options = None +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/resources/video_pb2_grpc.py b/google/ads/google_ads/v5/proto/resources/video_pb2_grpc.py new file mode 100644 index 000000000..2daafffeb --- /dev/null +++ b/google/ads/google_ads/v5/proto/resources/video_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/google/ads/google_ads/v5/proto/services/__init__.py b/google/ads/google_ads/v5/proto/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2.py b/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2.py new file mode 100644 index 000000000..f5e3686a8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2.py @@ -0,0 +1,384 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/account_budget_proposal_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import account_budget_proposal_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/account_budget_proposal_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB!AccountBudgetProposalServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nLgoogle/ads/googleads_v5/proto/services/account_budget_proposal_service.proto\x12 google.ads.googleads.v5.services\x1a\x45google/ads/googleads_v5/proto/resources/account_budget_proposal.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"p\n\x1fGetAccountBudgetProposalRequest\x12M\n\rresource_name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.googleads.googleapis.com/AccountBudgetProposal\"\xaf\x01\n\"MutateAccountBudgetProposalRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12X\n\toperation\x18\x02 \x01(\x0b\x32@.google.ads.googleads.v5.services.AccountBudgetProposalOperationB\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\"\xbc\x01\n\x1e\x41\x63\x63ountBudgetProposalOperation\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12J\n\x06\x63reate\x18\x02 \x01(\x0b\x32\x38.google.ads.googleads.v5.resources.AccountBudgetProposalH\x00\x12\x10\n\x06remove\x18\x01 \x01(\tH\x00\x42\x0b\n\toperation\"z\n#MutateAccountBudgetProposalResponse\x12S\n\x06result\x18\x02 \x01(\x0b\x32\x43.google.ads.googleads.v5.services.MutateAccountBudgetProposalResult\":\n!MutateAccountBudgetProposalResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xb4\x04\n\x1c\x41\x63\x63ountBudgetProposalService\x12\xe9\x01\n\x18GetAccountBudgetProposal\x12\x41.google.ads.googleads.v5.services.GetAccountBudgetProposalRequest\x1a\x38.google.ads.googleads.v5.resources.AccountBudgetProposal\"P\x82\xd3\xe4\x93\x02:\x12\x38/v5/{resource_name=customers/*/accountBudgetProposals/*}\xda\x41\rresource_name\x12\x8a\x02\n\x1bMutateAccountBudgetProposal\x12\x44.google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest\x1a\x45.google.ads.googleads.v5.services.MutateAccountBudgetProposalResponse\"^\x82\xd3\xe4\x93\x02@\";/v5/customers/{customer_id=*}/accountBudgetProposals:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x88\x02\n$com.google.ads.googleads.v5.servicesB!AccountBudgetProposalServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETACCOUNTBUDGETPROPOSALREQUEST = _descriptor.Descriptor( + name='GetAccountBudgetProposalRequest', + full_name='google.ads.googleads.v5.services.GetAccountBudgetProposalRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAccountBudgetProposalRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A0\n.googleads.googleapis.com/AccountBudgetProposal', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=334, + serialized_end=446, +) + + +_MUTATEACCOUNTBUDGETPROPOSALREQUEST = _descriptor.Descriptor( + name='MutateAccountBudgetProposalRequest', + full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest.operation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest.validate_only', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=449, + serialized_end=624, +) + + +_ACCOUNTBUDGETPROPOSALOPERATION = _descriptor.Descriptor( + name='AccountBudgetProposalOperation', + full_name='google.ads.googleads.v5.services.AccountBudgetProposalOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AccountBudgetProposalOperation.update_mask', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AccountBudgetProposalOperation.create', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AccountBudgetProposalOperation.remove', index=2, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AccountBudgetProposalOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=627, + serialized_end=815, +) + + +_MUTATEACCOUNTBUDGETPROPOSALRESPONSE = _descriptor.Descriptor( + name='MutateAccountBudgetProposalResponse', + full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalResponse.result', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=817, + serialized_end=939, +) + + +_MUTATEACCOUNTBUDGETPROPOSALRESULT = _descriptor.Descriptor( + name='MutateAccountBudgetProposalResult', + full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAccountBudgetProposalResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=941, + serialized_end=999, +) + +_MUTATEACCOUNTBUDGETPROPOSALREQUEST.fields_by_name['operation'].message_type = _ACCOUNTBUDGETPROPOSALOPERATION +_ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2._ACCOUNTBUDGETPROPOSAL +_ACCOUNTBUDGETPROPOSALOPERATION.oneofs_by_name['operation'].fields.append( + _ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['create']) +_ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['create'].containing_oneof = _ACCOUNTBUDGETPROPOSALOPERATION.oneofs_by_name['operation'] +_ACCOUNTBUDGETPROPOSALOPERATION.oneofs_by_name['operation'].fields.append( + _ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['remove']) +_ACCOUNTBUDGETPROPOSALOPERATION.fields_by_name['remove'].containing_oneof = _ACCOUNTBUDGETPROPOSALOPERATION.oneofs_by_name['operation'] +_MUTATEACCOUNTBUDGETPROPOSALRESPONSE.fields_by_name['result'].message_type = _MUTATEACCOUNTBUDGETPROPOSALRESULT +DESCRIPTOR.message_types_by_name['GetAccountBudgetProposalRequest'] = _GETACCOUNTBUDGETPROPOSALREQUEST +DESCRIPTOR.message_types_by_name['MutateAccountBudgetProposalRequest'] = _MUTATEACCOUNTBUDGETPROPOSALREQUEST +DESCRIPTOR.message_types_by_name['AccountBudgetProposalOperation'] = _ACCOUNTBUDGETPROPOSALOPERATION +DESCRIPTOR.message_types_by_name['MutateAccountBudgetProposalResponse'] = _MUTATEACCOUNTBUDGETPROPOSALRESPONSE +DESCRIPTOR.message_types_by_name['MutateAccountBudgetProposalResult'] = _MUTATEACCOUNTBUDGETPROPOSALRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAccountBudgetProposalRequest = _reflection.GeneratedProtocolMessageType('GetAccountBudgetProposalRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETACCOUNTBUDGETPROPOSALREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.account_budget_proposal_service_pb2' + , + '__doc__': """Request message for [AccountBudgetProposalService.GetAccountBudgetProp + osal][google.ads.googleads.v5.services.AccountBudgetProposalService.Ge + tAccountBudgetProposal]. + + Attributes: + resource_name: + Required. The resource name of the account-level budget + proposal to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAccountBudgetProposalRequest) + }) +_sym_db.RegisterMessage(GetAccountBudgetProposalRequest) + +MutateAccountBudgetProposalRequest = _reflection.GeneratedProtocolMessageType('MutateAccountBudgetProposalRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEACCOUNTBUDGETPROPOSALREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.account_budget_proposal_service_pb2' + , + '__doc__': """Request message for [AccountBudgetProposalService.MutateAccountBudgetP + roposal][google.ads.googleads.v5.services.AccountBudgetProposalService + .MutateAccountBudgetProposal]. + + Attributes: + customer_id: + Required. The ID of the customer. + operation: + Required. The operation to perform on an individual account- + level budget proposal. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAccountBudgetProposalRequest) + }) +_sym_db.RegisterMessage(MutateAccountBudgetProposalRequest) + +AccountBudgetProposalOperation = _reflection.GeneratedProtocolMessageType('AccountBudgetProposalOperation', (_message.Message,), { + 'DESCRIPTOR' : _ACCOUNTBUDGETPROPOSALOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.account_budget_proposal_service_pb2' + , + '__doc__': """A single operation to propose the creation of a new account-level + budget or edit/end/remove an existing one. + + Attributes: + update_mask: + FieldMask that determines which budget fields are modified. + While budgets may be modified, proposals that propose such + modifications are final. Therefore, update operations are not + supported for proposals. Proposals that modify budgets have + the 'update' proposal type. Specifying a mask for any other + proposal type is considered an error. + operation: + The mutate operation. + create: + Create operation: A new proposal to create a new budget, edit + an existing budget, end an actively running budget, or remove + an approved budget scheduled to start in the future. No + resource name is expected for the new proposal. + remove: + Remove operation: A resource name for the removed proposal is + expected, in this format: ``customers/{customer_id}/accountBu + dgetProposals/{account_budget_proposal_id}`` A request may be + cancelled iff it is pending. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AccountBudgetProposalOperation) + }) +_sym_db.RegisterMessage(AccountBudgetProposalOperation) + +MutateAccountBudgetProposalResponse = _reflection.GeneratedProtocolMessageType('MutateAccountBudgetProposalResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEACCOUNTBUDGETPROPOSALRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.account_budget_proposal_service_pb2' + , + '__doc__': """Response message for account-level budget mutate operations. + + Attributes: + result: + The result of the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAccountBudgetProposalResponse) + }) +_sym_db.RegisterMessage(MutateAccountBudgetProposalResponse) + +MutateAccountBudgetProposalResult = _reflection.GeneratedProtocolMessageType('MutateAccountBudgetProposalResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEACCOUNTBUDGETPROPOSALRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.account_budget_proposal_service_pb2' + , + '__doc__': """The result for the account budget proposal mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAccountBudgetProposalResult) + }) +_sym_db.RegisterMessage(MutateAccountBudgetProposalResult) + + +DESCRIPTOR._options = None +_GETACCOUNTBUDGETPROPOSALREQUEST.fields_by_name['resource_name']._options = None +_MUTATEACCOUNTBUDGETPROPOSALREQUEST.fields_by_name['customer_id']._options = None +_MUTATEACCOUNTBUDGETPROPOSALREQUEST.fields_by_name['operation']._options = None + +_ACCOUNTBUDGETPROPOSALSERVICE = _descriptor.ServiceDescriptor( + name='AccountBudgetProposalService', + full_name='google.ads.googleads.v5.services.AccountBudgetProposalService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1002, + serialized_end=1566, + methods=[ + _descriptor.MethodDescriptor( + name='GetAccountBudgetProposal', + full_name='google.ads.googleads.v5.services.AccountBudgetProposalService.GetAccountBudgetProposal', + index=0, + containing_service=None, + input_type=_GETACCOUNTBUDGETPROPOSALREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2._ACCOUNTBUDGETPROPOSAL, + serialized_options=b'\202\323\344\223\002:\0228/v5/{resource_name=customers/*/accountBudgetProposals/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAccountBudgetProposal', + full_name='google.ads.googleads.v5.services.AccountBudgetProposalService.MutateAccountBudgetProposal', + index=1, + containing_service=None, + input_type=_MUTATEACCOUNTBUDGETPROPOSALREQUEST, + output_type=_MUTATEACCOUNTBUDGETPROPOSALRESPONSE, + serialized_options=b'\202\323\344\223\002@\";/v5/customers/{customer_id=*}/accountBudgetProposals:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ACCOUNTBUDGETPROPOSALSERVICE) + +DESCRIPTOR.services_by_name['AccountBudgetProposalService'] = _ACCOUNTBUDGETPROPOSALSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2_grpc.py new file mode 100644 index 000000000..b6fa80f3f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/account_budget_proposal_service_pb2_grpc.py @@ -0,0 +1,149 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import account_budget_proposal_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2 +from google.ads.google_ads.v5.proto.services import account_budget_proposal_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2 + + +class AccountBudgetProposalServiceStub(object): + """Proto file describing the AccountBudgetProposal service. + + A service for managing account-level budgets via proposals. + + A proposal is a request to create a new budget or make changes to an + existing one. + + Reads for account-level budgets managed by these proposals will be + supported in a future version. Until then, please use the + BudgetOrderService from the AdWords API. Learn more at + https://developers.google.com/adwords/api/docs/guides/budget-order + + Mutates: + The CREATE operation creates a new proposal. + UPDATE operations aren't supported. + The REMOVE operation cancels a pending proposal. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAccountBudgetProposal = channel.unary_unary( + '/google.ads.googleads.v5.services.AccountBudgetProposalService/GetAccountBudgetProposal', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.GetAccountBudgetProposalRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2.AccountBudgetProposal.FromString, + ) + self.MutateAccountBudgetProposal = channel.unary_unary( + '/google.ads.googleads.v5.services.AccountBudgetProposalService/MutateAccountBudgetProposal', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalResponse.FromString, + ) + + +class AccountBudgetProposalServiceServicer(object): + """Proto file describing the AccountBudgetProposal service. + + A service for managing account-level budgets via proposals. + + A proposal is a request to create a new budget or make changes to an + existing one. + + Reads for account-level budgets managed by these proposals will be + supported in a future version. Until then, please use the + BudgetOrderService from the AdWords API. Learn more at + https://developers.google.com/adwords/api/docs/guides/budget-order + + Mutates: + The CREATE operation creates a new proposal. + UPDATE operations aren't supported. + The REMOVE operation cancels a pending proposal. + """ + + def GetAccountBudgetProposal(self, request, context): + """Returns an account-level budget proposal in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAccountBudgetProposal(self, request, context): + """Creates, updates, or removes account budget proposals. Operation statuses + are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AccountBudgetProposalServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAccountBudgetProposal': grpc.unary_unary_rpc_method_handler( + servicer.GetAccountBudgetProposal, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.GetAccountBudgetProposalRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2.AccountBudgetProposal.SerializeToString, + ), + 'MutateAccountBudgetProposal': grpc.unary_unary_rpc_method_handler( + servicer.MutateAccountBudgetProposal, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AccountBudgetProposalService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AccountBudgetProposalService(object): + """Proto file describing the AccountBudgetProposal service. + + A service for managing account-level budgets via proposals. + + A proposal is a request to create a new budget or make changes to an + existing one. + + Reads for account-level budgets managed by these proposals will be + supported in a future version. Until then, please use the + BudgetOrderService from the AdWords API. Learn more at + https://developers.google.com/adwords/api/docs/guides/budget-order + + Mutates: + The CREATE operation creates a new proposal. + UPDATE operations aren't supported. + The REMOVE operation cancels a pending proposal. + """ + + @staticmethod + def GetAccountBudgetProposal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AccountBudgetProposalService/GetAccountBudgetProposal', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.GetAccountBudgetProposalRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2.AccountBudgetProposal.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAccountBudgetProposal(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AccountBudgetProposalService/MutateAccountBudgetProposal', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_account__budget__proposal__service__pb2.MutateAccountBudgetProposalResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/account_budget_service_pb2.py b/google/ads/google_ads/v5/proto/services/account_budget_service_pb2.py new file mode 100644 index 000000000..138d9d40d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/account_budget_service_pb2.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/account_budget_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import account_budget_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/account_budget_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031AccountBudgetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/account_budget_service.proto\x12 google.ads.googleads.v5.services\x1a.google.ads.googleads.v5.services.GetAdGroupAdAssetViewRequest\x1a\x35.google.ads.googleads.v5.resources.AdGroupAdAssetView\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/adGroupAdAssetViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1e\x41\x64GroupAdAssetViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPADASSETVIEWREQUEST = _descriptor.Descriptor( + name='GetAdGroupAdAssetViewRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupAdAssetViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupAdAssetViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/AdGroupAdAssetView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=404, +) + +DESCRIPTOR.message_types_by_name['GetAdGroupAdAssetViewRequest'] = _GETADGROUPADASSETVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupAdAssetViewRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupAdAssetViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPADASSETVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_asset_view_service_pb2' + , + '__doc__': """Request message for [AdGroupAdAssetViewService.GetAdGroupAdAssetView][ + google.ads.googleads.v5.services.AdGroupAdAssetViewService.GetAdGroupA + dAssetView]. + + Attributes: + resource_name: + Required. The resource name of the ad group ad asset view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupAdAssetViewRequest) + }) +_sym_db.RegisterMessage(GetAdGroupAdAssetViewRequest) + + +DESCRIPTOR._options = None +_GETADGROUPADASSETVIEWREQUEST.fields_by_name['resource_name']._options = None + +_ADGROUPADASSETVIEWSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupAdAssetViewService', + full_name='google.ads.googleads.v5.services.AdGroupAdAssetViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=407, + serialized_end=687, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupAdAssetView', + full_name='google.ads.googleads.v5.services.AdGroupAdAssetViewService.GetAdGroupAdAssetView', + index=0, + containing_service=None, + input_type=_GETADGROUPADASSETVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2._ADGROUPADASSETVIEW, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/adGroupAdAssetViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPADASSETVIEWSERVICE) + +DESCRIPTOR.services_by_name['AdGroupAdAssetViewService'] = _ADGROUPADASSETVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_ad_asset_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_ad_asset_view_service_pb2_grpc.py new file mode 100644 index 000000000..2bb2d00a3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_ad_asset_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_ad_asset_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_ad_asset_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__asset__view__service__pb2 + + +class AdGroupAdAssetViewServiceStub(object): + """Proto file describing the ad group ad asset view service. + + Service to fetch ad group ad asset views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupAdAssetView = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAdAssetViewService/GetAdGroupAdAssetView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__asset__view__service__pb2.GetAdGroupAdAssetViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2.AdGroupAdAssetView.FromString, + ) + + +class AdGroupAdAssetViewServiceServicer(object): + """Proto file describing the ad group ad asset view service. + + Service to fetch ad group ad asset views. + """ + + def GetAdGroupAdAssetView(self, request, context): + """Returns the requested ad group ad asset view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupAdAssetViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupAdAssetView': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupAdAssetView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__asset__view__service__pb2.GetAdGroupAdAssetViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2.AdGroupAdAssetView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupAdAssetViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupAdAssetViewService(object): + """Proto file describing the ad group ad asset view service. + + Service to fetch ad group ad asset views. + """ + + @staticmethod + def GetAdGroupAdAssetView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAdAssetViewService/GetAdGroupAdAssetView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__asset__view__service__pb2.GetAdGroupAdAssetViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2.AdGroupAdAssetView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2.py new file mode 100644 index 000000000..179283e70 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2.py @@ -0,0 +1,390 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_ad_label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_ad_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_ad_label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032AdGroupAdLabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/ad_group_ad_label_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/ad_group_ad_label.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"b\n\x18GetAdGroupAdLabelRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/AdGroupAdLabel\"\xbc\x01\n\x1cMutateAdGroupAdLabelsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\noperations\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.AdGroupAdLabelOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"}\n\x17\x41\x64GroupAdLabelOperation\x12\x43\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.AdGroupAdLabelH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"\xa1\x01\n\x1dMutateAdGroupAdLabelsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.MutateAdGroupAdLabelResult\"3\n\x1aMutateAdGroupAdLabelResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xf9\x03\n\x15\x41\x64GroupAdLabelService\x12\xcd\x01\n\x11GetAdGroupAdLabel\x12:.google.ads.googleads.v5.services.GetAdGroupAdLabelRequest\x1a\x31.google.ads.googleads.v5.resources.AdGroupAdLabel\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/adGroupAdLabels/*}\xda\x41\rresource_name\x12\xf2\x01\n\x15MutateAdGroupAdLabels\x12>.google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest\x1a?.google.ads.googleads.v5.services.MutateAdGroupAdLabelsResponse\"X\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/adGroupAdLabels:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x41\x64GroupAdLabelServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPADLABELREQUEST = _descriptor.Descriptor( + name='GetAdGroupAdLabelRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupAdLabelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupAdLabelRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/AdGroupAdLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=313, + serialized_end=411, +) + + +_MUTATEADGROUPADLABELSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupAdLabelsRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=414, + serialized_end=602, +) + + +_ADGROUPADLABELOPERATION = _descriptor.Descriptor( + name='AdGroupAdLabelOperation', + full_name='google.ads.googleads.v5.services.AdGroupAdLabelOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupAdLabelOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupAdLabelOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupAdLabelOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=604, + serialized_end=729, +) + + +_MUTATEADGROUPADLABELSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupAdLabelsResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=732, + serialized_end=893, +) + + +_MUTATEADGROUPADLABELRESULT = _descriptor.Descriptor( + name='MutateAdGroupAdLabelResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupAdLabelResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=895, + serialized_end=946, +) + +_MUTATEADGROUPADLABELSREQUEST.fields_by_name['operations'].message_type = _ADGROUPADLABELOPERATION +_ADGROUPADLABELOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2._ADGROUPADLABEL +_ADGROUPADLABELOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADLABELOPERATION.fields_by_name['create']) +_ADGROUPADLABELOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPADLABELOPERATION.oneofs_by_name['operation'] +_ADGROUPADLABELOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADLABELOPERATION.fields_by_name['remove']) +_ADGROUPADLABELOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPADLABELOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPADLABELSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPADLABELSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPADLABELRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupAdLabelRequest'] = _GETADGROUPADLABELREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupAdLabelsRequest'] = _MUTATEADGROUPADLABELSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupAdLabelOperation'] = _ADGROUPADLABELOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupAdLabelsResponse'] = _MUTATEADGROUPADLABELSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupAdLabelResult'] = _MUTATEADGROUPADLABELRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupAdLabelRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupAdLabelRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPADLABELREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_label_service_pb2' + , + '__doc__': """Request message for [AdGroupAdLabelService.GetAdGroupAdLabel][google.a + ds.googleads.v5.services.AdGroupAdLabelService.GetAdGroupAdLabel]. + + Attributes: + resource_name: + Required. The resource name of the ad group ad label to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupAdLabelRequest) + }) +_sym_db.RegisterMessage(GetAdGroupAdLabelRequest) + +MutateAdGroupAdLabelsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdLabelsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADLABELSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_label_service_pb2' + , + '__doc__': """Request message for [AdGroupAdLabelService.MutateAdGroupAdLabels][goog + le.ads.googleads.v5.services.AdGroupAdLabelService.MutateAdGroupAdLabe + ls]. + + Attributes: + customer_id: + Required. ID of the customer whose ad group ad labels are + being modified. + operations: + Required. The list of operations to perform on ad group ad + labels. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdLabelsRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupAdLabelsRequest) + +AdGroupAdLabelOperation = _reflection.GeneratedProtocolMessageType('AdGroupAdLabelOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADLABELOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_label_service_pb2' + , + '__doc__': """A single operation (create, remove) on an ad group ad label. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group ad label. + remove: + Remove operation: A resource name for the ad group ad label + being removed, in this format: ``customers/{customer_id}/adGr + oupAdLabels/{ad_group_id}~{ad_id} _{label_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupAdLabelOperation) + }) +_sym_db.RegisterMessage(AdGroupAdLabelOperation) + +MutateAdGroupAdLabelsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdLabelsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADLABELSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_label_service_pb2' + , + '__doc__': """Response message for an ad group ad labels mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdLabelsResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupAdLabelsResponse) + +MutateAdGroupAdLabelResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdLabelResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADLABELRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_label_service_pb2' + , + '__doc__': """The result for an ad group ad label mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdLabelResult) + }) +_sym_db.RegisterMessage(MutateAdGroupAdLabelResult) + + +DESCRIPTOR._options = None +_GETADGROUPADLABELREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPADLABELSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPADLABELSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPADLABELSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupAdLabelService', + full_name='google.ads.googleads.v5.services.AdGroupAdLabelService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=949, + serialized_end=1454, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupAdLabel', + full_name='google.ads.googleads.v5.services.AdGroupAdLabelService.GetAdGroupAdLabel', + index=0, + containing_service=None, + input_type=_GETADGROUPADLABELREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2._ADGROUPADLABEL, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/adGroupAdLabels/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupAdLabels', + full_name='google.ads.googleads.v5.services.AdGroupAdLabelService.MutateAdGroupAdLabels', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPADLABELSREQUEST, + output_type=_MUTATEADGROUPADLABELSRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/adGroupAdLabels:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPADLABELSERVICE) + +DESCRIPTOR.services_by_name['AdGroupAdLabelService'] = _ADGROUPADLABELSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2_grpc.py new file mode 100644 index 000000000..4c5e4ad1b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_ad_label_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_ad_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_ad_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2 + + +class AdGroupAdLabelServiceStub(object): + """Proto file describing the Ad Group Ad Label service. + + Service to manage labels on ad group ads. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupAdLabel = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAdLabelService/GetAdGroupAdLabel', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.GetAdGroupAdLabelRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2.AdGroupAdLabel.FromString, + ) + self.MutateAdGroupAdLabels = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAdLabelService/MutateAdGroupAdLabels', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsResponse.FromString, + ) + + +class AdGroupAdLabelServiceServicer(object): + """Proto file describing the Ad Group Ad Label service. + + Service to manage labels on ad group ads. + """ + + def GetAdGroupAdLabel(self, request, context): + """Returns the requested ad group ad label in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupAdLabels(self, request, context): + """Creates and removes ad group ad labels. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupAdLabelServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupAdLabel': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupAdLabel, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.GetAdGroupAdLabelRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2.AdGroupAdLabel.SerializeToString, + ), + 'MutateAdGroupAdLabels': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupAdLabels, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupAdLabelService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupAdLabelService(object): + """Proto file describing the Ad Group Ad Label service. + + Service to manage labels on ad group ads. + """ + + @staticmethod + def GetAdGroupAdLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAdLabelService/GetAdGroupAdLabel', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.GetAdGroupAdLabelRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2.AdGroupAdLabel.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupAdLabels(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAdLabelService/MutateAdGroupAdLabels', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.MutateAdGroupAdLabelsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2.py new file mode 100644 index 000000000..b451708de --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2.py @@ -0,0 +1,448 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_ad_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_ad_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025AdGroupAdServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/services/ad_group_ad_service.proto\x12 google.ads.googleads.v5.services\x1a\x31google/ads/googleads_v5/proto/common/policy.proto\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x39google/ads/googleads_v5/proto/resources/ad_group_ad.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"X\n\x13GetAdGroupAdRequest\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"googleads.googleapis.com/AdGroupAd\"\x9d\x02\n\x17MutateAdGroupAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12M\n\noperations\x18\x02 \x03(\x0b\x32\x34.google.ads.googleads.v5.services.AdGroupAdOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xc4\x02\n\x12\x41\x64GroupAdOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12^\n\x1bpolicy_validation_parameter\x18\x05 \x01(\x0b\x32\x39.google.ads.googleads.v5.common.PolicyValidationParameter\x12>\n\x06\x63reate\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v5.resources.AdGroupAdH\x00\x12>\n\x06update\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.resources.AdGroupAdH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x97\x01\n\x18MutateAdGroupAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x07results\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.MutateAdGroupAdResult\"q\n\x15MutateAdGroupAdResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x41\n\x0b\x61\x64_group_ad\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.resources.AdGroupAd2\xcc\x03\n\x10\x41\x64GroupAdService\x12\xb9\x01\n\x0cGetAdGroupAd\x12\x35.google.ads.googleads.v5.services.GetAdGroupAdRequest\x1a,.google.ads.googleads.v5.resources.AdGroupAd\"D\x82\xd3\xe4\x93\x02.\x12,/v5/{resource_name=customers/*/adGroupAds/*}\xda\x41\rresource_name\x12\xde\x01\n\x10MutateAdGroupAds\x12\x39.google.ads.googleads.v5.services.MutateAdGroupAdsRequest\x1a:.google.ads.googleads.v5.services.MutateAdGroupAdsResponse\"S\x82\xd3\xe4\x93\x02\x34\"//v5/customers/{customer_id=*}/adGroupAds:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15\x41\x64GroupAdServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPADREQUEST = _descriptor.Descriptor( + name='GetAdGroupAdRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupAdRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupAdRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A$\n\"googleads.googleapis.com/AdGroupAd', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=451, + serialized_end=539, +) + + +_MUTATEADGROUPADSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupAdsRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=542, + serialized_end=827, +) + + +_ADGROUPADOPERATION = _descriptor.Descriptor( + name='AdGroupAdOperation', + full_name='google.ads.googleads.v5.services.AdGroupAdOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy_validation_parameter', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.policy_validation_parameter', index=1, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.create', index=2, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.update', index=3, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.remove', index=4, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupAdOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=830, + serialized_end=1154, +) + + +_MUTATEADGROUPADSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupAdsResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupAdsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1157, + serialized_end=1308, +) + + +_MUTATEADGROUPADRESULT = _descriptor.Descriptor( + name='MutateAdGroupAdResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupAdResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupAdResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.services.MutateAdGroupAdResult.ad_group_ad', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1310, + serialized_end=1423, +) + +_MUTATEADGROUPADSREQUEST.fields_by_name['operations'].message_type = _ADGROUPADOPERATION +_MUTATEADGROUPADSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_ADGROUPADOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPADOPERATION.fields_by_name['policy_validation_parameter'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYVALIDATIONPARAMETER +_ADGROUPADOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_ADGROUPADOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['create']) +_ADGROUPADOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['update']) +_ADGROUPADOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['remove']) +_ADGROUPADOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPADSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPADSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPADRESULT +_MUTATEADGROUPADRESULT.fields_by_name['ad_group_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +DESCRIPTOR.message_types_by_name['GetAdGroupAdRequest'] = _GETADGROUPADREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupAdsRequest'] = _MUTATEADGROUPADSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupAdOperation'] = _ADGROUPADOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupAdsResponse'] = _MUTATEADGROUPADSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupAdResult'] = _MUTATEADGROUPADRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupAdRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupAdRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPADREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_service_pb2' + , + '__doc__': """Request message for [AdGroupAdService.GetAdGroupAd][google.ads.googlea + ds.v5.services.AdGroupAdService.GetAdGroupAd]. + + Attributes: + resource_name: + Required. The resource name of the ad to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupAdRequest) + }) +_sym_db.RegisterMessage(GetAdGroupAdRequest) + +MutateAdGroupAdsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_service_pb2' + , + '__doc__': """Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.goo + gleads.v5.services.AdGroupAdService.MutateAdGroupAds]. + + Attributes: + customer_id: + Required. The ID of the customer whose ads are being modified. + operations: + Required. The list of operations to perform on individual ads. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdsRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupAdsRequest) + +AdGroupAdOperation = _reflection.GeneratedProtocolMessageType('AdGroupAdOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPADOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an ad group ad. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + policy_validation_parameter: + Configuration for how policies are validated. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad. + update: + Update operation: The ad is expected to have a valid resource + name. + remove: + Remove operation: A resource name for the removed ad is + expected, in this format: + ``customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupAdOperation) + }) +_sym_db.RegisterMessage(AdGroupAdOperation) + +MutateAdGroupAdsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_service_pb2' + , + '__doc__': """Response message for an ad group ad mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdsResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupAdsResponse) + +MutateAdGroupAdResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPADRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_ad_service_pb2' + , + '__doc__': """The result for the ad mutate. + + Attributes: + resource_name: + The resource name returned for successful operations. + ad_group_ad: + The mutated ad group ad with only mutable fields after mutate. + The field will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupAdResult) + }) +_sym_db.RegisterMessage(MutateAdGroupAdResult) + + +DESCRIPTOR._options = None +_GETADGROUPADREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPADSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPADSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPADSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupAdService', + full_name='google.ads.googleads.v5.services.AdGroupAdService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1426, + serialized_end=1886, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupAd', + full_name='google.ads.googleads.v5.services.AdGroupAdService.GetAdGroupAd', + index=0, + containing_service=None, + input_type=_GETADGROUPADREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD, + serialized_options=b'\202\323\344\223\002.\022,/v5/{resource_name=customers/*/adGroupAds/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupAds', + full_name='google.ads.googleads.v5.services.AdGroupAdService.MutateAdGroupAds', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPADSREQUEST, + output_type=_MUTATEADGROUPADSRESPONSE, + serialized_options=b'\202\323\344\223\0024\"//v5/customers/{customer_id=*}/adGroupAds:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPADSERVICE) + +DESCRIPTOR.services_by_name['AdGroupAdService'] = _ADGROUPADSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2_grpc.py new file mode 100644 index 000000000..daa0b464b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_ad_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_ad_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2 + + +class AdGroupAdServiceStub(object): + """Proto file describing the Ad Group Ad service. + + Service to manage ads in an ad group. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupAd = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAdService/GetAdGroupAd', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.GetAdGroupAdRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2.AdGroupAd.FromString, + ) + self.MutateAdGroupAds = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAdService/MutateAdGroupAds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsResponse.FromString, + ) + + +class AdGroupAdServiceServicer(object): + """Proto file describing the Ad Group Ad service. + + Service to manage ads in an ad group. + """ + + def GetAdGroupAd(self, request, context): + """Returns the requested ad in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupAds(self, request, context): + """Creates, updates, or removes ads. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupAdServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupAd': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupAd, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.GetAdGroupAdRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2.AdGroupAd.SerializeToString, + ), + 'MutateAdGroupAds': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupAds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupAdService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupAdService(object): + """Proto file describing the Ad Group Ad service. + + Service to manage ads in an ad group. + """ + + @staticmethod + def GetAdGroupAd(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAdService/GetAdGroupAd', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.GetAdGroupAdRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2.AdGroupAd.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupAds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAdService/MutateAdGroupAds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2.py new file mode 100644 index 000000000..9a1ec482b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_audience_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_audience_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037AdGroupAudienceViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/services/ad_group_audience_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/resources/ad_group_audience_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"l\n\x1dGetAdGroupAudienceViewRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/AdGroupAudienceView2\x9d\x02\n\x1a\x41\x64GroupAudienceViewService\x12\xe1\x01\n\x16GetAdGroupAudienceView\x12?.google.ads.googleads.v5.services.GetAdGroupAudienceViewRequest\x1a\x36.google.ads.googleads.v5.resources.AdGroupAudienceView\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/adGroupAudienceViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1f\x41\x64GroupAudienceViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPAUDIENCEVIEWREQUEST = _descriptor.Descriptor( + name='GetAdGroupAudienceViewRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupAudienceViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupAudienceViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/AdGroupAudienceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=406, +) + +DESCRIPTOR.message_types_by_name['GetAdGroupAudienceViewRequest'] = _GETADGROUPAUDIENCEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupAudienceViewRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupAudienceViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPAUDIENCEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_audience_view_service_pb2' + , + '__doc__': """Request message for [AdGroupAudienceViewService.GetAdGroupAudienceView + ][google.ads.googleads.v5.services.AdGroupAudienceViewService.GetAdGro + upAudienceView]. + + Attributes: + resource_name: + Required. The resource name of the ad group audience view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupAudienceViewRequest) + }) +_sym_db.RegisterMessage(GetAdGroupAudienceViewRequest) + + +DESCRIPTOR._options = None +_GETADGROUPAUDIENCEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_ADGROUPAUDIENCEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupAudienceViewService', + full_name='google.ads.googleads.v5.services.AdGroupAudienceViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=409, + serialized_end=694, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupAudienceView', + full_name='google.ads.googleads.v5.services.AdGroupAudienceViewService.GetAdGroupAudienceView', + index=0, + containing_service=None, + input_type=_GETADGROUPAUDIENCEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2._ADGROUPAUDIENCEVIEW, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/adGroupAudienceViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPAUDIENCEVIEWSERVICE) + +DESCRIPTOR.services_by_name['AdGroupAudienceViewService'] = _ADGROUPAUDIENCEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2_grpc.py new file mode 100644 index 000000000..44d77d58c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_audience_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_audience_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__audience__view__service__pb2 + + +class AdGroupAudienceViewServiceStub(object): + """Proto file describing the AdGroup Audience View service. + + Service to manage ad group audience views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupAudienceView = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupAudienceViewService/GetAdGroupAudienceView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__audience__view__service__pb2.GetAdGroupAudienceViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2.AdGroupAudienceView.FromString, + ) + + +class AdGroupAudienceViewServiceServicer(object): + """Proto file describing the AdGroup Audience View service. + + Service to manage ad group audience views. + """ + + def GetAdGroupAudienceView(self, request, context): + """Returns the requested ad group audience view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupAudienceViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupAudienceView': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupAudienceView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__audience__view__service__pb2.GetAdGroupAudienceViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2.AdGroupAudienceView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupAudienceViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupAudienceViewService(object): + """Proto file describing the AdGroup Audience View service. + + Service to manage ad group audience views. + """ + + @staticmethod + def GetAdGroupAudienceView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupAudienceViewService/GetAdGroupAudienceView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__audience__view__service__pb2.GetAdGroupAudienceViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2.AdGroupAudienceView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2.py new file mode 100644 index 000000000..0610a4a89 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2.py @@ -0,0 +1,444 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_bid_modifier_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_bid_modifier_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036AdGroupBidModifierServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/ad_group_bid_modifier_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x43google/ads/googleads_v5/proto/resources/ad_group_bid_modifier.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"j\n\x1cGetAdGroupBidModifierRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/AdGroupBidModifier\"\xaf\x02\n MutateAdGroupBidModifiersRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12V\n\noperations\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v5.services.AdGroupBidModifierOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xff\x01\n\x1b\x41\x64GroupBidModifierOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.AdGroupBidModifierH\x00\x12G\n\x06update\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.AdGroupBidModifierH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa9\x01\n!MutateAdGroupBidModifiersResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12Q\n\x07results\x18\x02 \x03(\x0b\x32@.google.ads.googleads.v5.services.MutateAdGroupBidModifierResult\"\x8d\x01\n\x1eMutateAdGroupBidModifierResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12T\n\x15\x61\x64_group_bid_modifier\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.AdGroupBidModifier2\x9d\x04\n\x19\x41\x64GroupBidModifierService\x12\xdd\x01\n\x15GetAdGroupBidModifier\x12>.google.ads.googleads.v5.services.GetAdGroupBidModifierRequest\x1a\x35.google.ads.googleads.v5.resources.AdGroupBidModifier\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/adGroupBidModifiers/*}\xda\x41\rresource_name\x12\x82\x02\n\x19MutateAdGroupBidModifiers\x12\x42.google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest\x1a\x43.google.ads.googleads.v5.services.MutateAdGroupBidModifiersResponse\"\\\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/adGroupBidModifiers:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1e\x41\x64GroupBidModifierServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPBIDMODIFIERREQUEST = _descriptor.Descriptor( + name='GetAdGroupBidModifierRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupBidModifierRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupBidModifierRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/AdGroupBidModifier', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=420, + serialized_end=526, +) + + +_MUTATEADGROUPBIDMODIFIERSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupBidModifiersRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=529, + serialized_end=832, +) + + +_ADGROUPBIDMODIFIEROPERATION = _descriptor.Descriptor( + name='AdGroupBidModifierOperation', + full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupBidModifierOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=835, + serialized_end=1090, +) + + +_MUTATEADGROUPBIDMODIFIERSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupBidModifiersResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifiersResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1093, + serialized_end=1262, +) + + +_MUTATEADGROUPBIDMODIFIERRESULT = _descriptor.Descriptor( + name='MutateAdGroupBidModifierResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifierResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifierResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier', full_name='google.ads.googleads.v5.services.MutateAdGroupBidModifierResult.ad_group_bid_modifier', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1265, + serialized_end=1406, +) + +_MUTATEADGROUPBIDMODIFIERSREQUEST.fields_by_name['operations'].message_type = _ADGROUPBIDMODIFIEROPERATION +_MUTATEADGROUPBIDMODIFIERSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['create']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['create'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['update']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['remove']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPBIDMODIFIERSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPBIDMODIFIERSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPBIDMODIFIERRESULT +_MUTATEADGROUPBIDMODIFIERRESULT.fields_by_name['ad_group_bid_modifier'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +DESCRIPTOR.message_types_by_name['GetAdGroupBidModifierRequest'] = _GETADGROUPBIDMODIFIERREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifiersRequest'] = _MUTATEADGROUPBIDMODIFIERSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupBidModifierOperation'] = _ADGROUPBIDMODIFIEROPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifiersResponse'] = _MUTATEADGROUPBIDMODIFIERSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifierResult'] = _MUTATEADGROUPBIDMODIFIERRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupBidModifierRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupBidModifierRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPBIDMODIFIERREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_bid_modifier_service_pb2' + , + '__doc__': """Request message for [AdGroupBidModifierService.GetAdGroupBidModifier][ + google.ads.googleads.v5.services.AdGroupBidModifierService.GetAdGroupB + idModifier]. + + Attributes: + resource_name: + Required. The resource name of the ad group bid modifier to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupBidModifierRequest) + }) +_sym_db.RegisterMessage(GetAdGroupBidModifierRequest) + +MutateAdGroupBidModifiersRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifiersRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPBIDMODIFIERSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_bid_modifier_service_pb2' + , + '__doc__': """Request message for [AdGroupBidModifierService.MutateAdGroupBidModifie + rs][google.ads.googleads.v5.services.AdGroupBidModifierService.MutateA + dGroupBidModifiers]. + + Attributes: + customer_id: + Required. ID of the customer whose ad group bid modifiers are + being modified. + operations: + Required. The list of operations to perform on individual ad + group bid modifiers. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupBidModifiersRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupBidModifiersRequest) + +AdGroupBidModifierOperation = _reflection.GeneratedProtocolMessageType('AdGroupBidModifierOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPBIDMODIFIEROPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_bid_modifier_service_pb2' + , + '__doc__': """A single operation (create, remove, update) on an ad group bid + modifier. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group bid modifier. + update: + Update operation: The ad group bid modifier is expected to + have a valid resource name. + remove: + Remove operation: A resource name for the removed ad group bid + modifier is expected, in this format: ``customers/{customer_i + d}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupBidModifierOperation) + }) +_sym_db.RegisterMessage(AdGroupBidModifierOperation) + +MutateAdGroupBidModifiersResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifiersResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPBIDMODIFIERSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_bid_modifier_service_pb2' + , + '__doc__': """Response message for ad group bid modifiers mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupBidModifiersResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupBidModifiersResponse) + +MutateAdGroupBidModifierResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifierResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPBIDMODIFIERRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_bid_modifier_service_pb2' + , + '__doc__': """The result for the criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + ad_group_bid_modifier: + The mutated ad group bid modifier with only mutable fields + after mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupBidModifierResult) + }) +_sym_db.RegisterMessage(MutateAdGroupBidModifierResult) + + +DESCRIPTOR._options = None +_GETADGROUPBIDMODIFIERREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPBIDMODIFIERSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPBIDMODIFIERSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPBIDMODIFIERSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupBidModifierService', + full_name='google.ads.googleads.v5.services.AdGroupBidModifierService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1409, + serialized_end=1950, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupBidModifier', + full_name='google.ads.googleads.v5.services.AdGroupBidModifierService.GetAdGroupBidModifier', + index=0, + containing_service=None, + input_type=_GETADGROUPBIDMODIFIERREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/adGroupBidModifiers/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupBidModifiers', + full_name='google.ads.googleads.v5.services.AdGroupBidModifierService.MutateAdGroupBidModifiers', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPBIDMODIFIERSREQUEST, + output_type=_MUTATEADGROUPBIDMODIFIERSRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/adGroupBidModifiers:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPBIDMODIFIERSERVICE) + +DESCRIPTOR.services_by_name['AdGroupBidModifierService'] = _ADGROUPBIDMODIFIERSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2_grpc.py new file mode 100644 index 000000000..7974e6031 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_bid_modifier_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_bid_modifier_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2 + + +class AdGroupBidModifierServiceStub(object): + """Proto file describing the Ad Group Bid Modifier service. + + Service to manage ad group bid modifiers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupBidModifier = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupBidModifierService/GetAdGroupBidModifier', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.GetAdGroupBidModifierRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.AdGroupBidModifier.FromString, + ) + self.MutateAdGroupBidModifiers = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupBidModifierService/MutateAdGroupBidModifiers', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersResponse.FromString, + ) + + +class AdGroupBidModifierServiceServicer(object): + """Proto file describing the Ad Group Bid Modifier service. + + Service to manage ad group bid modifiers. + """ + + def GetAdGroupBidModifier(self, request, context): + """Returns the requested ad group bid modifier in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupBidModifiers(self, request, context): + """Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupBidModifierServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupBidModifier': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupBidModifier, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.GetAdGroupBidModifierRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.AdGroupBidModifier.SerializeToString, + ), + 'MutateAdGroupBidModifiers': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupBidModifiers, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupBidModifierService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupBidModifierService(object): + """Proto file describing the Ad Group Bid Modifier service. + + Service to manage ad group bid modifiers. + """ + + @staticmethod + def GetAdGroupBidModifier(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupBidModifierService/GetAdGroupBidModifier', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.GetAdGroupBidModifierRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.AdGroupBidModifier.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupBidModifiers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupBidModifierService/MutateAdGroupBidModifiers', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2.py new file mode 100644 index 000000000..a728b3ccd --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2.py @@ -0,0 +1,393 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_criterion_label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_criterion_label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB!AdGroupCriterionLabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nMgoogle/ads/googleads_v5/proto/services/ad_group_criterion_label_service.proto\x12 google.ads.googleads.v5.services\x1a\x46google/ads/googleads_v5/proto/resources/ad_group_criterion_label.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"p\n\x1fGetAdGroupCriterionLabelRequest\x12M\n\rresource_name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.googleads.googleapis.com/AdGroupCriterionLabel\"\xca\x01\n#MutateAdGroupCriterionLabelsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12Y\n\noperations\x18\x02 \x03(\x0b\x32@.google.ads.googleads.v5.services.AdGroupCriterionLabelOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x8b\x01\n\x1e\x41\x64GroupCriterionLabelOperation\x12J\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x38.google.ads.googleads.v5.resources.AdGroupCriterionLabelH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"\xaf\x01\n$MutateAdGroupCriterionLabelsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12T\n\x07results\x18\x02 \x03(\x0b\x32\x43.google.ads.googleads.v5.services.MutateAdGroupCriterionLabelResult\":\n!MutateAdGroupCriterionLabelResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xb8\x04\n\x1c\x41\x64GroupCriterionLabelService\x12\xe9\x01\n\x18GetAdGroupCriterionLabel\x12\x41.google.ads.googleads.v5.services.GetAdGroupCriterionLabelRequest\x1a\x38.google.ads.googleads.v5.resources.AdGroupCriterionLabel\"P\x82\xd3\xe4\x93\x02:\x12\x38/v5/{resource_name=customers/*/adGroupCriterionLabels/*}\xda\x41\rresource_name\x12\x8e\x02\n\x1cMutateAdGroupCriterionLabels\x12\x45.google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest\x1a\x46.google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsResponse\"_\x82\xd3\xe4\x93\x02@\";/v5/customers/{customer_id=*}/adGroupCriterionLabels:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x88\x02\n$com.google.ads.googleads.v5.servicesB!AdGroupCriterionLabelServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPCRITERIONLABELREQUEST = _descriptor.Descriptor( + name='GetAdGroupCriterionLabelRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupCriterionLabelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupCriterionLabelRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A0\n.googleads.googleapis.com/AdGroupCriterionLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=327, + serialized_end=439, +) + + +_MUTATEADGROUPCRITERIONLABELSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupCriterionLabelsRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=442, + serialized_end=644, +) + + +_ADGROUPCRITERIONLABELOPERATION = _descriptor.Descriptor( + name='AdGroupCriterionLabelOperation', + full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=647, + serialized_end=786, +) + + +_MUTATEADGROUPCRITERIONLABELSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupCriterionLabelsResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=789, + serialized_end=964, +) + + +_MUTATEADGROUPCRITERIONLABELRESULT = _descriptor.Descriptor( + name='MutateAdGroupCriterionLabelResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionLabelResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=966, + serialized_end=1024, +) + +_MUTATEADGROUPCRITERIONLABELSREQUEST.fields_by_name['operations'].message_type = _ADGROUPCRITERIONLABELOPERATION +_ADGROUPCRITERIONLABELOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2._ADGROUPCRITERIONLABEL +_ADGROUPCRITERIONLABELOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONLABELOPERATION.fields_by_name['create']) +_ADGROUPCRITERIONLABELOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPCRITERIONLABELOPERATION.oneofs_by_name['operation'] +_ADGROUPCRITERIONLABELOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONLABELOPERATION.fields_by_name['remove']) +_ADGROUPCRITERIONLABELOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPCRITERIONLABELOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPCRITERIONLABELSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPCRITERIONLABELSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPCRITERIONLABELRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupCriterionLabelRequest'] = _GETADGROUPCRITERIONLABELREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupCriterionLabelsRequest'] = _MUTATEADGROUPCRITERIONLABELSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupCriterionLabelOperation'] = _ADGROUPCRITERIONLABELOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupCriterionLabelsResponse'] = _MUTATEADGROUPCRITERIONLABELSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupCriterionLabelResult'] = _MUTATEADGROUPCRITERIONLABELRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupCriterionLabelRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupCriterionLabelRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPCRITERIONLABELREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_label_service_pb2' + , + '__doc__': """Request message for [AdGroupCriterionLabelService.GetAdGroupCriterionL + abel][google.ads.googleads.v5.services.AdGroupCriterionLabelService.Ge + tAdGroupCriterionLabel]. + + Attributes: + resource_name: + Required. The resource name of the ad group criterion label to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupCriterionLabelRequest) + }) +_sym_db.RegisterMessage(GetAdGroupCriterionLabelRequest) + +MutateAdGroupCriterionLabelsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriterionLabelsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIONLABELSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_label_service_pb2' + , + '__doc__': """Request message for [AdGroupCriterionLabelService.MutateAdGroupCriteri + onLabels][google.ads.googleads.v5.services.AdGroupCriterionLabelServic + e.MutateAdGroupCriterionLabels]. + + Attributes: + customer_id: + Required. ID of the customer whose ad group criterion labels + are being modified. + operations: + Required. The list of operations to perform on ad group + criterion labels. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupCriterionLabelsRequest) + +AdGroupCriterionLabelOperation = _reflection.GeneratedProtocolMessageType('AdGroupCriterionLabelOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERIONLABELOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_label_service_pb2' + , + '__doc__': """A single operation (create, remove) on an ad group criterion label. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group label. + remove: + Remove operation: A resource name for the ad group criterion + label being removed, in this format: ``customers/{customer_id + }/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_i + d}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupCriterionLabelOperation) + }) +_sym_db.RegisterMessage(AdGroupCriterionLabelOperation) + +MutateAdGroupCriterionLabelsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriterionLabelsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIONLABELSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_label_service_pb2' + , + '__doc__': """Response message for an ad group criterion labels mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriterionLabelsResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupCriterionLabelsResponse) + +MutateAdGroupCriterionLabelResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriterionLabelResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIONLABELRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_label_service_pb2' + , + '__doc__': """The result for an ad group criterion label mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriterionLabelResult) + }) +_sym_db.RegisterMessage(MutateAdGroupCriterionLabelResult) + + +DESCRIPTOR._options = None +_GETADGROUPCRITERIONLABELREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPCRITERIONLABELSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPCRITERIONLABELSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPCRITERIONLABELSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupCriterionLabelService', + full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1027, + serialized_end=1595, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupCriterionLabel', + full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelService.GetAdGroupCriterionLabel', + index=0, + containing_service=None, + input_type=_GETADGROUPCRITERIONLABELREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2._ADGROUPCRITERIONLABEL, + serialized_options=b'\202\323\344\223\002:\0228/v5/{resource_name=customers/*/adGroupCriterionLabels/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupCriterionLabels', + full_name='google.ads.googleads.v5.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPCRITERIONLABELSREQUEST, + output_type=_MUTATEADGROUPCRITERIONLABELSRESPONSE, + serialized_options=b'\202\323\344\223\002@\";/v5/customers/{customer_id=*}/adGroupCriterionLabels:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPCRITERIONLABELSERVICE) + +DESCRIPTOR.services_by_name['AdGroupCriterionLabelService'] = _ADGROUPCRITERIONLABELSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2_grpc.py new file mode 100644 index 000000000..ceb33b4d7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_label_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_criterion_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2 + + +class AdGroupCriterionLabelServiceStub(object): + """Proto file describing the Ad Group Criterion Label service. + + Service to manage labels on ad group criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupCriterionLabel = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupCriterionLabelService/GetAdGroupCriterionLabel', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.GetAdGroupCriterionLabelRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2.AdGroupCriterionLabel.FromString, + ) + self.MutateAdGroupCriterionLabels = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupCriterionLabelService/MutateAdGroupCriterionLabels', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsResponse.FromString, + ) + + +class AdGroupCriterionLabelServiceServicer(object): + """Proto file describing the Ad Group Criterion Label service. + + Service to manage labels on ad group criteria. + """ + + def GetAdGroupCriterionLabel(self, request, context): + """Returns the requested ad group criterion label in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupCriterionLabels(self, request, context): + """Creates and removes ad group criterion labels. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupCriterionLabelServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupCriterionLabel': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupCriterionLabel, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.GetAdGroupCriterionLabelRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2.AdGroupCriterionLabel.SerializeToString, + ), + 'MutateAdGroupCriterionLabels': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupCriterionLabels, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupCriterionLabelService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupCriterionLabelService(object): + """Proto file describing the Ad Group Criterion Label service. + + Service to manage labels on ad group criteria. + """ + + @staticmethod + def GetAdGroupCriterionLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupCriterionLabelService/GetAdGroupCriterionLabel', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.GetAdGroupCriterionLabelRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2.AdGroupCriterionLabel.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupCriterionLabels(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupCriterionLabelService/MutateAdGroupCriterionLabels', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.MutateAdGroupCriterionLabelsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2.py new file mode 100644 index 000000000..65a39530c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2.py @@ -0,0 +1,460 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_criterion_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_criterion_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034AdGroupCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/services/ad_group_criterion_service.proto\x12 google.ads.googleads.v5.services\x1a\x31google/ads/googleads_v5/proto/common/policy.proto\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a@google/ads/googleads_v5/proto/resources/ad_group_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"f\n\x1aGetAdGroupCriterionRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/AdGroupCriterion\"\xa9\x02\n\x1cMutateAdGroupCriteriaRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12T\n\noperations\x18\x02 \x03(\x0b\x32;.google.ads.googleads.v5.services.AdGroupCriterionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xd3\x02\n\x19\x41\x64GroupCriterionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12X\n\x1c\x65xempt_policy_violation_keys\x18\x05 \x03(\x0b\x32\x32.google.ads.googleads.v5.common.PolicyViolationKey\x12\x45\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.AdGroupCriterionH\x00\x12\x45\n\x06update\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.AdGroupCriterionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa3\x01\n\x1dMutateAdGroupCriteriaResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12O\n\x07results\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.services.MutateAdGroupCriterionResult\"\x86\x01\n\x1cMutateAdGroupCriterionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12O\n\x12\x61\x64_group_criterion\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.AdGroupCriterion2\x81\x04\n\x17\x41\x64GroupCriterionService\x12\xd3\x01\n\x13GetAdGroupCriterion\x12<.google.ads.googleads.v5.services.GetAdGroupCriterionRequest\x1a\x33.google.ads.googleads.v5.resources.AdGroupCriterion\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/adGroupCriteria/*}\xda\x41\rresource_name\x12\xf2\x01\n\x15MutateAdGroupCriteria\x12>.google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest\x1a?.google.ads.googleads.v5.services.MutateAdGroupCriteriaResponse\"X\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/adGroupCriteria:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1c\x41\x64GroupCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPCRITERIONREQUEST = _descriptor.Descriptor( + name='GetAdGroupCriterionRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/AdGroupCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=465, + serialized_end=567, +) + + +_MUTATEADGROUPCRITERIAREQUEST = _descriptor.Descriptor( + name='MutateAdGroupCriteriaRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=570, + serialized_end=867, +) + + +_ADGROUPCRITERIONOPERATION = _descriptor.Descriptor( + name='AdGroupCriterionOperation', + full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='exempt_policy_violation_keys', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.exempt_policy_violation_keys', index=1, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.create', index=2, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.update', index=3, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.remove', index=4, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupCriterionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=870, + serialized_end=1209, +) + + +_MUTATEADGROUPCRITERIARESPONSE = _descriptor.Descriptor( + name='MutateAdGroupCriteriaResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupCriteriaResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1212, + serialized_end=1375, +) + + +_MUTATEADGROUPCRITERIONRESULT = _descriptor.Descriptor( + name='MutateAdGroupCriterionResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.services.MutateAdGroupCriterionResult.ad_group_criterion', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1378, + serialized_end=1512, +) + +_MUTATEADGROUPCRITERIAREQUEST.fields_by_name['operations'].message_type = _ADGROUPCRITERIONOPERATION +_MUTATEADGROUPCRITERIAREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_ADGROUPCRITERIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPCRITERIONOPERATION.fields_by_name['exempt_policy_violation_keys'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_policy__pb2._POLICYVIOLATIONKEY +_ADGROUPCRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_ADGROUPCRITERIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['create']) +_ADGROUPCRITERIONOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['update']) +_ADGROUPCRITERIONOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['remove']) +_ADGROUPCRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPCRITERIARESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPCRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPCRITERIONRESULT +_MUTATEADGROUPCRITERIONRESULT.fields_by_name['ad_group_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +DESCRIPTOR.message_types_by_name['GetAdGroupCriterionRequest'] = _GETADGROUPCRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupCriteriaRequest'] = _MUTATEADGROUPCRITERIAREQUEST +DESCRIPTOR.message_types_by_name['AdGroupCriterionOperation'] = _ADGROUPCRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupCriteriaResponse'] = _MUTATEADGROUPCRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupCriterionResult'] = _MUTATEADGROUPCRITERIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupCriterionRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupCriterionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPCRITERIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_service_pb2' + , + '__doc__': """Request message for [AdGroupCriterionService.GetAdGroupCriterion][goog + le.ads.googleads.v5.services.AdGroupCriterionService.GetAdGroupCriteri + on]. + + Attributes: + resource_name: + Required. The resource name of the criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupCriterionRequest) + }) +_sym_db.RegisterMessage(GetAdGroupCriterionRequest) + +MutateAdGroupCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriteriaRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIAREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_service_pb2' + , + '__doc__': """Request message for [AdGroupCriterionService.MutateAdGroupCriteria][go + ogle.ads.googleads.v5.services.AdGroupCriterionService.MutateAdGroupCr + iteria]. + + Attributes: + customer_id: + Required. ID of the customer whose criteria are being + modified. + operations: + Required. The list of operations to perform on individual + criteria. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriteriaRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupCriteriaRequest) + +AdGroupCriterionOperation = _reflection.GeneratedProtocolMessageType('AdGroupCriterionOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPCRITERIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_service_pb2' + , + '__doc__': """A single operation (create, remove, update) on an ad group criterion. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + exempt_policy_violation_keys: + The list of policy violation keys that should not cause a + PolicyViolationError to be reported. Not all policy violations + are exemptable, please refer to the is\_exemptible field in + the returned PolicyViolationError. Resources violating these + polices will be saved, but will not be eligible to serve. They + may begin serving at a later time due to a change in policies, + re-review of the resource, or a change in advertiser + certificates. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + criterion. + update: + Update operation: The criterion is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed criterion is + expected, in this format: ``customers/{customer_id}/adGroupCr + iteria/{ad_group_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupCriterionOperation) + }) +_sym_db.RegisterMessage(AdGroupCriterionOperation) + +MutateAdGroupCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriteriaResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_service_pb2' + , + '__doc__': """Response message for an ad group criterion mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriteriaResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupCriteriaResponse) + +MutateAdGroupCriterionResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriterionResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPCRITERIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_service_pb2' + , + '__doc__': """The result for the criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + ad_group_criterion: + The mutated ad group criterion with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupCriterionResult) + }) +_sym_db.RegisterMessage(MutateAdGroupCriterionResult) + + +DESCRIPTOR._options = None +_GETADGROUPCRITERIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPCRITERIAREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPCRITERIAREQUEST.fields_by_name['operations']._options = None + +_ADGROUPCRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupCriterionService', + full_name='google.ads.googleads.v5.services.AdGroupCriterionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1515, + serialized_end=2028, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupCriterion', + full_name='google.ads.googleads.v5.services.AdGroupCriterionService.GetAdGroupCriterion', + index=0, + containing_service=None, + input_type=_GETADGROUPCRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/adGroupCriteria/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupCriteria', + full_name='google.ads.googleads.v5.services.AdGroupCriterionService.MutateAdGroupCriteria', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPCRITERIAREQUEST, + output_type=_MUTATEADGROUPCRITERIARESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/adGroupCriteria:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPCRITERIONSERVICE) + +DESCRIPTOR.services_by_name['AdGroupCriterionService'] = _ADGROUPCRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..d8582e468 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2 + + +class AdGroupCriterionServiceStub(object): + """Proto file describing the Ad Group Criterion service. + + Service to manage ad group criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupCriterion = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupCriterionService/GetAdGroupCriterion', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.GetAdGroupCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2.AdGroupCriterion.FromString, + ) + self.MutateAdGroupCriteria = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupCriterionService/MutateAdGroupCriteria', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaResponse.FromString, + ) + + +class AdGroupCriterionServiceServicer(object): + """Proto file describing the Ad Group Criterion service. + + Service to manage ad group criteria. + """ + + def GetAdGroupCriterion(self, request, context): + """Returns the requested criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupCriteria(self, request, context): + """Creates, updates, or removes criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupCriterion, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.GetAdGroupCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2.AdGroupCriterion.SerializeToString, + ), + 'MutateAdGroupCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupCriteria, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupCriterionService(object): + """Proto file describing the Ad Group Criterion service. + + Service to manage ad group criteria. + """ + + @staticmethod + def GetAdGroupCriterion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupCriterionService/GetAdGroupCriterion', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.GetAdGroupCriterionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2.AdGroupCriterion.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupCriteria(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupCriterionService/MutateAdGroupCriteria', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2.py new file mode 100644 index 000000000..875b5412f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_criterion_simulation_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_criterion_simulation_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB&AdGroupCriterionSimulationServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nRgoogle/ads/googleads_v5/proto/services/ad_group_criterion_simulation_service.proto\x12 google.ads.googleads.v5.services\x1aKgoogle/ads/googleads_v5/proto/resources/ad_group_criterion_simulation.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"z\n$GetAdGroupCriterionSimulationRequest\x12R\n\rresource_name\x18\x01 \x01(\tB;\xe0\x41\x02\xfa\x41\x35\n3googleads.googleapis.com/AdGroupCriterionSimulation2\xc0\x02\n!AdGroupCriterionSimulationService\x12\xfd\x01\n\x1dGetAdGroupCriterionSimulation\x12\x46.google.ads.googleads.v5.services.GetAdGroupCriterionSimulationRequest\x1a=.google.ads.googleads.v5.resources.AdGroupCriterionSimulation\"U\x82\xd3\xe4\x93\x02?\x12=/v5/{resource_name=customers/*/adGroupCriterionSimulations/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8d\x02\n$com.google.ads.googleads.v5.servicesB&AdGroupCriterionSimulationServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPCRITERIONSIMULATIONREQUEST = _descriptor.Descriptor( + name='GetAdGroupCriterionSimulationRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupCriterionSimulationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupCriterionSimulationRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A5\n3googleads.googleapis.com/AdGroupCriterionSimulation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=312, + serialized_end=434, +) + +DESCRIPTOR.message_types_by_name['GetAdGroupCriterionSimulationRequest'] = _GETADGROUPCRITERIONSIMULATIONREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupCriterionSimulationRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupCriterionSimulationRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPCRITERIONSIMULATIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_criterion_simulation_service_pb2' + , + '__doc__': """Request message for [AdGroupCriterionSimulationService.GetAdGroupCrite + rionSimulation][google.ads.googleads.v5.services.AdGroupCriterionSimul + ationService.GetAdGroupCriterionSimulation]. + + Attributes: + resource_name: + Required. The resource name of the ad group criterion + simulation to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupCriterionSimulationRequest) + }) +_sym_db.RegisterMessage(GetAdGroupCriterionSimulationRequest) + + +DESCRIPTOR._options = None +_GETADGROUPCRITERIONSIMULATIONREQUEST.fields_by_name['resource_name']._options = None + +_ADGROUPCRITERIONSIMULATIONSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupCriterionSimulationService', + full_name='google.ads.googleads.v5.services.AdGroupCriterionSimulationService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=437, + serialized_end=757, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupCriterionSimulation', + full_name='google.ads.googleads.v5.services.AdGroupCriterionSimulationService.GetAdGroupCriterionSimulation', + index=0, + containing_service=None, + input_type=_GETADGROUPCRITERIONSIMULATIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2._ADGROUPCRITERIONSIMULATION, + serialized_options=b'\202\323\344\223\002?\022=/v5/{resource_name=customers/*/adGroupCriterionSimulations/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPCRITERIONSIMULATIONSERVICE) + +DESCRIPTOR.services_by_name['AdGroupCriterionSimulationService'] = _ADGROUPCRITERIONSIMULATIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2_grpc.py new file mode 100644 index 000000000..b72a97fc5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_criterion_simulation_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_criterion_simulation_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__simulation__service__pb2 + + +class AdGroupCriterionSimulationServiceStub(object): + """Proto file describing the AdGroupCriterionSimulation service. + + Service to fetch ad group criterion simulations. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupCriterionSimulation = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupCriterionSimulationService/GetAdGroupCriterionSimulation', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__simulation__service__pb2.GetAdGroupCriterionSimulationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2.AdGroupCriterionSimulation.FromString, + ) + + +class AdGroupCriterionSimulationServiceServicer(object): + """Proto file describing the AdGroupCriterionSimulation service. + + Service to fetch ad group criterion simulations. + """ + + def GetAdGroupCriterionSimulation(self, request, context): + """Returns the requested ad group criterion simulation in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupCriterionSimulationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupCriterionSimulation': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupCriterionSimulation, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__simulation__service__pb2.GetAdGroupCriterionSimulationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2.AdGroupCriterionSimulation.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupCriterionSimulationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupCriterionSimulationService(object): + """Proto file describing the AdGroupCriterionSimulation service. + + Service to fetch ad group criterion simulations. + """ + + @staticmethod + def GetAdGroupCriterionSimulation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupCriterionSimulationService/GetAdGroupCriterionSimulation', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__simulation__service__pb2.GetAdGroupCriterionSimulationRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2.AdGroupCriterionSimulation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2.py new file mode 100644 index 000000000..a0c7396e6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2.py @@ -0,0 +1,420 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_extension_setting_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_extension_setting_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB#AdGroupExtensionSettingServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/services/ad_group_extension_setting_service.proto\x12 google.ads.googleads.v5.services\x1aHgoogle/ads/googleads_v5/proto/resources/ad_group_extension_setting.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"t\n!GetAdGroupExtensionSettingRequest\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0googleads.googleapis.com/AdGroupExtensionSetting\"\xce\x01\n%MutateAdGroupExtensionSettingsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12[\n\noperations\x18\x02 \x03(\x0b\x32\x42.google.ads.googleads.v5.services.AdGroupExtensionSettingOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x8e\x02\n AdGroupExtensionSettingOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12L\n\x06\x63reate\x18\x01 \x01(\x0b\x32:.google.ads.googleads.v5.resources.AdGroupExtensionSettingH\x00\x12L\n\x06update\x18\x02 \x01(\x0b\x32:.google.ads.googleads.v5.resources.AdGroupExtensionSettingH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xb3\x01\n&MutateAdGroupExtensionSettingsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12V\n\x07results\x18\x02 \x03(\x0b\x32\x45.google.ads.googleads.v5.services.MutateAdGroupExtensionSettingResult\"<\n#MutateAdGroupExtensionSettingResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xca\x04\n\x1e\x41\x64GroupExtensionSettingService\x12\xf1\x01\n\x1aGetAdGroupExtensionSetting\x12\x43.google.ads.googleads.v5.services.GetAdGroupExtensionSettingRequest\x1a:.google.ads.googleads.v5.resources.AdGroupExtensionSetting\"R\x82\xd3\xe4\x93\x02<\x12:/v5/{resource_name=customers/*/adGroupExtensionSettings/*}\xda\x41\rresource_name\x12\x96\x02\n\x1eMutateAdGroupExtensionSettings\x12G.google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest\x1aH.google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsResponse\"a\x82\xd3\xe4\x93\x02\x42\"=/v5/customers/{customer_id=*}/adGroupExtensionSettings:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8a\x02\n$com.google.ads.googleads.v5.servicesB#AdGroupExtensionSettingServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPEXTENSIONSETTINGREQUEST = _descriptor.Descriptor( + name='GetAdGroupExtensionSettingRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupExtensionSettingRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupExtensionSettingRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A2\n0googleads.googleapis.com/AdGroupExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=365, + serialized_end=481, +) + + +_MUTATEADGROUPEXTENSIONSETTINGSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupExtensionSettingsRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=484, + serialized_end=690, +) + + +_ADGROUPEXTENSIONSETTINGOPERATION = _descriptor.Descriptor( + name='AdGroupExtensionSettingOperation', + full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=693, + serialized_end=963, +) + + +_MUTATEADGROUPEXTENSIONSETTINGSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupExtensionSettingsResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=966, + serialized_end=1145, +) + + +_MUTATEADGROUPEXTENSIONSETTINGRESULT = _descriptor.Descriptor( + name='MutateAdGroupExtensionSettingResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupExtensionSettingResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1147, + serialized_end=1207, +) + +_MUTATEADGROUPEXTENSIONSETTINGSREQUEST.fields_by_name['operations'].message_type = _ADGROUPEXTENSIONSETTINGOPERATION +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2._ADGROUPEXTENSIONSETTING +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2._ADGROUPEXTENSIONSETTING +_ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['create']) +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['update']) +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['remove']) +_ADGROUPEXTENSIONSETTINGOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPEXTENSIONSETTINGSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPEXTENSIONSETTINGSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPEXTENSIONSETTINGRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupExtensionSettingRequest'] = _GETADGROUPEXTENSIONSETTINGREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupExtensionSettingsRequest'] = _MUTATEADGROUPEXTENSIONSETTINGSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupExtensionSettingOperation'] = _ADGROUPEXTENSIONSETTINGOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupExtensionSettingsResponse'] = _MUTATEADGROUPEXTENSIONSETTINGSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupExtensionSettingResult'] = _MUTATEADGROUPEXTENSIONSETTINGRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupExtensionSettingRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupExtensionSettingRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPEXTENSIONSETTINGREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_extension_setting_service_pb2' + , + '__doc__': """Request message for [AdGroupExtensionSettingService.GetAdGroupExtensio + nSetting][google.ads.googleads.v5.services.AdGroupExtensionSettingServ + ice.GetAdGroupExtensionSetting]. + + Attributes: + resource_name: + Required. The resource name of the ad group extension setting + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupExtensionSettingRequest) + }) +_sym_db.RegisterMessage(GetAdGroupExtensionSettingRequest) + +MutateAdGroupExtensionSettingsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupExtensionSettingsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPEXTENSIONSETTINGSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_extension_setting_service_pb2' + , + '__doc__': """Request message for [AdGroupExtensionSettingService.MutateAdGroupExten + sionSettings][google.ads.googleads.v5.services.AdGroupExtensionSetting + Service.MutateAdGroupExtensionSettings]. + + Attributes: + customer_id: + Required. The ID of the customer whose ad group extension + settings are being modified. + operations: + Required. The list of operations to perform on individual ad + group extension settings. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupExtensionSettingsRequest) + +AdGroupExtensionSettingOperation = _reflection.GeneratedProtocolMessageType('AdGroupExtensionSettingOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPEXTENSIONSETTINGOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_extension_setting_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an ad group extension + setting. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group extension setting. + update: + Update operation: The ad group extension setting is expected + to have a valid resource name. + remove: + Remove operation: A resource name for the removed ad group + extension setting is expected, in this format: ``customers/{c + ustomer_id}/adGroupExtensionSettings/{ad_group_id}~{extension_ + type}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupExtensionSettingOperation) + }) +_sym_db.RegisterMessage(AdGroupExtensionSettingOperation) + +MutateAdGroupExtensionSettingsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupExtensionSettingsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPEXTENSIONSETTINGSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_extension_setting_service_pb2' + , + '__doc__': """Response message for an ad group extension setting mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupExtensionSettingsResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupExtensionSettingsResponse) + +MutateAdGroupExtensionSettingResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupExtensionSettingResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPEXTENSIONSETTINGRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_extension_setting_service_pb2' + , + '__doc__': """The result for the ad group extension setting mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupExtensionSettingResult) + }) +_sym_db.RegisterMessage(MutateAdGroupExtensionSettingResult) + + +DESCRIPTOR._options = None +_GETADGROUPEXTENSIONSETTINGREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPEXTENSIONSETTINGSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPEXTENSIONSETTINGSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPEXTENSIONSETTINGSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupExtensionSettingService', + full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1210, + serialized_end=1796, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupExtensionSetting', + full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingService.GetAdGroupExtensionSetting', + index=0, + containing_service=None, + input_type=_GETADGROUPEXTENSIONSETTINGREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2._ADGROUPEXTENSIONSETTING, + serialized_options=b'\202\323\344\223\002<\022:/v5/{resource_name=customers/*/adGroupExtensionSettings/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupExtensionSettings', + full_name='google.ads.googleads.v5.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPEXTENSIONSETTINGSREQUEST, + output_type=_MUTATEADGROUPEXTENSIONSETTINGSRESPONSE, + serialized_options=b'\202\323\344\223\002B\"=/v5/customers/{customer_id=*}/adGroupExtensionSettings:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPEXTENSIONSETTINGSERVICE) + +DESCRIPTOR.services_by_name['AdGroupExtensionSettingService'] = _ADGROUPEXTENSIONSETTINGSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2_grpc.py new file mode 100644 index 000000000..44a50bb63 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_extension_setting_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2 + + +class AdGroupExtensionSettingServiceStub(object): + """Proto file describing the AdGroupExtensionSetting service. + + Service to manage ad group extension settings. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupExtensionSetting = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupExtensionSettingService/GetAdGroupExtensionSetting', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.GetAdGroupExtensionSettingRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2.AdGroupExtensionSetting.FromString, + ) + self.MutateAdGroupExtensionSettings = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupExtensionSettingService/MutateAdGroupExtensionSettings', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsResponse.FromString, + ) + + +class AdGroupExtensionSettingServiceServicer(object): + """Proto file describing the AdGroupExtensionSetting service. + + Service to manage ad group extension settings. + """ + + def GetAdGroupExtensionSetting(self, request, context): + """Returns the requested ad group extension setting in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupExtensionSettings(self, request, context): + """Creates, updates, or removes ad group extension settings. Operation + statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupExtensionSettingServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupExtensionSetting': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupExtensionSetting, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.GetAdGroupExtensionSettingRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2.AdGroupExtensionSetting.SerializeToString, + ), + 'MutateAdGroupExtensionSettings': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupExtensionSettings, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupExtensionSettingService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupExtensionSettingService(object): + """Proto file describing the AdGroupExtensionSetting service. + + Service to manage ad group extension settings. + """ + + @staticmethod + def GetAdGroupExtensionSetting(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupExtensionSettingService/GetAdGroupExtensionSetting', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.GetAdGroupExtensionSettingRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2.AdGroupExtensionSetting.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupExtensionSettings(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupExtensionSettingService/MutateAdGroupExtensionSettings', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.MutateAdGroupExtensionSettingsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2.py new file mode 100644 index 000000000..cc04aa213 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_feed_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_feed_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\027AdGroupFeedServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/ad_group_feed_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a;google/ads/googleads_v5/proto/resources/ad_group_feed.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\\\n\x15GetAdGroupFeedRequest\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$googleads.googleapis.com/AdGroupFeed\"\xa1\x02\n\x19MutateAdGroupFeedsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\noperations\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.AdGroupFeedOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xea\x01\n\x14\x41\x64GroupFeedOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12@\n\x06\x63reate\x18\x01 \x01(\x0b\x32..google.ads.googleads.v5.resources.AdGroupFeedH\x00\x12@\n\x06update\x18\x02 \x01(\x0b\x32..google.ads.googleads.v5.resources.AdGroupFeedH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x9b\x01\n\x1aMutateAdGroupFeedsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12J\n\x07results\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.MutateAdGroupFeedResult\"w\n\x17MutateAdGroupFeedResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x45\n\rad_group_feed\x18\x02 \x01(\x0b\x32..google.ads.googleads.v5.resources.AdGroupFeed2\xde\x03\n\x12\x41\x64GroupFeedService\x12\xc1\x01\n\x0eGetAdGroupFeed\x12\x37.google.ads.googleads.v5.services.GetAdGroupFeedRequest\x1a..google.ads.googleads.v5.resources.AdGroupFeed\"F\x82\xd3\xe4\x93\x02\x30\x12./v5/{resource_name=customers/*/adGroupFeeds/*}\xda\x41\rresource_name\x12\xe6\x01\n\x12MutateAdGroupFeeds\x12;.google.ads.googleads.v5.services.MutateAdGroupFeedsRequest\x1a<.google.ads.googleads.v5.services.MutateAdGroupFeedsResponse\"U\x82\xd3\xe4\x93\x02\x36\"1/v5/customers/{customer_id=*}/adGroupFeeds:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfe\x01\n$com.google.ads.googleads.v5.servicesB\x17\x41\x64GroupFeedServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPFEEDREQUEST = _descriptor.Descriptor( + name='GetAdGroupFeedRequest', + full_name='google.ads.googleads.v5.services.GetAdGroupFeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdGroupFeedRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A&\n$googleads.googleapis.com/AdGroupFeed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=404, + serialized_end=496, +) + + +_MUTATEADGROUPFEEDSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupFeedsRequest', + full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=499, + serialized_end=788, +) + + +_ADGROUPFEEDOPERATION = _descriptor.Descriptor( + name='AdGroupFeedOperation', + full_name='google.ads.googleads.v5.services.AdGroupFeedOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdGroupFeedOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.AdGroupFeedOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdGroupFeedOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.AdGroupFeedOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdGroupFeedOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=791, + serialized_end=1025, +) + + +_MUTATEADGROUPFEEDSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupFeedsResponse', + full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1028, + serialized_end=1183, +) + + +_MUTATEADGROUPFEEDRESULT = _descriptor.Descriptor( + name='MutateAdGroupFeedResult', + full_name='google.ads.googleads.v5.services.MutateAdGroupFeedResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed', full_name='google.ads.googleads.v5.services.MutateAdGroupFeedResult.ad_group_feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1185, + serialized_end=1304, +) + +_MUTATEADGROUPFEEDSREQUEST.fields_by_name['operations'].message_type = _ADGROUPFEEDOPERATION +_MUTATEADGROUPFEEDSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_ADGROUPFEEDOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPFEEDOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2._ADGROUPFEED +_ADGROUPFEEDOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2._ADGROUPFEED +_ADGROUPFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPFEEDOPERATION.fields_by_name['create']) +_ADGROUPFEEDOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPFEEDOPERATION.oneofs_by_name['operation'] +_ADGROUPFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPFEEDOPERATION.fields_by_name['update']) +_ADGROUPFEEDOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPFEEDOPERATION.oneofs_by_name['operation'] +_ADGROUPFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPFEEDOPERATION.fields_by_name['remove']) +_ADGROUPFEEDOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPFEEDOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPFEEDSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEADGROUPFEEDSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPFEEDRESULT +_MUTATEADGROUPFEEDRESULT.fields_by_name['ad_group_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2._ADGROUPFEED +DESCRIPTOR.message_types_by_name['GetAdGroupFeedRequest'] = _GETADGROUPFEEDREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupFeedsRequest'] = _MUTATEADGROUPFEEDSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupFeedOperation'] = _ADGROUPFEEDOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupFeedsResponse'] = _MUTATEADGROUPFEEDSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupFeedResult'] = _MUTATEADGROUPFEEDRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupFeedRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupFeedRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADGROUPFEEDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_feed_service_pb2' + , + '__doc__': """Request message for [AdGroupFeedService.GetAdGroupFeed][google.ads.goo + gleads.v5.services.AdGroupFeedService.GetAdGroupFeed]. + + Attributes: + resource_name: + Required. The resource name of the ad group feed to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdGroupFeedRequest) + }) +_sym_db.RegisterMessage(GetAdGroupFeedRequest) + +MutateAdGroupFeedsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupFeedsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPFEEDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_feed_service_pb2' + , + '__doc__': """Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads + .googleads.v5.services.AdGroupFeedService.MutateAdGroupFeeds]. + + Attributes: + customer_id: + Required. The ID of the customer whose ad group feeds are + being modified. + operations: + Required. The list of operations to perform on individual ad + group feeds. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupFeedsRequest) + }) +_sym_db.RegisterMessage(MutateAdGroupFeedsRequest) + +AdGroupFeedOperation = _reflection.GeneratedProtocolMessageType('AdGroupFeedOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADGROUPFEEDOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_feed_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an ad group feed. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group feed. + update: + Update operation: The ad group feed is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed ad group + feed is expected, in this format: ``customers/{customer_id}/a + dGroupFeeds/{ad_group_id}~{feed_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdGroupFeedOperation) + }) +_sym_db.RegisterMessage(AdGroupFeedOperation) + +MutateAdGroupFeedsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupFeedsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPFEEDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_feed_service_pb2' + , + '__doc__': """Response message for an ad group feed mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupFeedsResponse) + }) +_sym_db.RegisterMessage(MutateAdGroupFeedsResponse) + +MutateAdGroupFeedResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupFeedResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADGROUPFEEDRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_group_feed_service_pb2' + , + '__doc__': """The result for the ad group feed mutate. + + Attributes: + resource_name: + Returned for successful operations. + ad_group_feed: + The mutated ad group feed with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdGroupFeedResult) + }) +_sym_db.RegisterMessage(MutateAdGroupFeedResult) + + +DESCRIPTOR._options = None +_GETADGROUPFEEDREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADGROUPFEEDSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADGROUPFEEDSREQUEST.fields_by_name['operations']._options = None + +_ADGROUPFEEDSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupFeedService', + full_name='google.ads.googleads.v5.services.AdGroupFeedService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1307, + serialized_end=1785, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupFeed', + full_name='google.ads.googleads.v5.services.AdGroupFeedService.GetAdGroupFeed', + index=0, + containing_service=None, + input_type=_GETADGROUPFEEDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2._ADGROUPFEED, + serialized_options=b'\202\323\344\223\0020\022./v5/{resource_name=customers/*/adGroupFeeds/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupFeeds', + full_name='google.ads.googleads.v5.services.AdGroupFeedService.MutateAdGroupFeeds', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPFEEDSREQUEST, + output_type=_MUTATEADGROUPFEEDSRESPONSE, + serialized_options=b'\202\323\344\223\0026\"1/v5/customers/{customer_id=*}/adGroupFeeds:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPFEEDSERVICE) + +DESCRIPTOR.services_by_name['AdGroupFeedService'] = _ADGROUPFEEDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2_grpc.py new file mode 100644 index 000000000..1e7d30f65 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_feed_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_group_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2 + + +class AdGroupFeedServiceStub(object): + """Proto file describing the AdGroupFeed service. + + Service to manage ad group feeds. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupFeed = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupFeedService/GetAdGroupFeed', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.GetAdGroupFeedRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2.AdGroupFeed.FromString, + ) + self.MutateAdGroupFeeds = channel.unary_unary( + '/google.ads.googleads.v5.services.AdGroupFeedService/MutateAdGroupFeeds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsResponse.FromString, + ) + + +class AdGroupFeedServiceServicer(object): + """Proto file describing the AdGroupFeed service. + + Service to manage ad group feeds. + """ + + def GetAdGroupFeed(self, request, context): + """Returns the requested ad group feed in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupFeeds(self, request, context): + """Creates, updates, or removes ad group feeds. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupFeedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupFeed': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupFeed, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.GetAdGroupFeedRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2.AdGroupFeed.SerializeToString, + ), + 'MutateAdGroupFeeds': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupFeeds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdGroupFeedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdGroupFeedService(object): + """Proto file describing the AdGroupFeed service. + + Service to manage ad group feeds. + """ + + @staticmethod + def GetAdGroupFeed(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupFeedService/GetAdGroupFeed', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.GetAdGroupFeedRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2.AdGroupFeed.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAdGroupFeeds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdGroupFeedService/MutateAdGroupFeeds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.MutateAdGroupFeedsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_group_label_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_group_label_service_pb2.py new file mode 100644 index 000000000..cfb5a9c98 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_group_label_service_pb2.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_group_label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import ad_group_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_group_label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030AdGroupLabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/ad_group_label_service.proto\x12 google.ads.googleads.v5.services\x1agoogle/ads/googleads_v5/proto/resources/ad_schedule_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetAdScheduleViewRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/AdScheduleView2\x84\x02\n\x15\x41\x64ScheduleViewService\x12\xcd\x01\n\x11GetAdScheduleView\x12:.google.ads.googleads.v5.services.GetAdScheduleViewRequest\x1a\x31.google.ads.googleads.v5.resources.AdScheduleView\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/adScheduleViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x41\x64ScheduleViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETADSCHEDULEVIEWREQUEST = _descriptor.Descriptor( + name='GetAdScheduleViewRequest', + full_name='google.ads.googleads.v5.services.GetAdScheduleViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdScheduleViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/AdScheduleView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=384, +) + +DESCRIPTOR.message_types_by_name['GetAdScheduleViewRequest'] = _GETADSCHEDULEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdScheduleViewRequest = _reflection.GeneratedProtocolMessageType('GetAdScheduleViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADSCHEDULEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_schedule_view_service_pb2' + , + '__doc__': """Request message for [AdScheduleViewService.GetAdScheduleView][google.a + ds.googleads.v5.services.AdScheduleViewService.GetAdScheduleView]. + + Attributes: + resource_name: + Required. The resource name of the ad schedule view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdScheduleViewRequest) + }) +_sym_db.RegisterMessage(GetAdScheduleViewRequest) + + +DESCRIPTOR._options = None +_GETADSCHEDULEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_ADSCHEDULEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='AdScheduleViewService', + full_name='google.ads.googleads.v5.services.AdScheduleViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=387, + serialized_end=647, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdScheduleView', + full_name='google.ads.googleads.v5.services.AdScheduleViewService.GetAdScheduleView', + index=0, + containing_service=None, + input_type=_GETADSCHEDULEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2._ADSCHEDULEVIEW, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/adScheduleViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADSCHEDULEVIEWSERVICE) + +DESCRIPTOR.services_by_name['AdScheduleViewService'] = _ADSCHEDULEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_schedule_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_schedule_view_service_pb2_grpc.py new file mode 100644 index 000000000..5b2298b51 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_schedule_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_schedule_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2 +from google.ads.google_ads.v5.proto.services import ad_schedule_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__schedule__view__service__pb2 + + +class AdScheduleViewServiceStub(object): + """Proto file describing the AdSchedule View service. + + Service to fetch ad schedule views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdScheduleView = channel.unary_unary( + '/google.ads.googleads.v5.services.AdScheduleViewService/GetAdScheduleView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__schedule__view__service__pb2.GetAdScheduleViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2.AdScheduleView.FromString, + ) + + +class AdScheduleViewServiceServicer(object): + """Proto file describing the AdSchedule View service. + + Service to fetch ad schedule views. + """ + + def GetAdScheduleView(self, request, context): + """Returns the requested ad schedule view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdScheduleViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdScheduleView': grpc.unary_unary_rpc_method_handler( + servicer.GetAdScheduleView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__schedule__view__service__pb2.GetAdScheduleViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2.AdScheduleView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdScheduleViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdScheduleViewService(object): + """Proto file describing the AdSchedule View service. + + Service to fetch ad schedule views. + """ + + @staticmethod + def GetAdScheduleView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdScheduleViewService/GetAdScheduleView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__schedule__view__service__pb2.GetAdScheduleViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2.AdScheduleView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/ad_service_pb2.py b/google/ads/google_ads/v5/proto/services/ad_service_pb2.py new file mode 100644 index 000000000..4da789dbc --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_service_pb2.py @@ -0,0 +1,373 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/ad_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/ad_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\016AdServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n7google/ads/googleads_v5/proto/services/ad_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x30google/ads/googleads_v5/proto/resources/ad.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"J\n\x0cGetAdRequest\x12:\n\rresource_name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bgoogleads.googleapis.com/Ad\"\xdf\x01\n\x10MutateAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x46\n\noperations\x18\x02 \x03(\x0b\x32-.google.ads.googleads.v5.services.AdOperationB\x03\xe0\x41\x02\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\x84\x01\n\x0b\x41\x64Operation\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x37\n\x06update\x18\x01 \x01(\x0b\x32%.google.ads.googleads.v5.resources.AdH\x00\x42\x0b\n\toperation\"V\n\x11MutateAdsResponse\x12\x41\n\x07results\x18\x02 \x03(\x0b\x32\x30.google.ads.googleads.v5.services.MutateAdResult\"Z\n\x0eMutateAdResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x31\n\x02\x61\x64\x18\x02 \x01(\x0b\x32%.google.ads.googleads.v5.resources.Ad2\x8d\x03\n\tAdService\x12\x9d\x01\n\x05GetAd\x12..google.ads.googleads.v5.services.GetAdRequest\x1a%.google.ads.googleads.v5.resources.Ad\"=\x82\xd3\xe4\x93\x02\'\x12%/v5/{resource_name=customers/*/ads/*}\xda\x41\rresource_name\x12\xc2\x01\n\tMutateAds\x12\x32.google.ads.googleads.v5.services.MutateAdsRequest\x1a\x33.google.ads.googleads.v5.services.MutateAdsResponse\"L\x82\xd3\xe4\x93\x02-\"(/v5/customers/{customer_id=*}/ads:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xf5\x01\n$com.google.ads.googleads.v5.servicesB\x0e\x41\x64ServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETADREQUEST = _descriptor.Descriptor( + name='GetAdRequest', + full_name='google.ads.googleads.v5.services.GetAdRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetAdRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\035\n\033googleads.googleapis.com/Ad', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=357, + serialized_end=431, +) + + +_MUTATEADSREQUEST = _descriptor.Descriptor( + name='MutateAdsRequest', + full_name='google.ads.googleads.v5.services.MutateAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateAdsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateAdsRequest.response_content_type', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=434, + serialized_end=657, +) + + +_ADOPERATION = _descriptor.Descriptor( + name='AdOperation', + full_name='google.ads.googleads.v5.services.AdOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.AdOperation.update_mask', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.AdOperation.update', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.AdOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=660, + serialized_end=792, +) + + +_MUTATEADSRESPONSE = _descriptor.Descriptor( + name='MutateAdsResponse', + full_name='google.ads.googleads.v5.services.MutateAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateAdsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=794, + serialized_end=880, +) + + +_MUTATEADRESULT = _descriptor.Descriptor( + name='MutateAdResult', + full_name='google.ads.googleads.v5.services.MutateAdResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateAdResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad', full_name='google.ads.googleads.v5.services.MutateAdResult.ad', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=882, + serialized_end=972, +) + +_MUTATEADSREQUEST.fields_by_name['operations'].message_type = _ADOPERATION +_MUTATEADSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_ADOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD +_ADOPERATION.oneofs_by_name['operation'].fields.append( + _ADOPERATION.fields_by_name['update']) +_ADOPERATION.fields_by_name['update'].containing_oneof = _ADOPERATION.oneofs_by_name['operation'] +_MUTATEADSRESPONSE.fields_by_name['results'].message_type = _MUTATEADRESULT +_MUTATEADRESULT.fields_by_name['ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD +DESCRIPTOR.message_types_by_name['GetAdRequest'] = _GETADREQUEST +DESCRIPTOR.message_types_by_name['MutateAdsRequest'] = _MUTATEADSREQUEST +DESCRIPTOR.message_types_by_name['AdOperation'] = _ADOPERATION +DESCRIPTOR.message_types_by_name['MutateAdsResponse'] = _MUTATEADSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdResult'] = _MUTATEADRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdRequest = _reflection.GeneratedProtocolMessageType('GetAdRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETADREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_service_pb2' + , + '__doc__': """Request message for + [AdService.GetAd][google.ads.googleads.v5.services.AdService.GetAd]. + + Attributes: + resource_name: + Required. The resource name of the ad to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetAdRequest) + }) +_sym_db.RegisterMessage(GetAdRequest) + +MutateAdsRequest = _reflection.GeneratedProtocolMessageType('MutateAdsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_service_pb2' + , + '__doc__': """Request message for [AdService.MutateAds][google.ads.googleads.v5.serv + ices.AdService.MutateAds]. + + Attributes: + customer_id: + Required. The ID of the customer whose ads are being modified. + operations: + Required. The list of operations to perform on individual ads. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdsRequest) + }) +_sym_db.RegisterMessage(MutateAdsRequest) + +AdOperation = _reflection.GeneratedProtocolMessageType('AdOperation', (_message.Message,), { + 'DESCRIPTOR' : _ADOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_service_pb2' + , + '__doc__': """A single update operation on an ad. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + update: + Update operation: The ad is expected to have a valid resource + name in this format: ``customers/{customer_id}/ads/{ad_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AdOperation) + }) +_sym_db.RegisterMessage(AdOperation) + +MutateAdsResponse = _reflection.GeneratedProtocolMessageType('MutateAdsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_service_pb2' + , + '__doc__': """Response message for an ad mutate. + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdsResponse) + }) +_sym_db.RegisterMessage(MutateAdsResponse) + +MutateAdResult = _reflection.GeneratedProtocolMessageType('MutateAdResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEADRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.ad_service_pb2' + , + '__doc__': """The result for the ad mutate. + + Attributes: + resource_name: + The resource name returned for successful operations. + ad: + The mutated ad with only mutable fields after mutate. The + field will only be returned when response\_content\_type is + set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateAdResult) + }) +_sym_db.RegisterMessage(MutateAdResult) + + +DESCRIPTOR._options = None +_GETADREQUEST.fields_by_name['resource_name']._options = None +_MUTATEADSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEADSREQUEST.fields_by_name['operations']._options = None + +_ADSERVICE = _descriptor.ServiceDescriptor( + name='AdService', + full_name='google.ads.googleads.v5.services.AdService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=975, + serialized_end=1372, + methods=[ + _descriptor.MethodDescriptor( + name='GetAd', + full_name='google.ads.googleads.v5.services.AdService.GetAd', + index=0, + containing_service=None, + input_type=_GETADREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD, + serialized_options=b'\202\323\344\223\002\'\022%/v5/{resource_name=customers/*/ads/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateAds', + full_name='google.ads.googleads.v5.services.AdService.MutateAds', + index=1, + containing_service=None, + input_type=_MUTATEADSREQUEST, + output_type=_MUTATEADSRESPONSE, + serialized_options=b'\202\323\344\223\002-\"(/v5/customers/{customer_id=*}/ads:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_ADSERVICE) + +DESCRIPTOR.services_by_name['AdService'] = _ADSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/ad_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/ad_service_pb2_grpc.py new file mode 100644 index 000000000..3d8433d1b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/ad_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2 +from google.ads.google_ads.v5.proto.services import ad_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2 + + +class AdServiceStub(object): + """Proto file describing the Ad service. + + Service to manage ads. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAd = channel.unary_unary( + '/google.ads.googleads.v5.services.AdService/GetAd', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.GetAdRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.Ad.FromString, + ) + self.MutateAds = channel.unary_unary( + '/google.ads.googleads.v5.services.AdService/MutateAds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsResponse.FromString, + ) + + +class AdServiceServicer(object): + """Proto file describing the Ad service. + + Service to manage ads. + """ + + def GetAd(self, request, context): + """Returns the requested ad in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAds(self, request, context): + """Updates ads. Operation statuses are returned. Updating ads is not supported + for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAd': grpc.unary_unary_rpc_method_handler( + servicer.GetAd, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.GetAdRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.Ad.SerializeToString, + ), + 'MutateAds': grpc.unary_unary_rpc_method_handler( + servicer.MutateAds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.AdService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class AdService(object): + """Proto file describing the Ad service. + + Service to manage ads. + """ + + @staticmethod + def GetAd(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdService/GetAd', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.GetAdRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.Ad.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateAds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.AdService/MutateAds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.MutateAdsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/age_range_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/age_range_view_service_pb2.py new file mode 100644 index 000000000..83a590e18 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/age_range_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/age_range_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import age_range_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_age__range__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/age_range_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030AgeRangeViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/age_range_view_service.proto\x12 google.ads.googleads.v5.services\x1agoogle/ads/googleads_v5/proto/services/batch_job_service.proto\x12 google.ads.googleads.v5.services\x1a\x37google/ads/googleads_v5/proto/resources/batch_job.proto\x1a?google/ads/googleads_v5/proto/services/google_ads_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x17google/rpc/status.proto\"~\n\x15MutateBatchJobRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\toperation\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.BatchJobOperationB\x03\xe0\x41\x02\"_\n\x11\x42\x61tchJobOperation\x12=\n\x06\x63reate\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.BatchJobH\x00\x42\x0b\n\toperation\"`\n\x16MutateBatchJobResponse\x12\x46\n\x06result\x18\x01 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateBatchJobResult\"-\n\x14MutateBatchJobResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\"V\n\x12GetBatchJobRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/BatchJob\"V\n\x12RunBatchJobRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/BatchJob\"\xcb\x01\n\x1c\x41\x64\x64\x42\x61tchJobOperationsRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/BatchJob\x12\x16\n\x0esequence_token\x18\x02 \x01(\t\x12Q\n\x11mutate_operations\x18\x03 \x03(\x0b\x32\x31.google.ads.googleads.v5.services.MutateOperationB\x03\xe0\x41\x02\"V\n\x1d\x41\x64\x64\x42\x61tchJobOperationsResponse\x12\x18\n\x10total_operations\x18\x01 \x01(\x03\x12\x1b\n\x13next_sequence_token\x18\x02 \x01(\t\"\x85\x01\n\x1aListBatchJobResultsRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/BatchJob\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"y\n\x1bListBatchJobResultsResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.services.BatchJobResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xab\x01\n\x0e\x42\x61tchJobResult\x12\x17\n\x0foperation_index\x18\x01 \x01(\x03\x12\\\n\x19mutate_operation_response\x18\x02 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.MutateOperationResponse\x12\"\n\x06status\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status2\xe3\t\n\x0f\x42\x61tchJobService\x12\xd6\x01\n\x0eMutateBatchJob\x12\x37.google.ads.googleads.v5.services.MutateBatchJobRequest\x1a\x38.google.ads.googleads.v5.services.MutateBatchJobResponse\"Q\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/batchJobs:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x12\xb5\x01\n\x0bGetBatchJob\x12\x34.google.ads.googleads.v5.services.GetBatchJobRequest\x1a+.google.ads.googleads.v5.resources.BatchJob\"C\x82\xd3\xe4\x93\x02-\x12+/v5/{resource_name=customers/*/batchJobs/*}\xda\x41\rresource_name\x12\xe3\x01\n\x13ListBatchJobResults\x12<.google.ads.googleads.v5.services.ListBatchJobResultsRequest\x1a=.google.ads.googleads.v5.services.ListBatchJobResultsResponse\"O\x82\xd3\xe4\x93\x02\x39\x12\x37/v5/{resource_name=customers/*/batchJobs/*}:listResults\xda\x41\rresource_name\x12\x86\x02\n\x0bRunBatchJob\x12\x34.google.ads.googleads.v5.services.RunBatchJobRequest\x1a\x1d.google.longrunning.Operation\"\xa1\x01\x82\xd3\xe4\x93\x02\x34\"//v5/{resource_name=customers/*/batchJobs/*}:run:\x01*\xda\x41\rresource_name\xca\x41T\n\x15google.protobuf.Empty\x12;google.ads.googleads.v5.resources.BatchJob.BatchJobMetadata\x12\xb2\x02\n\x15\x41\x64\x64\x42\x61tchJobOperations\x12>.google.ads.googleads.v5.services.AddBatchJobOperationsRequest\x1a?.google.ads.googleads.v5.services.AddBatchJobOperationsResponse\"\x97\x01\x82\xd3\xe4\x93\x02>\"9/v5/{resource_name=customers/*/batchJobs/*}:addOperations:\x01*\xda\x41.resource_name,sequence_token,mutate_operations\xda\x41\x1fresource_name,mutate_operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14\x42\x61tchJobServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_MUTATEBATCHJOBREQUEST = _descriptor.Descriptor( + name='MutateBatchJobRequest', + full_name='google.ads.googleads.v5.services.MutateBatchJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateBatchJobRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateBatchJobRequest.operation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=399, + serialized_end=525, +) + + +_BATCHJOBOPERATION = _descriptor.Descriptor( + name='BatchJobOperation', + full_name='google.ads.googleads.v5.services.BatchJobOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.BatchJobOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.BatchJobOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=527, + serialized_end=622, +) + + +_MUTATEBATCHJOBRESPONSE = _descriptor.Descriptor( + name='MutateBatchJobResponse', + full_name='google.ads.googleads.v5.services.MutateBatchJobResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateBatchJobResponse.result', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=624, + serialized_end=720, +) + + +_MUTATEBATCHJOBRESULT = _descriptor.Descriptor( + name='MutateBatchJobResult', + full_name='google.ads.googleads.v5.services.MutateBatchJobResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateBatchJobResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=722, + serialized_end=767, +) + + +_GETBATCHJOBREQUEST = _descriptor.Descriptor( + name='GetBatchJobRequest', + full_name='google.ads.googleads.v5.services.GetBatchJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetBatchJobRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/BatchJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=769, + serialized_end=855, +) + + +_RUNBATCHJOBREQUEST = _descriptor.Descriptor( + name='RunBatchJobRequest', + full_name='google.ads.googleads.v5.services.RunBatchJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.RunBatchJobRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/BatchJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=857, + serialized_end=943, +) + + +_ADDBATCHJOBOPERATIONSREQUEST = _descriptor.Descriptor( + name='AddBatchJobOperationsRequest', + full_name='google.ads.googleads.v5.services.AddBatchJobOperationsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.AddBatchJobOperationsRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/BatchJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sequence_token', full_name='google.ads.googleads.v5.services.AddBatchJobOperationsRequest.sequence_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mutate_operations', full_name='google.ads.googleads.v5.services.AddBatchJobOperationsRequest.mutate_operations', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=946, + serialized_end=1149, +) + + +_ADDBATCHJOBOPERATIONSRESPONSE = _descriptor.Descriptor( + name='AddBatchJobOperationsResponse', + full_name='google.ads.googleads.v5.services.AddBatchJobOperationsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='total_operations', full_name='google.ads.googleads.v5.services.AddBatchJobOperationsResponse.total_operations', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_sequence_token', full_name='google.ads.googleads.v5.services.AddBatchJobOperationsResponse.next_sequence_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1151, + serialized_end=1237, +) + + +_LISTBATCHJOBRESULTSREQUEST = _descriptor.Descriptor( + name='ListBatchJobResultsRequest', + full_name='google.ads.googleads.v5.services.ListBatchJobResultsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.ListBatchJobResultsRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/BatchJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.ListBatchJobResultsRequest.page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.ListBatchJobResultsRequest.page_size', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1240, + serialized_end=1373, +) + + +_LISTBATCHJOBRESULTSRESPONSE = _descriptor.Descriptor( + name='ListBatchJobResultsResponse', + full_name='google.ads.googleads.v5.services.ListBatchJobResultsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.ListBatchJobResultsResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.ListBatchJobResultsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1375, + serialized_end=1496, +) + + +_BATCHJOBRESULT = _descriptor.Descriptor( + name='BatchJobResult', + full_name='google.ads.googleads.v5.services.BatchJobResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='operation_index', full_name='google.ads.googleads.v5.services.BatchJobResult.operation_index', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mutate_operation_response', full_name='google.ads.googleads.v5.services.BatchJobResult.mutate_operation_response', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v5.services.BatchJobResult.status', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1499, + serialized_end=1670, +) + +_MUTATEBATCHJOBREQUEST.fields_by_name['operation'].message_type = _BATCHJOBOPERATION +_BATCHJOBOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2._BATCHJOB +_BATCHJOBOPERATION.oneofs_by_name['operation'].fields.append( + _BATCHJOBOPERATION.fields_by_name['create']) +_BATCHJOBOPERATION.fields_by_name['create'].containing_oneof = _BATCHJOBOPERATION.oneofs_by_name['operation'] +_MUTATEBATCHJOBRESPONSE.fields_by_name['result'].message_type = _MUTATEBATCHJOBRESULT +_ADDBATCHJOBOPERATIONSREQUEST.fields_by_name['mutate_operations'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2._MUTATEOPERATION +_LISTBATCHJOBRESULTSRESPONSE.fields_by_name['results'].message_type = _BATCHJOBRESULT +_BATCHJOBRESULT.fields_by_name['mutate_operation_response'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2._MUTATEOPERATIONRESPONSE +_BATCHJOBRESULT.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS +DESCRIPTOR.message_types_by_name['MutateBatchJobRequest'] = _MUTATEBATCHJOBREQUEST +DESCRIPTOR.message_types_by_name['BatchJobOperation'] = _BATCHJOBOPERATION +DESCRIPTOR.message_types_by_name['MutateBatchJobResponse'] = _MUTATEBATCHJOBRESPONSE +DESCRIPTOR.message_types_by_name['MutateBatchJobResult'] = _MUTATEBATCHJOBRESULT +DESCRIPTOR.message_types_by_name['GetBatchJobRequest'] = _GETBATCHJOBREQUEST +DESCRIPTOR.message_types_by_name['RunBatchJobRequest'] = _RUNBATCHJOBREQUEST +DESCRIPTOR.message_types_by_name['AddBatchJobOperationsRequest'] = _ADDBATCHJOBOPERATIONSREQUEST +DESCRIPTOR.message_types_by_name['AddBatchJobOperationsResponse'] = _ADDBATCHJOBOPERATIONSRESPONSE +DESCRIPTOR.message_types_by_name['ListBatchJobResultsRequest'] = _LISTBATCHJOBRESULTSREQUEST +DESCRIPTOR.message_types_by_name['ListBatchJobResultsResponse'] = _LISTBATCHJOBRESULTSRESPONSE +DESCRIPTOR.message_types_by_name['BatchJobResult'] = _BATCHJOBRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MutateBatchJobRequest = _reflection.GeneratedProtocolMessageType('MutateBatchJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBATCHJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Request message for [BatchJobService.MutateBatchJob][google.ads.google + ads.v5.services.BatchJobService.MutateBatchJob]. + + Attributes: + customer_id: + Required. The ID of the customer for which to create a batch + job. + operation: + Required. The operation to perform on an individual batch job. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBatchJobRequest) + }) +_sym_db.RegisterMessage(MutateBatchJobRequest) + +BatchJobOperation = _reflection.GeneratedProtocolMessageType('BatchJobOperation', (_message.Message,), { + 'DESCRIPTOR' : _BATCHJOBOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """A single operation on a batch job. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + batch job. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.BatchJobOperation) + }) +_sym_db.RegisterMessage(BatchJobOperation) + +MutateBatchJobResponse = _reflection.GeneratedProtocolMessageType('MutateBatchJobResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBATCHJOBRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Response message for [BatchJobService.MutateBatchJob][google.ads.googl + eads.v5.services.BatchJobService.MutateBatchJob]. + + Attributes: + result: + The result for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBatchJobResponse) + }) +_sym_db.RegisterMessage(MutateBatchJobResponse) + +MutateBatchJobResult = _reflection.GeneratedProtocolMessageType('MutateBatchJobResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBATCHJOBRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """The result for the batch job mutate. + + Attributes: + resource_name: + The resource name of the batch job. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBatchJobResult) + }) +_sym_db.RegisterMessage(MutateBatchJobResult) + +GetBatchJobRequest = _reflection.GeneratedProtocolMessageType('GetBatchJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETBATCHJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Request message for [BatchJobService.GetBatchJob][google.ads.googleads + .v5.services.BatchJobService.GetBatchJob]. + + Attributes: + resource_name: + Required. The resource name of the batch job to get. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetBatchJobRequest) + }) +_sym_db.RegisterMessage(GetBatchJobRequest) + +RunBatchJobRequest = _reflection.GeneratedProtocolMessageType('RunBatchJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _RUNBATCHJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Request message for [BatchJobService.RunBatchJob][google.ads.googleads + .v5.services.BatchJobService.RunBatchJob]. + + Attributes: + resource_name: + Required. The resource name of the BatchJob to run. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RunBatchJobRequest) + }) +_sym_db.RegisterMessage(RunBatchJobRequest) + +AddBatchJobOperationsRequest = _reflection.GeneratedProtocolMessageType('AddBatchJobOperationsRequest', (_message.Message,), { + 'DESCRIPTOR' : _ADDBATCHJOBOPERATIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Request message for [BatchJobService.AddBatchJobOperations][google.ads + .googleads.v5.services.BatchJobService.AddBatchJobOperations]. + + Attributes: + resource_name: + Required. The resource name of the batch job. + sequence_token: + A token used to enforce sequencing. The first + AddBatchJobOperations request for a batch job should not set + sequence\_token. Subsequent requests must set sequence\_token + to the value of next\_sequence\_token received in the previous + AddBatchJobOperations response. + mutate_operations: + Required. The list of mutates being added. Operations can use + negative integers as temp ids to signify dependencies between + entities created in this batch job. For example, a customer + with id = 1234 can create a campaign and an ad group in that + same campaign by creating a campaign in the first operation + with the resource name explicitly set to + "customers/1234/campaigns/-1", and creating an ad group in the + second operation with the campaign field also set to + "customers/1234/campaigns/-1". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AddBatchJobOperationsRequest) + }) +_sym_db.RegisterMessage(AddBatchJobOperationsRequest) + +AddBatchJobOperationsResponse = _reflection.GeneratedProtocolMessageType('AddBatchJobOperationsResponse', (_message.Message,), { + 'DESCRIPTOR' : _ADDBATCHJOBOPERATIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Response message for [BatchJobService.AddBatchJobOperations][google.ad + s.googleads.v5.services.BatchJobService.AddBatchJobOperations]. + + Attributes: + total_operations: + The total number of operations added so far for this batch + job. + next_sequence_token: + The sequence token to be used when calling + AddBatchJobOperations again if more operations need to be + added. The next AddBatchJobOperations request must set the + sequence\_token field to the value of this field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AddBatchJobOperationsResponse) + }) +_sym_db.RegisterMessage(AddBatchJobOperationsResponse) + +ListBatchJobResultsRequest = _reflection.GeneratedProtocolMessageType('ListBatchJobResultsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTBATCHJOBRESULTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Request message for [BatchJobService.ListBatchJobResults][google.ads.g + oogleads.v5.services.BatchJobService.ListBatchJobResults]. + + Attributes: + resource_name: + Required. The resource name of the batch job whose results are + being listed. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When a page + request is too large, the server may decide to further limit + the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListBatchJobResultsRequest) + }) +_sym_db.RegisterMessage(ListBatchJobResultsRequest) + +ListBatchJobResultsResponse = _reflection.GeneratedProtocolMessageType('ListBatchJobResultsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTBATCHJOBRESULTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """Response message for [BatchJobService.ListBatchJobResults][google.ads. + googleads.v5.services.BatchJobService.ListBatchJobResults]. + + Attributes: + results: + The list of rows that matched the query. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListBatchJobResultsResponse) + }) +_sym_db.RegisterMessage(ListBatchJobResultsResponse) + +BatchJobResult = _reflection.GeneratedProtocolMessageType('BatchJobResult', (_message.Message,), { + 'DESCRIPTOR' : _BATCHJOBRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.batch_job_service_pb2' + , + '__doc__': """An individual batch job result. + + Attributes: + operation_index: + Index of the mutate operation. + mutate_operation_response: + Response for the mutate. May be empty if errors occurred. + status: + Details of the errors when processing the operation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.BatchJobResult) + }) +_sym_db.RegisterMessage(BatchJobResult) + + +DESCRIPTOR._options = None +_MUTATEBATCHJOBREQUEST.fields_by_name['customer_id']._options = None +_MUTATEBATCHJOBREQUEST.fields_by_name['operation']._options = None +_GETBATCHJOBREQUEST.fields_by_name['resource_name']._options = None +_RUNBATCHJOBREQUEST.fields_by_name['resource_name']._options = None +_ADDBATCHJOBOPERATIONSREQUEST.fields_by_name['resource_name']._options = None +_ADDBATCHJOBOPERATIONSREQUEST.fields_by_name['mutate_operations']._options = None +_LISTBATCHJOBRESULTSREQUEST.fields_by_name['resource_name']._options = None + +_BATCHJOBSERVICE = _descriptor.ServiceDescriptor( + name='BatchJobService', + full_name='google.ads.googleads.v5.services.BatchJobService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1673, + serialized_end=2924, + methods=[ + _descriptor.MethodDescriptor( + name='MutateBatchJob', + full_name='google.ads.googleads.v5.services.BatchJobService.MutateBatchJob', + index=0, + containing_service=None, + input_type=_MUTATEBATCHJOBREQUEST, + output_type=_MUTATEBATCHJOBRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/batchJobs:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GetBatchJob', + full_name='google.ads.googleads.v5.services.BatchJobService.GetBatchJob', + index=1, + containing_service=None, + input_type=_GETBATCHJOBREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2._BATCHJOB, + serialized_options=b'\202\323\344\223\002-\022+/v5/{resource_name=customers/*/batchJobs/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ListBatchJobResults', + full_name='google.ads.googleads.v5.services.BatchJobService.ListBatchJobResults', + index=2, + containing_service=None, + input_type=_LISTBATCHJOBRESULTSREQUEST, + output_type=_LISTBATCHJOBRESULTSRESPONSE, + serialized_options=b'\202\323\344\223\0029\0227/v5/{resource_name=customers/*/batchJobs/*}:listResults\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='RunBatchJob', + full_name='google.ads.googleads.v5.services.BatchJobService.RunBatchJob', + index=3, + containing_service=None, + input_type=_RUNBATCHJOBREQUEST, + output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, + serialized_options=b'\202\323\344\223\0024\"//v5/{resource_name=customers/*/batchJobs/*}:run:\001*\332A\rresource_name\312AT\n\025google.protobuf.Empty\022;google.ads.googleads.v5.resources.BatchJob.BatchJobMetadata', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='AddBatchJobOperations', + full_name='google.ads.googleads.v5.services.BatchJobService.AddBatchJobOperations', + index=4, + containing_service=None, + input_type=_ADDBATCHJOBOPERATIONSREQUEST, + output_type=_ADDBATCHJOBOPERATIONSRESPONSE, + serialized_options=b'\202\323\344\223\002>\"9/v5/{resource_name=customers/*/batchJobs/*}:addOperations:\001*\332A.resource_name,sequence_token,mutate_operations\332A\037resource_name,mutate_operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_BATCHJOBSERVICE) + +DESCRIPTOR.services_by_name['BatchJobService'] = _BATCHJOBSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/batch_job_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/batch_job_service_pb2_grpc.py new file mode 100644 index 000000000..3e8c22271 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/batch_job_service_pb2_grpc.py @@ -0,0 +1,214 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import batch_job_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2 +from google.ads.google_ads.v5.proto.services import batch_job_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 + + +class BatchJobServiceStub(object): + """Proto file describing the BatchJobService. + + Service to manage batch jobs. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.MutateBatchJob = channel.unary_unary( + '/google.ads.googleads.v5.services.BatchJobService/MutateBatchJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobResponse.FromString, + ) + self.GetBatchJob = channel.unary_unary( + '/google.ads.googleads.v5.services.BatchJobService/GetBatchJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.GetBatchJobRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2.BatchJob.FromString, + ) + self.ListBatchJobResults = channel.unary_unary( + '/google.ads.googleads.v5.services.BatchJobService/ListBatchJobResults', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsResponse.FromString, + ) + self.RunBatchJob = channel.unary_unary( + '/google.ads.googleads.v5.services.BatchJobService/RunBatchJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.RunBatchJobRequest.SerializeToString, + response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString, + ) + self.AddBatchJobOperations = channel.unary_unary( + '/google.ads.googleads.v5.services.BatchJobService/AddBatchJobOperations', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsResponse.FromString, + ) + + +class BatchJobServiceServicer(object): + """Proto file describing the BatchJobService. + + Service to manage batch jobs. + """ + + def MutateBatchJob(self, request, context): + """Mutates a batch job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetBatchJob(self, request, context): + """Returns the batch job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListBatchJobResults(self, request, context): + """Returns the results of the batch job. The job must be done. + Supports standard list paging. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RunBatchJob(self, request, context): + """Runs the batch job. + + The Operation.metadata field type is BatchJobMetadata. When finished, the + long running operation will not contain errors or a response. Instead, use + ListBatchJobResults to get the results of the job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AddBatchJobOperations(self, request, context): + """Add operations to the batch job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BatchJobServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'MutateBatchJob': grpc.unary_unary_rpc_method_handler( + servicer.MutateBatchJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobResponse.SerializeToString, + ), + 'GetBatchJob': grpc.unary_unary_rpc_method_handler( + servicer.GetBatchJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.GetBatchJobRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2.BatchJob.SerializeToString, + ), + 'ListBatchJobResults': grpc.unary_unary_rpc_method_handler( + servicer.ListBatchJobResults, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsResponse.SerializeToString, + ), + 'RunBatchJob': grpc.unary_unary_rpc_method_handler( + servicer.RunBatchJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.RunBatchJobRequest.FromString, + response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString, + ), + 'AddBatchJobOperations': grpc.unary_unary_rpc_method_handler( + servicer.AddBatchJobOperations, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.BatchJobService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class BatchJobService(object): + """Proto file describing the BatchJobService. + + Service to manage batch jobs. + """ + + @staticmethod + def MutateBatchJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BatchJobService/MutateBatchJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.MutateBatchJobResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetBatchJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BatchJobService/GetBatchJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.GetBatchJobRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2.BatchJob.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListBatchJobResults(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BatchJobService/ListBatchJobResults', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.ListBatchJobResultsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RunBatchJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BatchJobService/RunBatchJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.RunBatchJobRequest.SerializeToString, + google_dot_longrunning_dot_operations__pb2.Operation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddBatchJobOperations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BatchJobService/AddBatchJobOperations', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_batch__job__service__pb2.AddBatchJobOperationsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2.py b/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2.py new file mode 100644 index 000000000..61dd6537a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2.py @@ -0,0 +1,416 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/bidding_strategy_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/bidding_strategy_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033BiddingStrategyServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/bidding_strategy_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/bidding_strategy.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"d\n\x19GetBiddingStrategyRequest\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(googleads.googleapis.com/BiddingStrategy\"\xbf\x01\n\x1eMutateBiddingStrategiesRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12S\n\noperations\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.services.BiddingStrategyOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xf6\x01\n\x18\x42iddingStrategyOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.BiddingStrategyH\x00\x12\x44\n\x06update\x18\x02 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.BiddingStrategyH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa4\x01\n\x1fMutateBiddingStrategiesResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12N\n\x07results\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v5.services.MutateBiddingStrategyResult\"4\n\x1bMutateBiddingStrategyResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x87\x04\n\x16\x42iddingStrategyService\x12\xd2\x01\n\x12GetBiddingStrategy\x12;.google.ads.googleads.v5.services.GetBiddingStrategyRequest\x1a\x32.google.ads.googleads.v5.resources.BiddingStrategy\"K\x82\xd3\xe4\x93\x02\x35\x12\x33/v5/{resource_name=customers/*/biddingStrategies/*}\xda\x41\rresource_name\x12\xfa\x01\n\x17MutateBiddingStrategies\x12@.google.ads.googleads.v5.services.MutateBiddingStrategiesRequest\x1a\x41.google.ads.googleads.v5.services.MutateBiddingStrategiesResponse\"Z\x82\xd3\xe4\x93\x02;\"6/v5/customers/{customer_id=*}/biddingStrategies:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1b\x42iddingStrategyServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETBIDDINGSTRATEGYREQUEST = _descriptor.Descriptor( + name='GetBiddingStrategyRequest', + full_name='google.ads.googleads.v5.services.GetBiddingStrategyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetBiddingStrategyRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A*\n(googleads.googleapis.com/BiddingStrategy', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=345, + serialized_end=445, +) + + +_MUTATEBIDDINGSTRATEGIESREQUEST = _descriptor.Descriptor( + name='MutateBiddingStrategiesRequest', + full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=448, + serialized_end=639, +) + + +_BIDDINGSTRATEGYOPERATION = _descriptor.Descriptor( + name='BiddingStrategyOperation', + full_name='google.ads.googleads.v5.services.BiddingStrategyOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.BiddingStrategyOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.BiddingStrategyOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.BiddingStrategyOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.BiddingStrategyOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.BiddingStrategyOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=642, + serialized_end=888, +) + + +_MUTATEBIDDINGSTRATEGIESRESPONSE = _descriptor.Descriptor( + name='MutateBiddingStrategiesResponse', + full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateBiddingStrategiesResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=891, + serialized_end=1055, +) + + +_MUTATEBIDDINGSTRATEGYRESULT = _descriptor.Descriptor( + name='MutateBiddingStrategyResult', + full_name='google.ads.googleads.v5.services.MutateBiddingStrategyResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateBiddingStrategyResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1057, + serialized_end=1109, +) + +_MUTATEBIDDINGSTRATEGIESREQUEST.fields_by_name['operations'].message_type = _BIDDINGSTRATEGYOPERATION +_BIDDINGSTRATEGYOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_BIDDINGSTRATEGYOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_BIDDINGSTRATEGYOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['create']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['create'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['update']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['update'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['remove']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['remove'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_MUTATEBIDDINGSTRATEGIESRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEBIDDINGSTRATEGIESRESPONSE.fields_by_name['results'].message_type = _MUTATEBIDDINGSTRATEGYRESULT +DESCRIPTOR.message_types_by_name['GetBiddingStrategyRequest'] = _GETBIDDINGSTRATEGYREQUEST +DESCRIPTOR.message_types_by_name['MutateBiddingStrategiesRequest'] = _MUTATEBIDDINGSTRATEGIESREQUEST +DESCRIPTOR.message_types_by_name['BiddingStrategyOperation'] = _BIDDINGSTRATEGYOPERATION +DESCRIPTOR.message_types_by_name['MutateBiddingStrategiesResponse'] = _MUTATEBIDDINGSTRATEGIESRESPONSE +DESCRIPTOR.message_types_by_name['MutateBiddingStrategyResult'] = _MUTATEBIDDINGSTRATEGYRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetBiddingStrategyRequest = _reflection.GeneratedProtocolMessageType('GetBiddingStrategyRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETBIDDINGSTRATEGYREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.bidding_strategy_service_pb2' + , + '__doc__': """Request message for [BiddingStrategyService.GetBiddingStrategy][google + .ads.googleads.v5.services.BiddingStrategyService.GetBiddingStrategy]. + + Attributes: + resource_name: + Required. The resource name of the bidding strategy to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetBiddingStrategyRequest) + }) +_sym_db.RegisterMessage(GetBiddingStrategyRequest) + +MutateBiddingStrategiesRequest = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategiesRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBIDDINGSTRATEGIESREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.bidding_strategy_service_pb2' + , + '__doc__': """Request message for [BiddingStrategyService.MutateBiddingStrategies][g + oogle.ads.googleads.v5.services.BiddingStrategyService.MutateBiddingSt + rategies]. + + Attributes: + customer_id: + Required. The ID of the customer whose bidding strategies are + being modified. + operations: + Required. The list of operations to perform on individual + bidding strategies. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBiddingStrategiesRequest) + }) +_sym_db.RegisterMessage(MutateBiddingStrategiesRequest) + +BiddingStrategyOperation = _reflection.GeneratedProtocolMessageType('BiddingStrategyOperation', (_message.Message,), { + 'DESCRIPTOR' : _BIDDINGSTRATEGYOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.bidding_strategy_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a bidding strategy. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + bidding strategy. + update: + Update operation: The bidding strategy is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed bidding + strategy is expected, in this format: ``customers/{customer_i + d}/biddingStrategies/{bidding_strategy_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.BiddingStrategyOperation) + }) +_sym_db.RegisterMessage(BiddingStrategyOperation) + +MutateBiddingStrategiesResponse = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategiesResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBIDDINGSTRATEGIESRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.bidding_strategy_service_pb2' + , + '__doc__': """Response message for bidding strategy mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBiddingStrategiesResponse) + }) +_sym_db.RegisterMessage(MutateBiddingStrategiesResponse) + +MutateBiddingStrategyResult = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategyResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBIDDINGSTRATEGYRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.bidding_strategy_service_pb2' + , + '__doc__': """The result for the bidding strategy mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBiddingStrategyResult) + }) +_sym_db.RegisterMessage(MutateBiddingStrategyResult) + + +DESCRIPTOR._options = None +_GETBIDDINGSTRATEGYREQUEST.fields_by_name['resource_name']._options = None +_MUTATEBIDDINGSTRATEGIESREQUEST.fields_by_name['customer_id']._options = None +_MUTATEBIDDINGSTRATEGIESREQUEST.fields_by_name['operations']._options = None + +_BIDDINGSTRATEGYSERVICE = _descriptor.ServiceDescriptor( + name='BiddingStrategyService', + full_name='google.ads.googleads.v5.services.BiddingStrategyService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1112, + serialized_end=1631, + methods=[ + _descriptor.MethodDescriptor( + name='GetBiddingStrategy', + full_name='google.ads.googleads.v5.services.BiddingStrategyService.GetBiddingStrategy', + index=0, + containing_service=None, + input_type=_GETBIDDINGSTRATEGYREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY, + serialized_options=b'\202\323\344\223\0025\0223/v5/{resource_name=customers/*/biddingStrategies/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateBiddingStrategies', + full_name='google.ads.googleads.v5.services.BiddingStrategyService.MutateBiddingStrategies', + index=1, + containing_service=None, + input_type=_MUTATEBIDDINGSTRATEGIESREQUEST, + output_type=_MUTATEBIDDINGSTRATEGIESRESPONSE, + serialized_options=b'\202\323\344\223\002;\"6/v5/customers/{customer_id=*}/biddingStrategies:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_BIDDINGSTRATEGYSERVICE) + +DESCRIPTOR.services_by_name['BiddingStrategyService'] = _BIDDINGSTRATEGYSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2_grpc.py new file mode 100644 index 000000000..8bfd51b09 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/bidding_strategy_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.ads.google_ads.v5.proto.services import bidding_strategy_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2 + + +class BiddingStrategyServiceStub(object): + """Proto file describing the Bidding Strategy service. + + Service to manage bidding strategies. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetBiddingStrategy = channel.unary_unary( + '/google.ads.googleads.v5.services.BiddingStrategyService/GetBiddingStrategy', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.GetBiddingStrategyRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2.BiddingStrategy.FromString, + ) + self.MutateBiddingStrategies = channel.unary_unary( + '/google.ads.googleads.v5.services.BiddingStrategyService/MutateBiddingStrategies', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesResponse.FromString, + ) + + +class BiddingStrategyServiceServicer(object): + """Proto file describing the Bidding Strategy service. + + Service to manage bidding strategies. + """ + + def GetBiddingStrategy(self, request, context): + """Returns the requested bidding strategy in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateBiddingStrategies(self, request, context): + """Creates, updates, or removes bidding strategies. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BiddingStrategyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetBiddingStrategy': grpc.unary_unary_rpc_method_handler( + servicer.GetBiddingStrategy, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.GetBiddingStrategyRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2.BiddingStrategy.SerializeToString, + ), + 'MutateBiddingStrategies': grpc.unary_unary_rpc_method_handler( + servicer.MutateBiddingStrategies, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.BiddingStrategyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class BiddingStrategyService(object): + """Proto file describing the Bidding Strategy service. + + Service to manage bidding strategies. + """ + + @staticmethod + def GetBiddingStrategy(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BiddingStrategyService/GetBiddingStrategy', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.GetBiddingStrategyRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2.BiddingStrategy.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateBiddingStrategies(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BiddingStrategyService/MutateBiddingStrategies', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2.py b/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2.py new file mode 100644 index 000000000..19caed913 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2.py @@ -0,0 +1,354 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/billing_setup_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import billing_setup_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/billing_setup_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030BillingSetupServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/billing_setup_service.proto\x12 google.ads.googleads.v5.services\x1a;google/ads/googleads_v5/proto/resources/billing_setup.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"^\n\x16GetBillingSetupRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/BillingSetup\"\x86\x01\n\x19MutateBillingSetupRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\toperation\x18\x02 \x01(\x0b\x32\x37.google.ads.googleads.v5.services.BillingSetupOperationB\x03\xe0\x41\x02\"y\n\x15\x42illingSetupOperation\x12\x41\n\x06\x63reate\x18\x02 \x01(\x0b\x32/.google.ads.googleads.v5.resources.BillingSetupH\x00\x12\x10\n\x06remove\x18\x01 \x01(\tH\x00\x42\x0b\n\toperation\"h\n\x1aMutateBillingSetupResponse\x12J\n\x06result\x18\x01 \x01(\x0b\x32:.google.ads.googleads.v5.services.MutateBillingSetupResult\"1\n\x18MutateBillingSetupResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xe3\x03\n\x13\x42illingSetupService\x12\xc5\x01\n\x0fGetBillingSetup\x12\x38.google.ads.googleads.v5.services.GetBillingSetupRequest\x1a/.google.ads.googleads.v5.resources.BillingSetup\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/billingSetups/*}\xda\x41\rresource_name\x12\xe6\x01\n\x12MutateBillingSetup\x12;.google.ads.googleads.v5.services.MutateBillingSetupRequest\x1a<.google.ads.googleads.v5.services.MutateBillingSetupResponse\"U\x82\xd3\xe4\x93\x02\x37\"2/v5/customers/{customer_id=*}/billingSetups:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18\x42illingSetupServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETBILLINGSETUPREQUEST = _descriptor.Descriptor( + name='GetBillingSetupRequest', + full_name='google.ads.googleads.v5.services.GetBillingSetupRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetBillingSetupRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/BillingSetup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=374, +) + + +_MUTATEBILLINGSETUPREQUEST = _descriptor.Descriptor( + name='MutateBillingSetupRequest', + full_name='google.ads.googleads.v5.services.MutateBillingSetupRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateBillingSetupRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateBillingSetupRequest.operation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=377, + serialized_end=511, +) + + +_BILLINGSETUPOPERATION = _descriptor.Descriptor( + name='BillingSetupOperation', + full_name='google.ads.googleads.v5.services.BillingSetupOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.BillingSetupOperation.create', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.BillingSetupOperation.remove', index=1, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.BillingSetupOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=513, + serialized_end=634, +) + + +_MUTATEBILLINGSETUPRESPONSE = _descriptor.Descriptor( + name='MutateBillingSetupResponse', + full_name='google.ads.googleads.v5.services.MutateBillingSetupResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateBillingSetupResponse.result', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=636, + serialized_end=740, +) + + +_MUTATEBILLINGSETUPRESULT = _descriptor.Descriptor( + name='MutateBillingSetupResult', + full_name='google.ads.googleads.v5.services.MutateBillingSetupResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateBillingSetupResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=742, + serialized_end=791, +) + +_MUTATEBILLINGSETUPREQUEST.fields_by_name['operation'].message_type = _BILLINGSETUPOPERATION +_BILLINGSETUPOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2._BILLINGSETUP +_BILLINGSETUPOPERATION.oneofs_by_name['operation'].fields.append( + _BILLINGSETUPOPERATION.fields_by_name['create']) +_BILLINGSETUPOPERATION.fields_by_name['create'].containing_oneof = _BILLINGSETUPOPERATION.oneofs_by_name['operation'] +_BILLINGSETUPOPERATION.oneofs_by_name['operation'].fields.append( + _BILLINGSETUPOPERATION.fields_by_name['remove']) +_BILLINGSETUPOPERATION.fields_by_name['remove'].containing_oneof = _BILLINGSETUPOPERATION.oneofs_by_name['operation'] +_MUTATEBILLINGSETUPRESPONSE.fields_by_name['result'].message_type = _MUTATEBILLINGSETUPRESULT +DESCRIPTOR.message_types_by_name['GetBillingSetupRequest'] = _GETBILLINGSETUPREQUEST +DESCRIPTOR.message_types_by_name['MutateBillingSetupRequest'] = _MUTATEBILLINGSETUPREQUEST +DESCRIPTOR.message_types_by_name['BillingSetupOperation'] = _BILLINGSETUPOPERATION +DESCRIPTOR.message_types_by_name['MutateBillingSetupResponse'] = _MUTATEBILLINGSETUPRESPONSE +DESCRIPTOR.message_types_by_name['MutateBillingSetupResult'] = _MUTATEBILLINGSETUPRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetBillingSetupRequest = _reflection.GeneratedProtocolMessageType('GetBillingSetupRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETBILLINGSETUPREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.billing_setup_service_pb2' + , + '__doc__': """Request message for [BillingSetupService.GetBillingSetup][google.ads.g + oogleads.v5.services.BillingSetupService.GetBillingSetup]. + + Attributes: + resource_name: + Required. The resource name of the billing setup to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetBillingSetupRequest) + }) +_sym_db.RegisterMessage(GetBillingSetupRequest) + +MutateBillingSetupRequest = _reflection.GeneratedProtocolMessageType('MutateBillingSetupRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBILLINGSETUPREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.billing_setup_service_pb2' + , + '__doc__': """Request message for billing setup mutate operations. + + Attributes: + customer_id: + Required. Id of the customer to apply the billing setup mutate + operation to. + operation: + Required. The operation to perform. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBillingSetupRequest) + }) +_sym_db.RegisterMessage(MutateBillingSetupRequest) + +BillingSetupOperation = _reflection.GeneratedProtocolMessageType('BillingSetupOperation', (_message.Message,), { + 'DESCRIPTOR' : _BILLINGSETUPOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.billing_setup_service_pb2' + , + '__doc__': """A single operation on a billing setup, which describes the + cancellation of an existing billing setup. + + Attributes: + operation: + Only one of these operations can be set. "Update" operations + are not supported. + create: + Creates a billing setup. No resource name is expected for the + new billing setup. + remove: + Resource name of the billing setup to remove. A setup cannot + be removed unless it is in a pending state or its scheduled + start time is in the future. The resource name looks like + ``customers/{customer_id}/billingSetups/{billing_id}``. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.BillingSetupOperation) + }) +_sym_db.RegisterMessage(BillingSetupOperation) + +MutateBillingSetupResponse = _reflection.GeneratedProtocolMessageType('MutateBillingSetupResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBILLINGSETUPRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.billing_setup_service_pb2' + , + '__doc__': """Response message for a billing setup operation. + + Attributes: + result: + A result that identifies the resource affected by the mutate + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBillingSetupResponse) + }) +_sym_db.RegisterMessage(MutateBillingSetupResponse) + +MutateBillingSetupResult = _reflection.GeneratedProtocolMessageType('MutateBillingSetupResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEBILLINGSETUPRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.billing_setup_service_pb2' + , + '__doc__': """Result for a single billing setup mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateBillingSetupResult) + }) +_sym_db.RegisterMessage(MutateBillingSetupResult) + + +DESCRIPTOR._options = None +_GETBILLINGSETUPREQUEST.fields_by_name['resource_name']._options = None +_MUTATEBILLINGSETUPREQUEST.fields_by_name['customer_id']._options = None +_MUTATEBILLINGSETUPREQUEST.fields_by_name['operation']._options = None + +_BILLINGSETUPSERVICE = _descriptor.ServiceDescriptor( + name='BillingSetupService', + full_name='google.ads.googleads.v5.services.BillingSetupService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=794, + serialized_end=1277, + methods=[ + _descriptor.MethodDescriptor( + name='GetBillingSetup', + full_name='google.ads.googleads.v5.services.BillingSetupService.GetBillingSetup', + index=0, + containing_service=None, + input_type=_GETBILLINGSETUPREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2._BILLINGSETUP, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/billingSetups/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateBillingSetup', + full_name='google.ads.googleads.v5.services.BillingSetupService.MutateBillingSetup', + index=1, + containing_service=None, + input_type=_MUTATEBILLINGSETUPREQUEST, + output_type=_MUTATEBILLINGSETUPRESPONSE, + serialized_options=b'\202\323\344\223\0027\"2/v5/customers/{customer_id=*}/billingSetups:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_BILLINGSETUPSERVICE) + +DESCRIPTOR.services_by_name['BillingSetupService'] = _BILLINGSETUPSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2_grpc.py new file mode 100644 index 000000000..d728a7c4d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/billing_setup_service_pb2_grpc.py @@ -0,0 +1,133 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import billing_setup_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2 +from google.ads.google_ads.v5.proto.services import billing_setup_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2 + + +class BillingSetupServiceStub(object): + """Proto file describing the BillingSetup service. + + A service for designating the business entity responsible for accrued costs. + + A billing setup is associated with a payments account. Billing-related + activity for all billing setups associated with a particular payments account + will appear on a single invoice generated monthly. + + Mutates: + The REMOVE operation cancels a pending billing setup. + The CREATE operation creates a new billing setup. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetBillingSetup = channel.unary_unary( + '/google.ads.googleads.v5.services.BillingSetupService/GetBillingSetup', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.GetBillingSetupRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2.BillingSetup.FromString, + ) + self.MutateBillingSetup = channel.unary_unary( + '/google.ads.googleads.v5.services.BillingSetupService/MutateBillingSetup', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupResponse.FromString, + ) + + +class BillingSetupServiceServicer(object): + """Proto file describing the BillingSetup service. + + A service for designating the business entity responsible for accrued costs. + + A billing setup is associated with a payments account. Billing-related + activity for all billing setups associated with a particular payments account + will appear on a single invoice generated monthly. + + Mutates: + The REMOVE operation cancels a pending billing setup. + The CREATE operation creates a new billing setup. + """ + + def GetBillingSetup(self, request, context): + """Returns a billing setup. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateBillingSetup(self, request, context): + """Creates a billing setup, or cancels an existing billing setup. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BillingSetupServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetBillingSetup': grpc.unary_unary_rpc_method_handler( + servicer.GetBillingSetup, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.GetBillingSetupRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2.BillingSetup.SerializeToString, + ), + 'MutateBillingSetup': grpc.unary_unary_rpc_method_handler( + servicer.MutateBillingSetup, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.BillingSetupService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class BillingSetupService(object): + """Proto file describing the BillingSetup service. + + A service for designating the business entity responsible for accrued costs. + + A billing setup is associated with a payments account. Billing-related + activity for all billing setups associated with a particular payments account + will appear on a single invoice generated monthly. + + Mutates: + The REMOVE operation cancels a pending billing setup. + The CREATE operation creates a new billing setup. + """ + + @staticmethod + def GetBillingSetup(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BillingSetupService/GetBillingSetup', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.GetBillingSetupRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2.BillingSetup.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateBillingSetup(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.BillingSetupService/MutateBillingSetup', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_billing__setup__service__pb2.MutateBillingSetupResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2.py new file mode 100644 index 000000000..8a08f5145 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_asset_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_asset_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_asset_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031CampaignAssetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/campaign_asset_service.proto\x12 google.ads.googleads.v5.services\x1a.google.ads.googleads.v5.services.MutateCampaignAssetsResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/campaignAssets:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x80\x02\n$com.google.ads.googleads.v5.servicesB\x19\x43\x61mpaignAssetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNASSETREQUEST = _descriptor.Descriptor( + name='GetCampaignAssetRequest', + full_name='google.ads.googleads.v5.services.GetCampaignAssetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignAssetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A(\n&googleads.googleapis.com/CampaignAsset', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=307, + serialized_end=403, +) + + +_MUTATECAMPAIGNASSETSREQUEST = _descriptor.Descriptor( + name='MutateCampaignAssetsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignAssetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=406, + serialized_end=592, +) + + +_CAMPAIGNASSETOPERATION = _descriptor.Descriptor( + name='CampaignAssetOperation', + full_name='google.ads.googleads.v5.services.CampaignAssetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignAssetOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignAssetOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignAssetOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=594, + serialized_end=717, +) + + +_MUTATECAMPAIGNASSETSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignAssetsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignAssetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsResponse.partial_failure_error', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignAssetsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=720, + serialized_end=879, +) + + +_MUTATECAMPAIGNASSETRESULT = _descriptor.Descriptor( + name='MutateCampaignAssetResult', + full_name='google.ads.googleads.v5.services.MutateCampaignAssetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignAssetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=881, + serialized_end=931, +) + +_MUTATECAMPAIGNASSETSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNASSETOPERATION +_CAMPAIGNASSETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2._CAMPAIGNASSET +_CAMPAIGNASSETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNASSETOPERATION.fields_by_name['create']) +_CAMPAIGNASSETOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNASSETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNASSETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNASSETOPERATION.fields_by_name['remove']) +_CAMPAIGNASSETOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNASSETOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNASSETSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNASSETSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNASSETRESULT +DESCRIPTOR.message_types_by_name['GetCampaignAssetRequest'] = _GETCAMPAIGNASSETREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignAssetsRequest'] = _MUTATECAMPAIGNASSETSREQUEST +DESCRIPTOR.message_types_by_name['CampaignAssetOperation'] = _CAMPAIGNASSETOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignAssetsResponse'] = _MUTATECAMPAIGNASSETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignAssetResult'] = _MUTATECAMPAIGNASSETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignAssetRequest = _reflection.GeneratedProtocolMessageType('GetCampaignAssetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNASSETREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_asset_service_pb2' + , + '__doc__': """Request message for [CampaignAssetService.GetCampaignAsset][google.ads + .googleads.v5.services.CampaignAssetService.GetCampaignAsset]. + + Attributes: + resource_name: + Required. The resource name of the campaign asset to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignAssetRequest) + }) +_sym_db.RegisterMessage(GetCampaignAssetRequest) + +MutateCampaignAssetsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignAssetsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNASSETSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_asset_service_pb2' + , + '__doc__': """Request message for [CampaignAssetService.MutateCampaignAssets][google + .ads.googleads.v5.services.CampaignAssetService.MutateCampaignAssets]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign assets are + being modified. + operations: + Required. The list of operations to perform on individual + campaign assets. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignAssetsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignAssetsRequest) + +CampaignAssetOperation = _reflection.GeneratedProtocolMessageType('CampaignAssetOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNASSETOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_asset_service_pb2' + , + '__doc__': """A single operation (create, remove) on a campaign asset. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign asset. + remove: + Remove operation: A resource name for the removed campaign + asset is expected, in this format: ``customers/{customer_id}/ + campaignAssets/{campaign_id}~{asset_id}~{field_type}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignAssetOperation) + }) +_sym_db.RegisterMessage(CampaignAssetOperation) + +MutateCampaignAssetsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignAssetsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNASSETSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_asset_service_pb2' + , + '__doc__': """Response message for a campaign asset mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignAssetsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignAssetsResponse) + +MutateCampaignAssetResult = _reflection.GeneratedProtocolMessageType('MutateCampaignAssetResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNASSETRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_asset_service_pb2' + , + '__doc__': """The result for the campaign asset mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignAssetResult) + }) +_sym_db.RegisterMessage(MutateCampaignAssetResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNASSETREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNASSETSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNASSETSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNASSETSERVICE = _descriptor.ServiceDescriptor( + name='CampaignAssetService', + full_name='google.ads.googleads.v5.services.CampaignAssetService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=934, + serialized_end=1430, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignAsset', + full_name='google.ads.googleads.v5.services.CampaignAssetService.GetCampaignAsset', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNASSETREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2._CAMPAIGNASSET, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=customers/*/campaignAssets/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignAssets', + full_name='google.ads.googleads.v5.services.CampaignAssetService.MutateCampaignAssets', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNASSETSREQUEST, + output_type=_MUTATECAMPAIGNASSETSRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/campaignAssets:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNASSETSERVICE) + +DESCRIPTOR.services_by_name['CampaignAssetService'] = _CAMPAIGNASSETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2_grpc.py new file mode 100644 index 000000000..a33fd9eb6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_asset_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_asset_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2 +from google.ads.google_ads.v5.proto.services import campaign_asset_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2 + + +class CampaignAssetServiceStub(object): + """Proto file describing the CampaignAsset service. + + Service to manage campaign assets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignAsset = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignAssetService/GetCampaignAsset', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.GetCampaignAssetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2.CampaignAsset.FromString, + ) + self.MutateCampaignAssets = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignAssetService/MutateCampaignAssets', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsResponse.FromString, + ) + + +class CampaignAssetServiceServicer(object): + """Proto file describing the CampaignAsset service. + + Service to manage campaign assets. + """ + + def GetCampaignAsset(self, request, context): + """Returns the requested campaign asset in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignAssets(self, request, context): + """Creates or removes campaign assets. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignAssetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignAsset': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignAsset, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.GetCampaignAssetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2.CampaignAsset.SerializeToString, + ), + 'MutateCampaignAssets': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignAssets, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignAssetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignAssetService(object): + """Proto file describing the CampaignAsset service. + + Service to manage campaign assets. + """ + + @staticmethod + def GetCampaignAsset(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignAssetService/GetCampaignAsset', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.GetCampaignAssetRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2.CampaignAsset.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignAssets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignAssetService/MutateCampaignAssets', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.MutateCampaignAssetsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2.py new file mode 100644 index 000000000..85dd1baff --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_audience_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_audience_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB CampaignAudienceViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/services/campaign_audience_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/resources/campaign_audience_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"n\n\x1eGetCampaignAudienceViewRequest\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-googleads.googleapis.com/CampaignAudienceView2\xa2\x02\n\x1b\x43\x61mpaignAudienceViewService\x12\xe5\x01\n\x17GetCampaignAudienceView\x12@.google.ads.googleads.v5.services.GetCampaignAudienceViewRequest\x1a\x37.google.ads.googleads.v5.resources.CampaignAudienceView\"O\x82\xd3\xe4\x93\x02\x39\x12\x37/v5/{resource_name=customers/*/campaignAudienceViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x87\x02\n$com.google.ads.googleads.v5.servicesB CampaignAudienceViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNAUDIENCEVIEWREQUEST = _descriptor.Descriptor( + name='GetCampaignAudienceViewRequest', + full_name='google.ads.googleads.v5.services.GetCampaignAudienceViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignAudienceViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A/\n-googleads.googleapis.com/CampaignAudienceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=408, +) + +DESCRIPTOR.message_types_by_name['GetCampaignAudienceViewRequest'] = _GETCAMPAIGNAUDIENCEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignAudienceViewRequest = _reflection.GeneratedProtocolMessageType('GetCampaignAudienceViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNAUDIENCEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_audience_view_service_pb2' + , + '__doc__': """Request message for [CampaignAudienceViewService.GetCampaignAudienceVi + ew][google.ads.googleads.v5.services.CampaignAudienceViewService.GetCa + mpaignAudienceView]. + + Attributes: + resource_name: + Required. The resource name of the campaign audience view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignAudienceViewRequest) + }) +_sym_db.RegisterMessage(GetCampaignAudienceViewRequest) + + +DESCRIPTOR._options = None +_GETCAMPAIGNAUDIENCEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_CAMPAIGNAUDIENCEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='CampaignAudienceViewService', + full_name='google.ads.googleads.v5.services.CampaignAudienceViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=411, + serialized_end=701, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignAudienceView', + full_name='google.ads.googleads.v5.services.CampaignAudienceViewService.GetCampaignAudienceView', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNAUDIENCEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2._CAMPAIGNAUDIENCEVIEW, + serialized_options=b'\202\323\344\223\0029\0227/v5/{resource_name=customers/*/campaignAudienceViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNAUDIENCEVIEWSERVICE) + +DESCRIPTOR.services_by_name['CampaignAudienceViewService'] = _CAMPAIGNAUDIENCEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2_grpc.py new file mode 100644 index 000000000..c74d59993 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_audience_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2 +from google.ads.google_ads.v5.proto.services import campaign_audience_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__audience__view__service__pb2 + + +class CampaignAudienceViewServiceStub(object): + """Proto file describing the Campaign Audience View service. + + Service to manage campaign audience views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignAudienceView = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignAudienceViewService/GetCampaignAudienceView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__audience__view__service__pb2.GetCampaignAudienceViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2.CampaignAudienceView.FromString, + ) + + +class CampaignAudienceViewServiceServicer(object): + """Proto file describing the Campaign Audience View service. + + Service to manage campaign audience views. + """ + + def GetCampaignAudienceView(self, request, context): + """Returns the requested campaign audience view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignAudienceViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignAudienceView': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignAudienceView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__audience__view__service__pb2.GetCampaignAudienceViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2.CampaignAudienceView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignAudienceViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignAudienceViewService(object): + """Proto file describing the Campaign Audience View service. + + Service to manage campaign audience views. + """ + + @staticmethod + def GetCampaignAudienceView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignAudienceViewService/GetCampaignAudienceView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__audience__view__service__pb2.GetCampaignAudienceViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2.CampaignAudienceView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2.py new file mode 100644 index 000000000..623b149ba --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_bid_modifier_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_bid_modifier_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037CampaignBidModifierServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/campaign_bid_modifier_service.proto\x12 google.ads.googleads.v5.services\x1a\x43google/ads/googleads_v5/proto/resources/campaign_bid_modifier.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"l\n\x1dGetCampaignBidModifierRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/CampaignBidModifier\"\xc6\x01\n!MutateCampaignBidModifiersRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\noperations\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.services.CampaignBidModifierOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x82\x02\n\x1c\x43\x61mpaignBidModifierOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12H\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.CampaignBidModifierH\x00\x12H\n\x06update\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.CampaignBidModifierH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xab\x01\n\"MutateCampaignBidModifiersResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12R\n\x07results\x18\x02 \x03(\x0b\x32\x41.google.ads.googleads.v5.services.MutateCampaignBidModifierResult\"8\n\x1fMutateCampaignBidModifierResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xa6\x04\n\x1a\x43\x61mpaignBidModifierService\x12\xe1\x01\n\x16GetCampaignBidModifier\x12?.google.ads.googleads.v5.services.GetCampaignBidModifierRequest\x1a\x36.google.ads.googleads.v5.resources.CampaignBidModifier\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/campaignBidModifiers/*}\xda\x41\rresource_name\x12\x86\x02\n\x1aMutateCampaignBidModifiers\x12\x43.google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest\x1a\x44.google.ads.googleads.v5.services.MutateCampaignBidModifiersResponse\"]\x82\xd3\xe4\x93\x02>\"9/v5/customers/{customer_id=*}/campaignBidModifiers:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1f\x43\x61mpaignBidModifierServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNBIDMODIFIERREQUEST = _descriptor.Descriptor( + name='GetCampaignBidModifierRequest', + full_name='google.ads.googleads.v5.services.GetCampaignBidModifierRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignBidModifierRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/CampaignBidModifier', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=355, + serialized_end=463, +) + + +_MUTATECAMPAIGNBIDMODIFIERSREQUEST = _descriptor.Descriptor( + name='MutateCampaignBidModifiersRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=466, + serialized_end=664, +) + + +_CAMPAIGNBIDMODIFIEROPERATION = _descriptor.Descriptor( + name='CampaignBidModifierOperation', + full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignBidModifierOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=667, + serialized_end=925, +) + + +_MUTATECAMPAIGNBIDMODIFIERSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignBidModifiersResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifiersResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=928, + serialized_end=1099, +) + + +_MUTATECAMPAIGNBIDMODIFIERRESULT = _descriptor.Descriptor( + name='MutateCampaignBidModifierResult', + full_name='google.ads.googleads.v5.services.MutateCampaignBidModifierResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignBidModifierResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1101, + serialized_end=1157, +) + +_MUTATECAMPAIGNBIDMODIFIERSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNBIDMODIFIEROPERATION +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2._CAMPAIGNBIDMODIFIER +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2._CAMPAIGNBIDMODIFIER +_CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['create']) +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['update']) +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['remove']) +_CAMPAIGNBIDMODIFIEROPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNBIDMODIFIERSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNBIDMODIFIERSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNBIDMODIFIERRESULT +DESCRIPTOR.message_types_by_name['GetCampaignBidModifierRequest'] = _GETCAMPAIGNBIDMODIFIERREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignBidModifiersRequest'] = _MUTATECAMPAIGNBIDMODIFIERSREQUEST +DESCRIPTOR.message_types_by_name['CampaignBidModifierOperation'] = _CAMPAIGNBIDMODIFIEROPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignBidModifiersResponse'] = _MUTATECAMPAIGNBIDMODIFIERSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignBidModifierResult'] = _MUTATECAMPAIGNBIDMODIFIERRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignBidModifierRequest = _reflection.GeneratedProtocolMessageType('GetCampaignBidModifierRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNBIDMODIFIERREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_bid_modifier_service_pb2' + , + '__doc__': """Request message for [CampaignBidModifierService.GetCampaignBidModifier + ][google.ads.googleads.v5.services.CampaignBidModifierService.GetCampa + ignBidModifier]. + + Attributes: + resource_name: + Required. The resource name of the campaign bid modifier to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignBidModifierRequest) + }) +_sym_db.RegisterMessage(GetCampaignBidModifierRequest) + +MutateCampaignBidModifiersRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignBidModifiersRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBIDMODIFIERSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_bid_modifier_service_pb2' + , + '__doc__': """Request message for [CampaignBidModifierService.MutateCampaignBidModif + iers][google.ads.googleads.v5.services.CampaignBidModifierService.Muta + teCampaignBidModifiers]. + + Attributes: + customer_id: + Required. ID of the customer whose campaign bid modifiers are + being modified. + operations: + Required. The list of operations to perform on individual + campaign bid modifiers. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBidModifiersRequest) + }) +_sym_db.RegisterMessage(MutateCampaignBidModifiersRequest) + +CampaignBidModifierOperation = _reflection.GeneratedProtocolMessageType('CampaignBidModifierOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNBIDMODIFIEROPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_bid_modifier_service_pb2' + , + '__doc__': """A single operation (create, remove, update) on a campaign bid + modifier. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign bid modifier. + update: + Update operation: The campaign bid modifier is expected to + have a valid resource name. + remove: + Remove operation: A resource name for the removed campaign bid + modifier is expected, in this format: ``customers/{customer_i + d}/CampaignBidModifiers/{campaign_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignBidModifierOperation) + }) +_sym_db.RegisterMessage(CampaignBidModifierOperation) + +MutateCampaignBidModifiersResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignBidModifiersResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBIDMODIFIERSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_bid_modifier_service_pb2' + , + '__doc__': """Response message for campaign bid modifiers mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBidModifiersResponse) + }) +_sym_db.RegisterMessage(MutateCampaignBidModifiersResponse) + +MutateCampaignBidModifierResult = _reflection.GeneratedProtocolMessageType('MutateCampaignBidModifierResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBIDMODIFIERRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_bid_modifier_service_pb2' + , + '__doc__': """The result for the criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBidModifierResult) + }) +_sym_db.RegisterMessage(MutateCampaignBidModifierResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNBIDMODIFIERREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNBIDMODIFIERSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNBIDMODIFIERSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNBIDMODIFIERSERVICE = _descriptor.ServiceDescriptor( + name='CampaignBidModifierService', + full_name='google.ads.googleads.v5.services.CampaignBidModifierService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1160, + serialized_end=1710, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignBidModifier', + full_name='google.ads.googleads.v5.services.CampaignBidModifierService.GetCampaignBidModifier', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNBIDMODIFIERREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2._CAMPAIGNBIDMODIFIER, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/campaignBidModifiers/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignBidModifiers', + full_name='google.ads.googleads.v5.services.CampaignBidModifierService.MutateCampaignBidModifiers', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNBIDMODIFIERSREQUEST, + output_type=_MUTATECAMPAIGNBIDMODIFIERSRESPONSE, + serialized_options=b'\202\323\344\223\002>\"9/v5/customers/{customer_id=*}/campaignBidModifiers:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNBIDMODIFIERSERVICE) + +DESCRIPTOR.services_by_name['CampaignBidModifierService'] = _CAMPAIGNBIDMODIFIERSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2_grpc.py new file mode 100644 index 000000000..febb1154c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_bid_modifier_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2 +from google.ads.google_ads.v5.proto.services import campaign_bid_modifier_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2 + + +class CampaignBidModifierServiceStub(object): + """Proto file describing the Campaign Bid Modifier service. + + Service to manage campaign bid modifiers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignBidModifier = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignBidModifierService/GetCampaignBidModifier', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.GetCampaignBidModifierRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2.CampaignBidModifier.FromString, + ) + self.MutateCampaignBidModifiers = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignBidModifierService/MutateCampaignBidModifiers', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersResponse.FromString, + ) + + +class CampaignBidModifierServiceServicer(object): + """Proto file describing the Campaign Bid Modifier service. + + Service to manage campaign bid modifiers. + """ + + def GetCampaignBidModifier(self, request, context): + """Returns the requested campaign bid modifier in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignBidModifiers(self, request, context): + """Creates, updates, or removes campaign bid modifiers. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignBidModifierServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignBidModifier': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignBidModifier, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.GetCampaignBidModifierRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2.CampaignBidModifier.SerializeToString, + ), + 'MutateCampaignBidModifiers': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignBidModifiers, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignBidModifierService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignBidModifierService(object): + """Proto file describing the Campaign Bid Modifier service. + + Service to manage campaign bid modifiers. + """ + + @staticmethod + def GetCampaignBidModifier(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignBidModifierService/GetCampaignBidModifier', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.GetCampaignBidModifierRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2.CampaignBidModifier.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignBidModifiers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignBidModifierService/MutateCampaignBidModifiers', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.MutateCampaignBidModifiersResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2.py new file mode 100644 index 000000000..42692d3f2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2.py @@ -0,0 +1,441 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_budget_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_budget_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032CampaignBudgetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/services/campaign_budget_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a=google/ads/googleads_v5/proto/resources/campaign_budget.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"b\n\x18GetCampaignBudgetRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/CampaignBudget\"\xa7\x02\n\x1cMutateCampaignBudgetsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\noperations\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.CampaignBudgetOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xf3\x01\n\x17\x43\x61mpaignBudgetOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CampaignBudgetH\x00\x12\x43\n\x06update\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CampaignBudgetH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa1\x01\n\x1dMutateCampaignBudgetsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.MutateCampaignBudgetResult\"\x7f\n\x1aMutateCampaignBudgetResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12J\n\x0f\x63\x61mpaign_budget\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CampaignBudget2\xf9\x03\n\x15\x43\x61mpaignBudgetService\x12\xcd\x01\n\x11GetCampaignBudget\x12:.google.ads.googleads.v5.services.GetCampaignBudgetRequest\x1a\x31.google.ads.googleads.v5.resources.CampaignBudget\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/campaignBudgets/*}\xda\x41\rresource_name\x12\xf2\x01\n\x15MutateCampaignBudgets\x12>.google.ads.googleads.v5.services.MutateCampaignBudgetsRequest\x1a?.google.ads.googleads.v5.services.MutateCampaignBudgetsResponse\"X\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/campaignBudgets:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x43\x61mpaignBudgetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNBUDGETREQUEST = _descriptor.Descriptor( + name='GetCampaignBudgetRequest', + full_name='google.ads.googleads.v5.services.GetCampaignBudgetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignBudgetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/CampaignBudget', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=408, + serialized_end=506, +) + + +_MUTATECAMPAIGNBUDGETSREQUEST = _descriptor.Descriptor( + name='MutateCampaignBudgetsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=509, + serialized_end=804, +) + + +_CAMPAIGNBUDGETOPERATION = _descriptor.Descriptor( + name='CampaignBudgetOperation', + full_name='google.ads.googleads.v5.services.CampaignBudgetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignBudgetOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignBudgetOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignBudgetOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignBudgetOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignBudgetOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=807, + serialized_end=1050, +) + + +_MUTATECAMPAIGNBUDGETSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignBudgetsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1053, + serialized_end=1214, +) + + +_MUTATECAMPAIGNBUDGETRESULT = _descriptor.Descriptor( + name='MutateCampaignBudgetResult', + full_name='google.ads.googleads.v5.services.MutateCampaignBudgetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.services.MutateCampaignBudgetResult.campaign_budget', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1216, + serialized_end=1343, +) + +_MUTATECAMPAIGNBUDGETSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNBUDGETOPERATION +_MUTATECAMPAIGNBUDGETSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNBUDGETOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNBUDGETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_CAMPAIGNBUDGETOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['create']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['update']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['remove']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNBUDGETSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNBUDGETSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNBUDGETRESULT +_MUTATECAMPAIGNBUDGETRESULT.fields_by_name['campaign_budget'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +DESCRIPTOR.message_types_by_name['GetCampaignBudgetRequest'] = _GETCAMPAIGNBUDGETREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetsRequest'] = _MUTATECAMPAIGNBUDGETSREQUEST +DESCRIPTOR.message_types_by_name['CampaignBudgetOperation'] = _CAMPAIGNBUDGETOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetsResponse'] = _MUTATECAMPAIGNBUDGETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetResult'] = _MUTATECAMPAIGNBUDGETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignBudgetRequest = _reflection.GeneratedProtocolMessageType('GetCampaignBudgetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNBUDGETREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_budget_service_pb2' + , + '__doc__': """Request message for [CampaignBudgetService.GetCampaignBudget][google.a + ds.googleads.v5.services.CampaignBudgetService.GetCampaignBudget]. + + Attributes: + resource_name: + Required. The resource name of the campaign budget to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignBudgetRequest) + }) +_sym_db.RegisterMessage(GetCampaignBudgetRequest) + +MutateCampaignBudgetsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBUDGETSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_budget_service_pb2' + , + '__doc__': """Request message for [CampaignBudgetService.MutateCampaignBudgets][goog + le.ads.googleads.v5.services.CampaignBudgetService.MutateCampaignBudge + ts]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign budgets are + being modified. + operations: + Required. The list of operations to perform on individual + campaign budgets. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBudgetsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignBudgetsRequest) + +CampaignBudgetOperation = _reflection.GeneratedProtocolMessageType('CampaignBudgetOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNBUDGETOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_budget_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign budget. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + budget. + update: + Update operation: The campaign budget is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed budget is + expected, in this format: + ``customers/{customer_id}/campaignBudgets/{budget_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignBudgetOperation) + }) +_sym_db.RegisterMessage(CampaignBudgetOperation) + +MutateCampaignBudgetsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBUDGETSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_budget_service_pb2' + , + '__doc__': """Response message for campaign budget mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBudgetsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignBudgetsResponse) + +MutateCampaignBudgetResult = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNBUDGETRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_budget_service_pb2' + , + '__doc__': """The result for the campaign budget mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign_budget: + The mutated campaign budget with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignBudgetResult) + }) +_sym_db.RegisterMessage(MutateCampaignBudgetResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNBUDGETREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNBUDGETSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNBUDGETSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNBUDGETSERVICE = _descriptor.ServiceDescriptor( + name='CampaignBudgetService', + full_name='google.ads.googleads.v5.services.CampaignBudgetService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1346, + serialized_end=1851, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignBudget', + full_name='google.ads.googleads.v5.services.CampaignBudgetService.GetCampaignBudget', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNBUDGETREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/campaignBudgets/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignBudgets', + full_name='google.ads.googleads.v5.services.CampaignBudgetService.MutateCampaignBudgets', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNBUDGETSREQUEST, + output_type=_MUTATECAMPAIGNBUDGETSRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/campaignBudgets:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNBUDGETSERVICE) + +DESCRIPTOR.services_by_name['CampaignBudgetService'] = _CAMPAIGNBUDGETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2_grpc.py new file mode 100644 index 000000000..d78e65daf --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_budget_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.ads.google_ads.v5.proto.services import campaign_budget_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2 + + +class CampaignBudgetServiceStub(object): + """Proto file describing the Campaign Budget service. + + Service to manage campaign budgets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignBudget = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignBudgetService/GetCampaignBudget', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.GetCampaignBudgetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2.CampaignBudget.FromString, + ) + self.MutateCampaignBudgets = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignBudgetService/MutateCampaignBudgets', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsResponse.FromString, + ) + + +class CampaignBudgetServiceServicer(object): + """Proto file describing the Campaign Budget service. + + Service to manage campaign budgets. + """ + + def GetCampaignBudget(self, request, context): + """Returns the requested Campaign Budget in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignBudgets(self, request, context): + """Creates, updates, or removes campaign budgets. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignBudgetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignBudget': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignBudget, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.GetCampaignBudgetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2.CampaignBudget.SerializeToString, + ), + 'MutateCampaignBudgets': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignBudgets, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignBudgetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignBudgetService(object): + """Proto file describing the Campaign Budget service. + + Service to manage campaign budgets. + """ + + @staticmethod + def GetCampaignBudget(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignBudgetService/GetCampaignBudget', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.GetCampaignBudgetRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2.CampaignBudget.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignBudgets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignBudgetService/MutateCampaignBudgets', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2.py new file mode 100644 index 000000000..1146150d8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2.py @@ -0,0 +1,442 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_criterion_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_criterion_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\035CampaignCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/services/campaign_criterion_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a@google/ads/googleads_v5/proto/resources/campaign_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"h\n\x1bGetCampaignCriterionRequest\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*googleads.googleapis.com/CampaignCriterion\"\xab\x02\n\x1dMutateCampaignCriteriaRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\noperations\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.CampaignCriterionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xfc\x01\n\x1a\x43\x61mpaignCriterionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x46\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignCriterionH\x00\x12\x46\n\x06update\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignCriterionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa5\x01\n\x1eMutateCampaignCriteriaResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12P\n\x07results\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v5.services.MutateCampaignCriterionResult\"\x88\x01\n\x1dMutateCampaignCriterionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12P\n\x12\x63\x61mpaign_criterion\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignCriterion2\x8a\x04\n\x18\x43\x61mpaignCriterionService\x12\xd7\x01\n\x14GetCampaignCriterion\x12=.google.ads.googleads.v5.services.GetCampaignCriterionRequest\x1a\x34.google.ads.googleads.v5.resources.CampaignCriterion\"J\x82\xd3\xe4\x93\x02\x34\x12\x32/v5/{resource_name=customers/*/campaignCriteria/*}\xda\x41\rresource_name\x12\xf6\x01\n\x16MutateCampaignCriteria\x12?.google.ads.googleads.v5.services.MutateCampaignCriteriaRequest\x1a@.google.ads.googleads.v5.services.MutateCampaignCriteriaResponse\"Y\x82\xd3\xe4\x93\x02:\"5/v5/customers/{customer_id=*}/campaignCriteria:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x84\x02\n$com.google.ads.googleads.v5.servicesB\x1d\x43\x61mpaignCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNCRITERIONREQUEST = _descriptor.Descriptor( + name='GetCampaignCriterionRequest', + full_name='google.ads.googleads.v5.services.GetCampaignCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A,\n*googleads.googleapis.com/CampaignCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=414, + serialized_end=518, +) + + +_MUTATECAMPAIGNCRITERIAREQUEST = _descriptor.Descriptor( + name='MutateCampaignCriteriaRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=521, + serialized_end=820, +) + + +_CAMPAIGNCRITERIONOPERATION = _descriptor.Descriptor( + name='CampaignCriterionOperation', + full_name='google.ads.googleads.v5.services.CampaignCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignCriterionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignCriterionOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignCriterionOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignCriterionOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignCriterionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=823, + serialized_end=1075, +) + + +_MUTATECAMPAIGNCRITERIARESPONSE = _descriptor.Descriptor( + name='MutateCampaignCriteriaResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignCriteriaResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1078, + serialized_end=1243, +) + + +_MUTATECAMPAIGNCRITERIONRESULT = _descriptor.Descriptor( + name='MutateCampaignCriterionResult', + full_name='google.ads.googleads.v5.services.MutateCampaignCriterionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignCriterionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion', full_name='google.ads.googleads.v5.services.MutateCampaignCriterionResult.campaign_criterion', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1246, + serialized_end=1382, +) + +_MUTATECAMPAIGNCRITERIAREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNCRITERIONOPERATION +_MUTATECAMPAIGNCRITERIAREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNCRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['create']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['update']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['remove']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNCRITERIARESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNCRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNCRITERIONRESULT +_MUTATECAMPAIGNCRITERIONRESULT.fields_by_name['campaign_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +DESCRIPTOR.message_types_by_name['GetCampaignCriterionRequest'] = _GETCAMPAIGNCRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignCriteriaRequest'] = _MUTATECAMPAIGNCRITERIAREQUEST +DESCRIPTOR.message_types_by_name['CampaignCriterionOperation'] = _CAMPAIGNCRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignCriteriaResponse'] = _MUTATECAMPAIGNCRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignCriterionResult'] = _MUTATECAMPAIGNCRITERIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignCriterionRequest = _reflection.GeneratedProtocolMessageType('GetCampaignCriterionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNCRITERIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_service_pb2' + , + '__doc__': """Request message for [CampaignCriterionService.GetCampaignCriterion][go + ogle.ads.googleads.v5.services.CampaignCriterionService.GetCampaignCri + terion]. + + Attributes: + resource_name: + Required. The resource name of the criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignCriterionRequest) + }) +_sym_db.RegisterMessage(GetCampaignCriterionRequest) + +MutateCampaignCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignCriteriaRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNCRITERIAREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_service_pb2' + , + '__doc__': """Request message for [CampaignCriterionService.MutateCampaignCriteria][ + google.ads.googleads.v5.services.CampaignCriterionService.MutateCampai + gnCriteria]. + + Attributes: + customer_id: + Required. The ID of the customer whose criteria are being + modified. + operations: + Required. The list of operations to perform on individual + criteria. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignCriteriaRequest) + }) +_sym_db.RegisterMessage(MutateCampaignCriteriaRequest) + +CampaignCriterionOperation = _reflection.GeneratedProtocolMessageType('CampaignCriterionOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNCRITERIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign criterion. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + criterion. + update: + Update operation: The criterion is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed criterion is + expected, in this format: ``customers/{customer_id}/campaignC + riteria/{campaign_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignCriterionOperation) + }) +_sym_db.RegisterMessage(CampaignCriterionOperation) + +MutateCampaignCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignCriteriaResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNCRITERIARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_service_pb2' + , + '__doc__': """Response message for campaign criterion mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignCriteriaResponse) + }) +_sym_db.RegisterMessage(MutateCampaignCriteriaResponse) + +MutateCampaignCriterionResult = _reflection.GeneratedProtocolMessageType('MutateCampaignCriterionResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNCRITERIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_service_pb2' + , + '__doc__': """The result for the criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign_criterion: + The mutated campaign criterion with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignCriterionResult) + }) +_sym_db.RegisterMessage(MutateCampaignCriterionResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNCRITERIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNCRITERIAREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNCRITERIAREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNCRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='CampaignCriterionService', + full_name='google.ads.googleads.v5.services.CampaignCriterionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1385, + serialized_end=1907, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignCriterion', + full_name='google.ads.googleads.v5.services.CampaignCriterionService.GetCampaignCriterion', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNCRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION, + serialized_options=b'\202\323\344\223\0024\0222/v5/{resource_name=customers/*/campaignCriteria/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignCriteria', + full_name='google.ads.googleads.v5.services.CampaignCriterionService.MutateCampaignCriteria', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNCRITERIAREQUEST, + output_type=_MUTATECAMPAIGNCRITERIARESPONSE, + serialized_options=b'\202\323\344\223\002:\"5/v5/customers/{customer_id=*}/campaignCriteria:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNCRITERIONSERVICE) + +DESCRIPTOR.services_by_name['CampaignCriterionService'] = _CAMPAIGNCRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..1ecfec0a2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_criterion_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.ads.google_ads.v5.proto.services import campaign_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2 + + +class CampaignCriterionServiceStub(object): + """Proto file describing the Campaign Criterion service. + + Service to manage campaign criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignCriterion = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignCriterionService/GetCampaignCriterion', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.GetCampaignCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2.CampaignCriterion.FromString, + ) + self.MutateCampaignCriteria = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignCriterionService/MutateCampaignCriteria', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaResponse.FromString, + ) + + +class CampaignCriterionServiceServicer(object): + """Proto file describing the Campaign Criterion service. + + Service to manage campaign criteria. + """ + + def GetCampaignCriterion(self, request, context): + """Returns the requested criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignCriteria(self, request, context): + """Creates, updates, or removes criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignCriterion, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.GetCampaignCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2.CampaignCriterion.SerializeToString, + ), + 'MutateCampaignCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignCriteria, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignCriterionService(object): + """Proto file describing the Campaign Criterion service. + + Service to manage campaign criteria. + """ + + @staticmethod + def GetCampaignCriterion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignCriterionService/GetCampaignCriterion', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.GetCampaignCriterionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2.CampaignCriterion.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignCriteria(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignCriterionService/MutateCampaignCriteria', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2.py new file mode 100644 index 000000000..a1ed452de --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_criterion_simulation_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_criterion_simulation_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\'CampaignCriterionSimulationServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nRgoogle/ads/googleads_v5/proto/services/campaign_criterion_simulation_service.proto\x12 google.ads.googleads.v5.services\x1aKgoogle/ads/googleads_v5/proto/resources/campaign_criterion_simulation.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"|\n%GetCampaignCriterionSimulationRequest\x12S\n\rresource_name\x18\x01 \x01(\tB<\xe0\x41\x02\xfa\x41\x36\n4googleads.googleapis.com/CampaignCriterionSimulation2\xc5\x02\n\"CampaignCriterionSimulationService\x12\x81\x02\n\x1eGetCampaignCriterionSimulation\x12G.google.ads.googleads.v5.services.GetCampaignCriterionSimulationRequest\x1a>.google.ads.googleads.v5.resources.CampaignCriterionSimulation\"V\x82\xd3\xe4\x93\x02@\x12>/v5/{resource_name=customers/*/campaignCriterionSimulations/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8e\x02\n$com.google.ads.googleads.v5.servicesB\'CampaignCriterionSimulationServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNCRITERIONSIMULATIONREQUEST = _descriptor.Descriptor( + name='GetCampaignCriterionSimulationRequest', + full_name='google.ads.googleads.v5.services.GetCampaignCriterionSimulationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignCriterionSimulationRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A6\n4googleads.googleapis.com/CampaignCriterionSimulation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=312, + serialized_end=436, +) + +DESCRIPTOR.message_types_by_name['GetCampaignCriterionSimulationRequest'] = _GETCAMPAIGNCRITERIONSIMULATIONREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignCriterionSimulationRequest = _reflection.GeneratedProtocolMessageType('GetCampaignCriterionSimulationRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNCRITERIONSIMULATIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_criterion_simulation_service_pb2' + , + '__doc__': """Request message for [CampaignCriterionSimulationService.GetCampaignCri + terionSimulation][google.ads.googleads.v5.services.CampaignCriterionSi + mulationService.GetCampaignCriterionSimulation]. + + Attributes: + resource_name: + Required. The resource name of the campaign criterion + simulation to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignCriterionSimulationRequest) + }) +_sym_db.RegisterMessage(GetCampaignCriterionSimulationRequest) + + +DESCRIPTOR._options = None +_GETCAMPAIGNCRITERIONSIMULATIONREQUEST.fields_by_name['resource_name']._options = None + +_CAMPAIGNCRITERIONSIMULATIONSERVICE = _descriptor.ServiceDescriptor( + name='CampaignCriterionSimulationService', + full_name='google.ads.googleads.v5.services.CampaignCriterionSimulationService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=439, + serialized_end=764, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignCriterionSimulation', + full_name='google.ads.googleads.v5.services.CampaignCriterionSimulationService.GetCampaignCriterionSimulation', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNCRITERIONSIMULATIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2._CAMPAIGNCRITERIONSIMULATION, + serialized_options=b'\202\323\344\223\002@\022>/v5/{resource_name=customers/*/campaignCriterionSimulations/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNCRITERIONSIMULATIONSERVICE) + +DESCRIPTOR.services_by_name['CampaignCriterionSimulationService'] = _CAMPAIGNCRITERIONSIMULATIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2_grpc.py new file mode 100644 index 000000000..38836d367 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_criterion_simulation_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2 +from google.ads.google_ads.v5.proto.services import campaign_criterion_simulation_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__simulation__service__pb2 + + +class CampaignCriterionSimulationServiceStub(object): + """Proto file describing the CampaignCriterionSimulation service. + + Service to fetch campaign criterion simulations. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignCriterionSimulation = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignCriterionSimulationService/GetCampaignCriterionSimulation', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__simulation__service__pb2.GetCampaignCriterionSimulationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2.CampaignCriterionSimulation.FromString, + ) + + +class CampaignCriterionSimulationServiceServicer(object): + """Proto file describing the CampaignCriterionSimulation service. + + Service to fetch campaign criterion simulations. + """ + + def GetCampaignCriterionSimulation(self, request, context): + """Returns the requested campaign criterion simulation in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignCriterionSimulationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignCriterionSimulation': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignCriterionSimulation, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__simulation__service__pb2.GetCampaignCriterionSimulationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2.CampaignCriterionSimulation.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignCriterionSimulationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignCriterionSimulationService(object): + """Proto file describing the CampaignCriterionSimulation service. + + Service to fetch campaign criterion simulations. + """ + + @staticmethod + def GetCampaignCriterionSimulation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignCriterionSimulationService/GetCampaignCriterionSimulation', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__simulation__service__pb2.GetCampaignCriterionSimulationRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2.CampaignCriterionSimulation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2.py new file mode 100644 index 000000000..c91d3f0a1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2.py @@ -0,0 +1,647 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_draft_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_draft_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_draft_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031CampaignDraftServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/campaign_draft_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a.google.ads.googleads.v5.services.MutateCampaignDraftsResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/campaignDrafts:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x12\xfd\x01\n\x14PromoteCampaignDraft\x12=.google.ads.googleads.v5.services.PromoteCampaignDraftRequest\x1a\x1d.google.longrunning.Operation\"\x86\x01\x82\xd3\xe4\x93\x02>\"9/v5/{campaign_draft=customers/*/campaignDrafts/*}:promote:\x01*\xda\x41\x0e\x63\x61mpaign_draft\xca\x41.\n\x15google.protobuf.Empty\x12\x15google.protobuf.Empty\x12\x87\x02\n\x1cListCampaignDraftAsyncErrors\x12\x45.google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest\x1a\x46.google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsResponse\"X\x82\xd3\xe4\x93\x02\x42\x12@/v5/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x80\x02\n$com.google.ads.googleads.v5.servicesB\x19\x43\x61mpaignDraftServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNDRAFTREQUEST = _descriptor.Descriptor( + name='GetCampaignDraftRequest', + full_name='google.ads.googleads.v5.services.GetCampaignDraftRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignDraftRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A(\n&googleads.googleapis.com/CampaignDraft', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=443, + serialized_end=539, +) + + +_MUTATECAMPAIGNDRAFTSREQUEST = _descriptor.Descriptor( + name='MutateCampaignDraftsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=542, + serialized_end=835, +) + + +_PROMOTECAMPAIGNDRAFTREQUEST = _descriptor.Descriptor( + name='PromoteCampaignDraftRequest', + full_name='google.ads.googleads.v5.services.PromoteCampaignDraftRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_draft', full_name='google.ads.googleads.v5.services.PromoteCampaignDraftRequest.campaign_draft', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=837, + serialized_end=895, +) + + +_CAMPAIGNDRAFTOPERATION = _descriptor.Descriptor( + name='CampaignDraftOperation', + full_name='google.ads.googleads.v5.services.CampaignDraftOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignDraftOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignDraftOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignDraftOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignDraftOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignDraftOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=898, + serialized_end=1138, +) + + +_MUTATECAMPAIGNDRAFTSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignDraftsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignDraftsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignDraftsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1141, + serialized_end=1300, +) + + +_MUTATECAMPAIGNDRAFTRESULT = _descriptor.Descriptor( + name='MutateCampaignDraftResult', + full_name='google.ads.googleads.v5.services.MutateCampaignDraftResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignDraftResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft', full_name='google.ads.googleads.v5.services.MutateCampaignDraftResult.campaign_draft', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1302, + serialized_end=1426, +) + + +_LISTCAMPAIGNDRAFTASYNCERRORSREQUEST = _descriptor.Descriptor( + name='ListCampaignDraftAsyncErrorsRequest', + full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A(\n&googleads.googleapis.com/CampaignDraft', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest.page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest.page_size', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1429, + serialized_end=1576, +) + + +_LISTCAMPAIGNDRAFTASYNCERRORSRESPONSE = _descriptor.Descriptor( + name='ListCampaignDraftAsyncErrorsResponse', + full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='errors', full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsResponse.errors', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1578, + serialized_end=1677, +) + +_MUTATECAMPAIGNDRAFTSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNDRAFTOPERATION +_MUTATECAMPAIGNDRAFTSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNDRAFTOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNDRAFTOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2._CAMPAIGNDRAFT +_CAMPAIGNDRAFTOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2._CAMPAIGNDRAFT +_CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNDRAFTOPERATION.fields_by_name['create']) +_CAMPAIGNDRAFTOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'] +_CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNDRAFTOPERATION.fields_by_name['update']) +_CAMPAIGNDRAFTOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'] +_CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNDRAFTOPERATION.fields_by_name['remove']) +_CAMPAIGNDRAFTOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNDRAFTOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNDRAFTSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNDRAFTSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNDRAFTRESULT +_MUTATECAMPAIGNDRAFTRESULT.fields_by_name['campaign_draft'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2._CAMPAIGNDRAFT +_LISTCAMPAIGNDRAFTASYNCERRORSRESPONSE.fields_by_name['errors'].message_type = google_dot_rpc_dot_status__pb2._STATUS +DESCRIPTOR.message_types_by_name['GetCampaignDraftRequest'] = _GETCAMPAIGNDRAFTREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignDraftsRequest'] = _MUTATECAMPAIGNDRAFTSREQUEST +DESCRIPTOR.message_types_by_name['PromoteCampaignDraftRequest'] = _PROMOTECAMPAIGNDRAFTREQUEST +DESCRIPTOR.message_types_by_name['CampaignDraftOperation'] = _CAMPAIGNDRAFTOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignDraftsResponse'] = _MUTATECAMPAIGNDRAFTSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignDraftResult'] = _MUTATECAMPAIGNDRAFTRESULT +DESCRIPTOR.message_types_by_name['ListCampaignDraftAsyncErrorsRequest'] = _LISTCAMPAIGNDRAFTASYNCERRORSREQUEST +DESCRIPTOR.message_types_by_name['ListCampaignDraftAsyncErrorsResponse'] = _LISTCAMPAIGNDRAFTASYNCERRORSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignDraftRequest = _reflection.GeneratedProtocolMessageType('GetCampaignDraftRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNDRAFTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Request message for [CampaignDraftService.GetCampaignDraft][google.ads + .googleads.v5.services.CampaignDraftService.GetCampaignDraft]. + + Attributes: + resource_name: + Required. The resource name of the campaign draft to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignDraftRequest) + }) +_sym_db.RegisterMessage(GetCampaignDraftRequest) + +MutateCampaignDraftsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignDraftsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNDRAFTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Request message for [CampaignDraftService.MutateCampaignDrafts][google + .ads.googleads.v5.services.CampaignDraftService.MutateCampaignDrafts]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign drafts are + being modified. + operations: + Required. The list of operations to perform on individual + campaign drafts. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignDraftsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignDraftsRequest) + +PromoteCampaignDraftRequest = _reflection.GeneratedProtocolMessageType('PromoteCampaignDraftRequest', (_message.Message,), { + 'DESCRIPTOR' : _PROMOTECAMPAIGNDRAFTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Request message for [CampaignDraftService.PromoteCampaignDraft][google + .ads.googleads.v5.services.CampaignDraftService.PromoteCampaignDraft]. + + Attributes: + campaign_draft: + Required. The resource name of the campaign draft to promote. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.PromoteCampaignDraftRequest) + }) +_sym_db.RegisterMessage(PromoteCampaignDraftRequest) + +CampaignDraftOperation = _reflection.GeneratedProtocolMessageType('CampaignDraftOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNDRAFTOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign draft. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign draft. + update: + Update operation: The campaign draft is expected to have a + valid resource name. + remove: + Remove operation: The campaign draft is expected to have a + valid resource name, in this format: ``customers/{customer_id + }/campaignDrafts/{base_campaign_id}~{draft_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignDraftOperation) + }) +_sym_db.RegisterMessage(CampaignDraftOperation) + +MutateCampaignDraftsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignDraftsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNDRAFTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Response message for campaign draft mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignDraftsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignDraftsResponse) + +MutateCampaignDraftResult = _reflection.GeneratedProtocolMessageType('MutateCampaignDraftResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNDRAFTRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """The result for the campaign draft mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign_draft: + The mutated campaign draft with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignDraftResult) + }) +_sym_db.RegisterMessage(MutateCampaignDraftResult) + +ListCampaignDraftAsyncErrorsRequest = _reflection.GeneratedProtocolMessageType('ListCampaignDraftAsyncErrorsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTCAMPAIGNDRAFTASYNCERRORSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Request message for [CampaignDraftService.ListCampaignDraftAsyncErrors + ][google.ads.googleads.v5.services.CampaignDraftService.ListCampaignDr + aftAsyncErrors]. + + Attributes: + resource_name: + Required. The name of the campaign draft from which to + retrieve the async errors. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When a page + request is too large, the server may decide to further limit + the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsRequest) + }) +_sym_db.RegisterMessage(ListCampaignDraftAsyncErrorsRequest) + +ListCampaignDraftAsyncErrorsResponse = _reflection.GeneratedProtocolMessageType('ListCampaignDraftAsyncErrorsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTCAMPAIGNDRAFTASYNCERRORSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_draft_service_pb2' + , + '__doc__': """Response message for [CampaignDraftService.ListCampaignDraftAsyncError + s][google.ads.googleads.v5.services.CampaignDraftService.ListCampaignD + raftAsyncErrors]. + + Attributes: + errors: + Details of the errors when performing the asynchronous + operation. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListCampaignDraftAsyncErrorsResponse) + }) +_sym_db.RegisterMessage(ListCampaignDraftAsyncErrorsResponse) + + +DESCRIPTOR._options = None +_GETCAMPAIGNDRAFTREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNDRAFTSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNDRAFTSREQUEST.fields_by_name['operations']._options = None +_PROMOTECAMPAIGNDRAFTREQUEST.fields_by_name['campaign_draft']._options = None +_LISTCAMPAIGNDRAFTASYNCERRORSREQUEST.fields_by_name['resource_name']._options = None + +_CAMPAIGNDRAFTSERVICE = _descriptor.ServiceDescriptor( + name='CampaignDraftService', + full_name='google.ads.googleads.v5.services.CampaignDraftService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1680, + serialized_end=2698, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignDraft', + full_name='google.ads.googleads.v5.services.CampaignDraftService.GetCampaignDraft', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNDRAFTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2._CAMPAIGNDRAFT, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=customers/*/campaignDrafts/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignDrafts', + full_name='google.ads.googleads.v5.services.CampaignDraftService.MutateCampaignDrafts', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNDRAFTSREQUEST, + output_type=_MUTATECAMPAIGNDRAFTSRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/campaignDrafts:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='PromoteCampaignDraft', + full_name='google.ads.googleads.v5.services.CampaignDraftService.PromoteCampaignDraft', + index=2, + containing_service=None, + input_type=_PROMOTECAMPAIGNDRAFTREQUEST, + output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, + serialized_options=b'\202\323\344\223\002>\"9/v5/{campaign_draft=customers/*/campaignDrafts/*}:promote:\001*\332A\016campaign_draft\312A.\n\025google.protobuf.Empty\022\025google.protobuf.Empty', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ListCampaignDraftAsyncErrors', + full_name='google.ads.googleads.v5.services.CampaignDraftService.ListCampaignDraftAsyncErrors', + index=3, + containing_service=None, + input_type=_LISTCAMPAIGNDRAFTASYNCERRORSREQUEST, + output_type=_LISTCAMPAIGNDRAFTASYNCERRORSRESPONSE, + serialized_options=b'\202\323\344\223\002B\022@/v5/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNDRAFTSERVICE) + +DESCRIPTOR.services_by_name['CampaignDraftService'] = _CAMPAIGNDRAFTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2_grpc.py new file mode 100644 index 000000000..58a6fcca2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_draft_service_pb2_grpc.py @@ -0,0 +1,187 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_draft_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2 +from google.ads.google_ads.v5.proto.services import campaign_draft_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 + + +class CampaignDraftServiceStub(object): + """Proto file describing the Campaign Draft service. + + Service to manage campaign drafts. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignDraft = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignDraftService/GetCampaignDraft', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.GetCampaignDraftRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2.CampaignDraft.FromString, + ) + self.MutateCampaignDrafts = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignDraftService/MutateCampaignDrafts', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsResponse.FromString, + ) + self.PromoteCampaignDraft = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignDraftService/PromoteCampaignDraft', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.PromoteCampaignDraftRequest.SerializeToString, + response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString, + ) + self.ListCampaignDraftAsyncErrors = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignDraftService/ListCampaignDraftAsyncErrors', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsResponse.FromString, + ) + + +class CampaignDraftServiceServicer(object): + """Proto file describing the Campaign Draft service. + + Service to manage campaign drafts. + """ + + def GetCampaignDraft(self, request, context): + """Returns the requested campaign draft in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignDrafts(self, request, context): + """Creates, updates, or removes campaign drafts. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PromoteCampaignDraft(self, request, context): + """Promotes the changes in a draft back to the base campaign. + + This method returns a Long Running Operation (LRO) indicating if the + Promote is done. Use [Operations.GetOperation] to poll the LRO until it + is done. Only a done status is returned in the response. See the status + in the Campaign Draft resource to determine if the promotion was + successful. If the LRO failed, use + [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v5.services.CampaignDraftService.ListCampaignDraftAsyncErrors] to view the list of + error reasons. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListCampaignDraftAsyncErrors(self, request, context): + """Returns all errors that occurred during CampaignDraft promote. Throws an + error if called before campaign draft is promoted. + Supports standard list paging. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignDraftServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignDraft': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignDraft, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.GetCampaignDraftRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2.CampaignDraft.SerializeToString, + ), + 'MutateCampaignDrafts': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignDrafts, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsResponse.SerializeToString, + ), + 'PromoteCampaignDraft': grpc.unary_unary_rpc_method_handler( + servicer.PromoteCampaignDraft, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.PromoteCampaignDraftRequest.FromString, + response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString, + ), + 'ListCampaignDraftAsyncErrors': grpc.unary_unary_rpc_method_handler( + servicer.ListCampaignDraftAsyncErrors, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignDraftService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignDraftService(object): + """Proto file describing the Campaign Draft service. + + Service to manage campaign drafts. + """ + + @staticmethod + def GetCampaignDraft(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignDraftService/GetCampaignDraft', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.GetCampaignDraftRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2.CampaignDraft.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignDrafts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignDraftService/MutateCampaignDrafts', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.MutateCampaignDraftsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def PromoteCampaignDraft(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignDraftService/PromoteCampaignDraft', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.PromoteCampaignDraftRequest.SerializeToString, + google_dot_longrunning_dot_operations__pb2.Operation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListCampaignDraftAsyncErrors(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignDraftService/ListCampaignDraftAsyncErrors', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.ListCampaignDraftAsyncErrorsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2.py new file mode 100644 index 000000000..f58d5248b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2.py @@ -0,0 +1,950 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_experiment_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_experiment_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_experiment_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036CampaignExperimentServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/services/campaign_experiment_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x41google/ads/googleads_v5/proto/resources/campaign_experiment.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"j\n\x1cGetCampaignExperimentRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/CampaignExperiment\"\xaf\x02\n MutateCampaignExperimentsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12V\n\noperations\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v5.services.CampaignExperimentOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xb6\x01\n\x1b\x43\x61mpaignExperimentOperation\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x06update\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CampaignExperimentH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"\xa9\x01\n!MutateCampaignExperimentsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12Q\n\x07results\x18\x02 \x03(\x0b\x32@.google.ads.googleads.v5.services.MutateCampaignExperimentResult\"\x8b\x01\n\x1eMutateCampaignExperimentResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12R\n\x13\x63\x61mpaign_experiment\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CampaignExperiment\"\xab\x01\n\x1f\x43reateCampaignExperimentRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\x13\x63\x61mpaign_experiment\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CampaignExperimentB\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\"?\n CreateCampaignExperimentMetadata\x12\x1b\n\x13\x63\x61mpaign_experiment\x18\x01 \x01(\t\"c\n!GraduateCampaignExperimentRequest\x12 \n\x13\x63\x61mpaign_experiment\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x0f\x63\x61mpaign_budget\x18\x02 \x01(\tB\x03\xe0\x41\x02\"@\n\"GraduateCampaignExperimentResponse\x12\x1a\n\x12graduated_campaign\x18\x01 \x01(\t\"D\n PromoteCampaignExperimentRequest\x12 \n\x13\x63\x61mpaign_experiment\x18\x01 \x01(\tB\x03\xe0\x41\x02\"@\n\x1c\x45ndCampaignExperimentRequest\x12 \n\x13\x63\x61mpaign_experiment\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x9d\x01\n(ListCampaignExperimentAsyncErrorsRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/CampaignExperiment\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"h\n)ListCampaignExperimentAsyncErrorsResponse\x12\"\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x12.google.rpc.Status\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\x8d\x0f\n\x19\x43\x61mpaignExperimentService\x12\xdd\x01\n\x15GetCampaignExperiment\x12>.google.ads.googleads.v5.services.GetCampaignExperimentRequest\x1a\x35.google.ads.googleads.v5.resources.CampaignExperiment\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/campaignExperiments/*}\xda\x41\rresource_name\x12\xc1\x02\n\x18\x43reateCampaignExperiment\x12\x41.google.ads.googleads.v5.services.CreateCampaignExperimentRequest\x1a\x1d.google.longrunning.Operation\"\xc2\x01\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/campaignExperiments:create:\x01*\xda\x41\x1f\x63ustomer_id,campaign_experiment\xca\x41Z\n\x15google.protobuf.Empty\x12\x41google.ads.googleads.v5.services.CreateCampaignExperimentMetadata\x12\x82\x02\n\x19MutateCampaignExperiments\x12\x42.google.ads.googleads.v5.services.MutateCampaignExperimentsRequest\x1a\x43.google.ads.googleads.v5.services.MutateCampaignExperimentsResponse\"\\\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/campaignExperiments:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x12\x9e\x02\n\x1aGraduateCampaignExperiment\x12\x43.google.ads.googleads.v5.services.GraduateCampaignExperimentRequest\x1a\x44.google.ads.googleads.v5.services.GraduateCampaignExperimentResponse\"u\x82\xd3\xe4\x93\x02I\"D/v5/{campaign_experiment=customers/*/campaignExperiments/*}:graduate:\x01*\xda\x41#campaign_experiment,campaign_budget\x12\x96\x02\n\x19PromoteCampaignExperiment\x12\x42.google.ads.googleads.v5.services.PromoteCampaignExperimentRequest\x1a\x1d.google.longrunning.Operation\"\x95\x01\x82\xd3\xe4\x93\x02H\"C/v5/{campaign_experiment=customers/*/campaignExperiments/*}:promote:\x01*\xda\x41\x13\x63\x61mpaign_experiment\xca\x41.\n\x15google.protobuf.Empty\x12\x15google.protobuf.Empty\x12\xd1\x01\n\x15\x45ndCampaignExperiment\x12>.google.ads.googleads.v5.services.EndCampaignExperimentRequest\x1a\x16.google.protobuf.Empty\"`\x82\xd3\xe4\x93\x02\x44\"?/v5/{campaign_experiment=customers/*/campaignExperiments/*}:end:\x01*\xda\x41\x13\x63\x61mpaign_experiment\x12\x9b\x02\n!ListCampaignExperimentAsyncErrors\x12J.google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest\x1aK.google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsResponse\"]\x82\xd3\xe4\x93\x02G\x12\x45/v5/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1e\x43\x61mpaignExperimentServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNEXPERIMENTREQUEST = _descriptor.Descriptor( + name='GetCampaignExperimentRequest', + full_name='google.ads.googleads.v5.services.GetCampaignExperimentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignExperimentRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/CampaignExperiment', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=482, + serialized_end=588, +) + + +_MUTATECAMPAIGNEXPERIMENTSREQUEST = _descriptor.Descriptor( + name='MutateCampaignExperimentsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=591, + serialized_end=894, +) + + +_CAMPAIGNEXPERIMENTOPERATION = _descriptor.Descriptor( + name='CampaignExperimentOperation', + full_name='google.ads.googleads.v5.services.CampaignExperimentOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignExperimentOperation.update_mask', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignExperimentOperation.update', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignExperimentOperation.remove', index=2, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignExperimentOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=897, + serialized_end=1079, +) + + +_MUTATECAMPAIGNEXPERIMENTSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignExperimentsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1082, + serialized_end=1251, +) + + +_MUTATECAMPAIGNEXPERIMENTRESULT = _descriptor.Descriptor( + name='MutateCampaignExperimentResult', + full_name='google.ads.googleads.v5.services.MutateCampaignExperimentResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.MutateCampaignExperimentResult.campaign_experiment', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1254, + serialized_end=1393, +) + + +_CREATECAMPAIGNEXPERIMENTREQUEST = _descriptor.Descriptor( + name='CreateCampaignExperimentRequest', + full_name='google.ads.googleads.v5.services.CreateCampaignExperimentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.CreateCampaignExperimentRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.CreateCampaignExperimentRequest.campaign_experiment', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.CreateCampaignExperimentRequest.validate_only', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1396, + serialized_end=1567, +) + + +_CREATECAMPAIGNEXPERIMENTMETADATA = _descriptor.Descriptor( + name='CreateCampaignExperimentMetadata', + full_name='google.ads.googleads.v5.services.CreateCampaignExperimentMetadata', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.CreateCampaignExperimentMetadata.campaign_experiment', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1569, + serialized_end=1632, +) + + +_GRADUATECAMPAIGNEXPERIMENTREQUEST = _descriptor.Descriptor( + name='GraduateCampaignExperimentRequest', + full_name='google.ads.googleads.v5.services.GraduateCampaignExperimentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.GraduateCampaignExperimentRequest.campaign_experiment', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.services.GraduateCampaignExperimentRequest.campaign_budget', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1634, + serialized_end=1733, +) + + +_GRADUATECAMPAIGNEXPERIMENTRESPONSE = _descriptor.Descriptor( + name='GraduateCampaignExperimentResponse', + full_name='google.ads.googleads.v5.services.GraduateCampaignExperimentResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='graduated_campaign', full_name='google.ads.googleads.v5.services.GraduateCampaignExperimentResponse.graduated_campaign', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1735, + serialized_end=1799, +) + + +_PROMOTECAMPAIGNEXPERIMENTREQUEST = _descriptor.Descriptor( + name='PromoteCampaignExperimentRequest', + full_name='google.ads.googleads.v5.services.PromoteCampaignExperimentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.PromoteCampaignExperimentRequest.campaign_experiment', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1801, + serialized_end=1869, +) + + +_ENDCAMPAIGNEXPERIMENTREQUEST = _descriptor.Descriptor( + name='EndCampaignExperimentRequest', + full_name='google.ads.googleads.v5.services.EndCampaignExperimentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.EndCampaignExperimentRequest.campaign_experiment', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1871, + serialized_end=1935, +) + + +_LISTCAMPAIGNEXPERIMENTASYNCERRORSREQUEST = _descriptor.Descriptor( + name='ListCampaignExperimentAsyncErrorsRequest', + full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/CampaignExperiment', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest.page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest.page_size', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1938, + serialized_end=2095, +) + + +_LISTCAMPAIGNEXPERIMENTASYNCERRORSRESPONSE = _descriptor.Descriptor( + name='ListCampaignExperimentAsyncErrorsResponse', + full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='errors', full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsResponse.errors', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2097, + serialized_end=2201, +) + +_MUTATECAMPAIGNEXPERIMENTSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNEXPERIMENTOPERATION +_MUTATECAMPAIGNEXPERIMENTSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNEXPERIMENTOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNEXPERIMENTOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2._CAMPAIGNEXPERIMENT +_CAMPAIGNEXPERIMENTOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNEXPERIMENTOPERATION.fields_by_name['update']) +_CAMPAIGNEXPERIMENTOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNEXPERIMENTOPERATION.oneofs_by_name['operation'] +_CAMPAIGNEXPERIMENTOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNEXPERIMENTOPERATION.fields_by_name['remove']) +_CAMPAIGNEXPERIMENTOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNEXPERIMENTOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNEXPERIMENTSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNEXPERIMENTSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNEXPERIMENTRESULT +_MUTATECAMPAIGNEXPERIMENTRESULT.fields_by_name['campaign_experiment'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2._CAMPAIGNEXPERIMENT +_CREATECAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_experiment'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2._CAMPAIGNEXPERIMENT +_LISTCAMPAIGNEXPERIMENTASYNCERRORSRESPONSE.fields_by_name['errors'].message_type = google_dot_rpc_dot_status__pb2._STATUS +DESCRIPTOR.message_types_by_name['GetCampaignExperimentRequest'] = _GETCAMPAIGNEXPERIMENTREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignExperimentsRequest'] = _MUTATECAMPAIGNEXPERIMENTSREQUEST +DESCRIPTOR.message_types_by_name['CampaignExperimentOperation'] = _CAMPAIGNEXPERIMENTOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignExperimentsResponse'] = _MUTATECAMPAIGNEXPERIMENTSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignExperimentResult'] = _MUTATECAMPAIGNEXPERIMENTRESULT +DESCRIPTOR.message_types_by_name['CreateCampaignExperimentRequest'] = _CREATECAMPAIGNEXPERIMENTREQUEST +DESCRIPTOR.message_types_by_name['CreateCampaignExperimentMetadata'] = _CREATECAMPAIGNEXPERIMENTMETADATA +DESCRIPTOR.message_types_by_name['GraduateCampaignExperimentRequest'] = _GRADUATECAMPAIGNEXPERIMENTREQUEST +DESCRIPTOR.message_types_by_name['GraduateCampaignExperimentResponse'] = _GRADUATECAMPAIGNEXPERIMENTRESPONSE +DESCRIPTOR.message_types_by_name['PromoteCampaignExperimentRequest'] = _PROMOTECAMPAIGNEXPERIMENTREQUEST +DESCRIPTOR.message_types_by_name['EndCampaignExperimentRequest'] = _ENDCAMPAIGNEXPERIMENTREQUEST +DESCRIPTOR.message_types_by_name['ListCampaignExperimentAsyncErrorsRequest'] = _LISTCAMPAIGNEXPERIMENTASYNCERRORSREQUEST +DESCRIPTOR.message_types_by_name['ListCampaignExperimentAsyncErrorsResponse'] = _LISTCAMPAIGNEXPERIMENTASYNCERRORSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignExperimentRequest = _reflection.GeneratedProtocolMessageType('GetCampaignExperimentRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNEXPERIMENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.GetCampaignExperiment][ + google.ads.googleads.v5.services.CampaignExperimentService.GetCampaign + Experiment]. + + Attributes: + resource_name: + Required. The resource name of the campaign experiment to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignExperimentRequest) + }) +_sym_db.RegisterMessage(GetCampaignExperimentRequest) + +MutateCampaignExperimentsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignExperimentsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXPERIMENTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.MutateCampaignExperimen + ts][google.ads.googleads.v5.services.CampaignExperimentService.MutateC + ampaignExperiments]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign experiments + are being modified. + operations: + Required. The list of operations to perform on individual + campaign experiments. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExperimentsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignExperimentsRequest) + +CampaignExperimentOperation = _reflection.GeneratedProtocolMessageType('CampaignExperimentOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXPERIMENTOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """A single update operation on a campaign experiment. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + update: + Update operation: The campaign experiment is expected to have + a valid resource name. + remove: + Remove operation: The campaign experiment is expected to have + a valid resource name, in this format: ``customers/{customer_ + id}/campaignExperiments/{campaign_experiment_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignExperimentOperation) + }) +_sym_db.RegisterMessage(CampaignExperimentOperation) + +MutateCampaignExperimentsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignExperimentsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXPERIMENTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Response message for campaign experiment mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExperimentsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignExperimentsResponse) + +MutateCampaignExperimentResult = _reflection.GeneratedProtocolMessageType('MutateCampaignExperimentResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXPERIMENTRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """The result for the campaign experiment mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign_experiment: + The mutated campaign experiment with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExperimentResult) + }) +_sym_db.RegisterMessage(MutateCampaignExperimentResult) + +CreateCampaignExperimentRequest = _reflection.GeneratedProtocolMessageType('CreateCampaignExperimentRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATECAMPAIGNEXPERIMENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.CreateCampaignExperimen + t][google.ads.googleads.v5.services.CampaignExperimentService.CreateCa + mpaignExperiment]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign experiment is + being created. + campaign_experiment: + Required. The campaign experiment to be created. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateCampaignExperimentRequest) + }) +_sym_db.RegisterMessage(CreateCampaignExperimentRequest) + +CreateCampaignExperimentMetadata = _reflection.GeneratedProtocolMessageType('CreateCampaignExperimentMetadata', (_message.Message,), { + 'DESCRIPTOR' : _CREATECAMPAIGNEXPERIMENTMETADATA, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Message used as metadata returned in Long Running Operations for + CreateCampaignExperimentRequest + + Attributes: + campaign_experiment: + Resource name of campaign experiment created. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateCampaignExperimentMetadata) + }) +_sym_db.RegisterMessage(CreateCampaignExperimentMetadata) + +GraduateCampaignExperimentRequest = _reflection.GeneratedProtocolMessageType('GraduateCampaignExperimentRequest', (_message.Message,), { + 'DESCRIPTOR' : _GRADUATECAMPAIGNEXPERIMENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.GraduateCampaignExperim + ent][google.ads.googleads.v5.services.CampaignExperimentService.Gradua + teCampaignExperiment]. + + Attributes: + campaign_experiment: + Required. The resource name of the campaign experiment to + graduate. + campaign_budget: + Required. Resource name of the budget to attach to the + campaign graduated from the experiment. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GraduateCampaignExperimentRequest) + }) +_sym_db.RegisterMessage(GraduateCampaignExperimentRequest) + +GraduateCampaignExperimentResponse = _reflection.GeneratedProtocolMessageType('GraduateCampaignExperimentResponse', (_message.Message,), { + 'DESCRIPTOR' : _GRADUATECAMPAIGNEXPERIMENTRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Response message for campaign experiment graduate. + + Attributes: + graduated_campaign: + The resource name of the campaign from the graduated + experiment. This campaign is the same one as + CampaignExperiment.experiment\_campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GraduateCampaignExperimentResponse) + }) +_sym_db.RegisterMessage(GraduateCampaignExperimentResponse) + +PromoteCampaignExperimentRequest = _reflection.GeneratedProtocolMessageType('PromoteCampaignExperimentRequest', (_message.Message,), { + 'DESCRIPTOR' : _PROMOTECAMPAIGNEXPERIMENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.PromoteCampaignExperime + nt][google.ads.googleads.v5.services.CampaignExperimentService.Promote + CampaignExperiment]. + + Attributes: + campaign_experiment: + Required. The resource name of the campaign experiment to + promote. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.PromoteCampaignExperimentRequest) + }) +_sym_db.RegisterMessage(PromoteCampaignExperimentRequest) + +EndCampaignExperimentRequest = _reflection.GeneratedProtocolMessageType('EndCampaignExperimentRequest', (_message.Message,), { + 'DESCRIPTOR' : _ENDCAMPAIGNEXPERIMENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.EndCampaignExperiment][ + google.ads.googleads.v5.services.CampaignExperimentService.EndCampaign + Experiment]. + + Attributes: + campaign_experiment: + Required. The resource name of the campaign experiment to end. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.EndCampaignExperimentRequest) + }) +_sym_db.RegisterMessage(EndCampaignExperimentRequest) + +ListCampaignExperimentAsyncErrorsRequest = _reflection.GeneratedProtocolMessageType('ListCampaignExperimentAsyncErrorsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTCAMPAIGNEXPERIMENTASYNCERRORSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Request message for [CampaignExperimentService.ListCampaignExperimentA + syncErrors][google.ads.googleads.v5.services.CampaignExperimentService + .ListCampaignExperimentAsyncErrors]. + + Attributes: + resource_name: + Required. The name of the campaign experiment from which to + retrieve the async errors. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When a page + request is too large, the server may decide to further limit + the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsRequest) + }) +_sym_db.RegisterMessage(ListCampaignExperimentAsyncErrorsRequest) + +ListCampaignExperimentAsyncErrorsResponse = _reflection.GeneratedProtocolMessageType('ListCampaignExperimentAsyncErrorsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTCAMPAIGNEXPERIMENTASYNCERRORSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_experiment_service_pb2' + , + '__doc__': """Response message for [CampaignExperimentService.ListCampaignExperiment + AsyncErrors][google.ads.googleads.v5.services.CampaignExperimentServic + e.ListCampaignExperimentAsyncErrors]. + + Attributes: + errors: + Details of the errors when performing the asynchronous + operation. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListCampaignExperimentAsyncErrorsResponse) + }) +_sym_db.RegisterMessage(ListCampaignExperimentAsyncErrorsResponse) + + +DESCRIPTOR._options = None +_GETCAMPAIGNEXPERIMENTREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNEXPERIMENTSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNEXPERIMENTSREQUEST.fields_by_name['operations']._options = None +_CREATECAMPAIGNEXPERIMENTREQUEST.fields_by_name['customer_id']._options = None +_CREATECAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_experiment']._options = None +_GRADUATECAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_experiment']._options = None +_GRADUATECAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_budget']._options = None +_PROMOTECAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_experiment']._options = None +_ENDCAMPAIGNEXPERIMENTREQUEST.fields_by_name['campaign_experiment']._options = None +_LISTCAMPAIGNEXPERIMENTASYNCERRORSREQUEST.fields_by_name['resource_name']._options = None + +_CAMPAIGNEXPERIMENTSERVICE = _descriptor.ServiceDescriptor( + name='CampaignExperimentService', + full_name='google.ads.googleads.v5.services.CampaignExperimentService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=2204, + serialized_end=4137, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignExperiment', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.GetCampaignExperiment', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNEXPERIMENTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2._CAMPAIGNEXPERIMENT, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/campaignExperiments/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='CreateCampaignExperiment', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.CreateCampaignExperiment', + index=1, + containing_service=None, + input_type=_CREATECAMPAIGNEXPERIMENTREQUEST, + output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/campaignExperiments:create:\001*\332A\037customer_id,campaign_experiment\312AZ\n\025google.protobuf.Empty\022Agoogle.ads.googleads.v5.services.CreateCampaignExperimentMetadata', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignExperiments', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.MutateCampaignExperiments', + index=2, + containing_service=None, + input_type=_MUTATECAMPAIGNEXPERIMENTSREQUEST, + output_type=_MUTATECAMPAIGNEXPERIMENTSRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/campaignExperiments:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GraduateCampaignExperiment', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.GraduateCampaignExperiment', + index=3, + containing_service=None, + input_type=_GRADUATECAMPAIGNEXPERIMENTREQUEST, + output_type=_GRADUATECAMPAIGNEXPERIMENTRESPONSE, + serialized_options=b'\202\323\344\223\002I\"D/v5/{campaign_experiment=customers/*/campaignExperiments/*}:graduate:\001*\332A#campaign_experiment,campaign_budget', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='PromoteCampaignExperiment', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.PromoteCampaignExperiment', + index=4, + containing_service=None, + input_type=_PROMOTECAMPAIGNEXPERIMENTREQUEST, + output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, + serialized_options=b'\202\323\344\223\002H\"C/v5/{campaign_experiment=customers/*/campaignExperiments/*}:promote:\001*\332A\023campaign_experiment\312A.\n\025google.protobuf.Empty\022\025google.protobuf.Empty', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='EndCampaignExperiment', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.EndCampaignExperiment', + index=5, + containing_service=None, + input_type=_ENDCAMPAIGNEXPERIMENTREQUEST, + output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + serialized_options=b'\202\323\344\223\002D\"?/v5/{campaign_experiment=customers/*/campaignExperiments/*}:end:\001*\332A\023campaign_experiment', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ListCampaignExperimentAsyncErrors', + full_name='google.ads.googleads.v5.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors', + index=6, + containing_service=None, + input_type=_LISTCAMPAIGNEXPERIMENTASYNCERRORSREQUEST, + output_type=_LISTCAMPAIGNEXPERIMENTASYNCERRORSRESPONSE, + serialized_options=b'\202\323\344\223\002G\022E/v5/{resource_name=customers/*/campaignExperiments/*}:listAsyncErrors\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNEXPERIMENTSERVICE) + +DESCRIPTOR.services_by_name['CampaignExperimentService'] = _CAMPAIGNEXPERIMENTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2_grpc.py new file mode 100644 index 000000000..223475117 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_experiment_service_pb2_grpc.py @@ -0,0 +1,322 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_experiment_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2 +from google.ads.google_ads.v5.proto.services import campaign_experiment_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +class CampaignExperimentServiceStub(object): + """Proto file describing the Campaign Experiment service. + + CampaignExperimentService manages the life cycle of campaign experiments. + It is used to create new experiments from drafts, modify experiment + properties, promote changes in an experiment back to its base campaign, + graduate experiments into new stand-alone campaigns, and to remove an + experiment. + + An experiment consists of two variants or arms - the base campaign and the + experiment campaign, directing a fixed share of traffic to each arm. + A campaign experiment is created from a draft of changes to the base campaign + and will be a snapshot of changes in the draft at the time of creation. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignExperiment = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/GetCampaignExperiment', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GetCampaignExperimentRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2.CampaignExperiment.FromString, + ) + self.CreateCampaignExperiment = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/CreateCampaignExperiment', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.CreateCampaignExperimentRequest.SerializeToString, + response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString, + ) + self.MutateCampaignExperiments = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/MutateCampaignExperiments', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsResponse.FromString, + ) + self.GraduateCampaignExperiment = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/GraduateCampaignExperiment', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentResponse.FromString, + ) + self.PromoteCampaignExperiment = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/PromoteCampaignExperiment', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.PromoteCampaignExperimentRequest.SerializeToString, + response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString, + ) + self.EndCampaignExperiment = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/EndCampaignExperiment', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.EndCampaignExperimentRequest.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + ) + self.ListCampaignExperimentAsyncErrors = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExperimentService/ListCampaignExperimentAsyncErrors', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsResponse.FromString, + ) + + +class CampaignExperimentServiceServicer(object): + """Proto file describing the Campaign Experiment service. + + CampaignExperimentService manages the life cycle of campaign experiments. + It is used to create new experiments from drafts, modify experiment + properties, promote changes in an experiment back to its base campaign, + graduate experiments into new stand-alone campaigns, and to remove an + experiment. + + An experiment consists of two variants or arms - the base campaign and the + experiment campaign, directing a fixed share of traffic to each arm. + A campaign experiment is created from a draft of changes to the base campaign + and will be a snapshot of changes in the draft at the time of creation. + """ + + def GetCampaignExperiment(self, request, context): + """Returns the requested campaign experiment in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateCampaignExperiment(self, request, context): + """Creates a campaign experiment based on a campaign draft. The draft campaign + will be forked into a real campaign (called the experiment campaign) that + will begin serving ads if successfully created. + + The campaign experiment is created immediately with status INITIALIZING. + This method return a long running operation that tracks the forking of the + draft campaign. If the forking fails, a list of errors can be retrieved + using the ListCampaignExperimentAsyncErrors method. The operation's + metadata will be a StringValue containing the resource name of the created + campaign experiment. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignExperiments(self, request, context): + """Updates campaign experiments. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GraduateCampaignExperiment(self, request, context): + """Graduates a campaign experiment to a full campaign. The base and experiment + campaigns will start running independently with their own budgets. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def PromoteCampaignExperiment(self, request, context): + """Promotes the changes in a experiment campaign back to the base campaign. + + The campaign experiment is updated immediately with status PROMOTING. + This method return a long running operation that tracks the promoting of + the experiment campaign. If the promoting fails, a list of errors can be + retrieved using the ListCampaignExperimentAsyncErrors method. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EndCampaignExperiment(self, request, context): + """Immediately ends a campaign experiment, changing the experiment's scheduled + end date and without waiting for end of day. End date is updated to be the + time of the request. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListCampaignExperimentAsyncErrors(self, request, context): + """Returns all errors that occurred during CampaignExperiment create or + promote (whichever occurred last). + Supports standard list paging. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignExperimentServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignExperiment': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignExperiment, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GetCampaignExperimentRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2.CampaignExperiment.SerializeToString, + ), + 'CreateCampaignExperiment': grpc.unary_unary_rpc_method_handler( + servicer.CreateCampaignExperiment, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.CreateCampaignExperimentRequest.FromString, + response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString, + ), + 'MutateCampaignExperiments': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignExperiments, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsResponse.SerializeToString, + ), + 'GraduateCampaignExperiment': grpc.unary_unary_rpc_method_handler( + servicer.GraduateCampaignExperiment, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentResponse.SerializeToString, + ), + 'PromoteCampaignExperiment': grpc.unary_unary_rpc_method_handler( + servicer.PromoteCampaignExperiment, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.PromoteCampaignExperimentRequest.FromString, + response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString, + ), + 'EndCampaignExperiment': grpc.unary_unary_rpc_method_handler( + servicer.EndCampaignExperiment, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.EndCampaignExperimentRequest.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + 'ListCampaignExperimentAsyncErrors': grpc.unary_unary_rpc_method_handler( + servicer.ListCampaignExperimentAsyncErrors, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignExperimentService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignExperimentService(object): + """Proto file describing the Campaign Experiment service. + + CampaignExperimentService manages the life cycle of campaign experiments. + It is used to create new experiments from drafts, modify experiment + properties, promote changes in an experiment back to its base campaign, + graduate experiments into new stand-alone campaigns, and to remove an + experiment. + + An experiment consists of two variants or arms - the base campaign and the + experiment campaign, directing a fixed share of traffic to each arm. + A campaign experiment is created from a draft of changes to the base campaign + and will be a snapshot of changes in the draft at the time of creation. + """ + + @staticmethod + def GetCampaignExperiment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/GetCampaignExperiment', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GetCampaignExperimentRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2.CampaignExperiment.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateCampaignExperiment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/CreateCampaignExperiment', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.CreateCampaignExperimentRequest.SerializeToString, + google_dot_longrunning_dot_operations__pb2.Operation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignExperiments(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/MutateCampaignExperiments', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.MutateCampaignExperimentsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GraduateCampaignExperiment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/GraduateCampaignExperiment', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.GraduateCampaignExperimentResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def PromoteCampaignExperiment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/PromoteCampaignExperiment', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.PromoteCampaignExperimentRequest.SerializeToString, + google_dot_longrunning_dot_operations__pb2.Operation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def EndCampaignExperiment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/EndCampaignExperiment', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.EndCampaignExperimentRequest.SerializeToString, + google_dot_protobuf_dot_empty__pb2.Empty.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListCampaignExperimentAsyncErrors(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExperimentService/ListCampaignExperimentAsyncErrors', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.ListCampaignExperimentAsyncErrorsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2.py new file mode 100644 index 000000000..081364952 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2.py @@ -0,0 +1,420 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_extension_setting_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_extension_setting_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB$CampaignExtensionSettingServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/services/campaign_extension_setting_service.proto\x12 google.ads.googleads.v5.services\x1aHgoogle/ads/googleads_v5/proto/resources/campaign_extension_setting.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"v\n\"GetCampaignExtensionSettingRequest\x12P\n\rresource_name\x18\x01 \x01(\tB9\xe0\x41\x02\xfa\x41\x33\n1googleads.googleapis.com/CampaignExtensionSetting\"\xd0\x01\n&MutateCampaignExtensionSettingsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\\\n\noperations\x18\x02 \x03(\x0b\x32\x43.google.ads.googleads.v5.services.CampaignExtensionSettingOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x91\x02\n!CampaignExtensionSettingOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12M\n\x06\x63reate\x18\x01 \x01(\x0b\x32;.google.ads.googleads.v5.resources.CampaignExtensionSettingH\x00\x12M\n\x06update\x18\x02 \x01(\x0b\x32;.google.ads.googleads.v5.resources.CampaignExtensionSettingH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xb5\x01\n\'MutateCampaignExtensionSettingsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12W\n\x07results\x18\x02 \x03(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCampaignExtensionSettingResult\"=\n$MutateCampaignExtensionSettingResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xd3\x04\n\x1f\x43\x61mpaignExtensionSettingService\x12\xf5\x01\n\x1bGetCampaignExtensionSetting\x12\x44.google.ads.googleads.v5.services.GetCampaignExtensionSettingRequest\x1a;.google.ads.googleads.v5.resources.CampaignExtensionSetting\"S\x82\xd3\xe4\x93\x02=\x12;/v5/{resource_name=customers/*/campaignExtensionSettings/*}\xda\x41\rresource_name\x12\x9a\x02\n\x1fMutateCampaignExtensionSettings\x12H.google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest\x1aI.google.ads.googleads.v5.services.MutateCampaignExtensionSettingsResponse\"b\x82\xd3\xe4\x93\x02\x43\">/v5/customers/{customer_id=*}/campaignExtensionSettings:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8b\x02\n$com.google.ads.googleads.v5.servicesB$CampaignExtensionSettingServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNEXTENSIONSETTINGREQUEST = _descriptor.Descriptor( + name='GetCampaignExtensionSettingRequest', + full_name='google.ads.googleads.v5.services.GetCampaignExtensionSettingRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignExtensionSettingRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A3\n1googleads.googleapis.com/CampaignExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=365, + serialized_end=483, +) + + +_MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST = _descriptor.Descriptor( + name='MutateCampaignExtensionSettingsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=486, + serialized_end=694, +) + + +_CAMPAIGNEXTENSIONSETTINGOPERATION = _descriptor.Descriptor( + name='CampaignExtensionSettingOperation', + full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignExtensionSettingOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=697, + serialized_end=970, +) + + +_MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignExtensionSettingsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=973, + serialized_end=1154, +) + + +_MUTATECAMPAIGNEXTENSIONSETTINGRESULT = _descriptor.Descriptor( + name='MutateCampaignExtensionSettingResult', + full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignExtensionSettingResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1156, + serialized_end=1217, +) + +_MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNEXTENSIONSETTINGOPERATION +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2._CAMPAIGNEXTENSIONSETTING +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2._CAMPAIGNEXTENSIONSETTING +_CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['create']) +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['update']) +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['remove']) +_CAMPAIGNEXTENSIONSETTINGOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNEXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNEXTENSIONSETTINGRESULT +DESCRIPTOR.message_types_by_name['GetCampaignExtensionSettingRequest'] = _GETCAMPAIGNEXTENSIONSETTINGREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignExtensionSettingsRequest'] = _MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST +DESCRIPTOR.message_types_by_name['CampaignExtensionSettingOperation'] = _CAMPAIGNEXTENSIONSETTINGOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignExtensionSettingsResponse'] = _MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignExtensionSettingResult'] = _MUTATECAMPAIGNEXTENSIONSETTINGRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignExtensionSettingRequest = _reflection.GeneratedProtocolMessageType('GetCampaignExtensionSettingRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNEXTENSIONSETTINGREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_extension_setting_service_pb2' + , + '__doc__': """Request message for [CampaignExtensionSettingService.GetCampaignExtens + ionSetting][google.ads.googleads.v5.services.CampaignExtensionSettingS + ervice.GetCampaignExtensionSetting]. + + Attributes: + resource_name: + Required. The resource name of the campaign extension setting + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignExtensionSettingRequest) + }) +_sym_db.RegisterMessage(GetCampaignExtensionSettingRequest) + +MutateCampaignExtensionSettingsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignExtensionSettingsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_extension_setting_service_pb2' + , + '__doc__': """Request message for [CampaignExtensionSettingService.MutateCampaignExt + ensionSettings][google.ads.googleads.v5.services.CampaignExtensionSett + ingService.MutateCampaignExtensionSettings]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign extension + settings are being modified. + operations: + Required. The list of operations to perform on individual + campaign extension settings. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExtensionSettingsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignExtensionSettingsRequest) + +CampaignExtensionSettingOperation = _reflection.GeneratedProtocolMessageType('CampaignExtensionSettingOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNEXTENSIONSETTINGOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_extension_setting_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign extension + setting. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign extension setting. + update: + Update operation: The campaign extension setting is expected + to have a valid resource name. + remove: + Remove operation: A resource name for the removed campaign + extension setting is expected, in this format: ``customers/{c + ustomer_id}/campaignExtensionSettings/{campaign_id}~{extension + _type}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignExtensionSettingOperation) + }) +_sym_db.RegisterMessage(CampaignExtensionSettingOperation) + +MutateCampaignExtensionSettingsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignExtensionSettingsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_extension_setting_service_pb2' + , + '__doc__': """Response message for a campaign extension setting mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExtensionSettingsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignExtensionSettingsResponse) + +MutateCampaignExtensionSettingResult = _reflection.GeneratedProtocolMessageType('MutateCampaignExtensionSettingResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNEXTENSIONSETTINGRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_extension_setting_service_pb2' + , + '__doc__': """The result for the campaign extension setting mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignExtensionSettingResult) + }) +_sym_db.RegisterMessage(MutateCampaignExtensionSettingResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNEXTENSIONSETTINGREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNEXTENSIONSETTINGSERVICE = _descriptor.ServiceDescriptor( + name='CampaignExtensionSettingService', + full_name='google.ads.googleads.v5.services.CampaignExtensionSettingService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1220, + serialized_end=1815, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignExtensionSetting', + full_name='google.ads.googleads.v5.services.CampaignExtensionSettingService.GetCampaignExtensionSetting', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNEXTENSIONSETTINGREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2._CAMPAIGNEXTENSIONSETTING, + serialized_options=b'\202\323\344\223\002=\022;/v5/{resource_name=customers/*/campaignExtensionSettings/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignExtensionSettings', + full_name='google.ads.googleads.v5.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNEXTENSIONSETTINGSREQUEST, + output_type=_MUTATECAMPAIGNEXTENSIONSETTINGSRESPONSE, + serialized_options=b'\202\323\344\223\002C\">/v5/customers/{customer_id=*}/campaignExtensionSettings:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNEXTENSIONSETTINGSERVICE) + +DESCRIPTOR.services_by_name['CampaignExtensionSettingService'] = _CAMPAIGNEXTENSIONSETTINGSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2_grpc.py new file mode 100644 index 000000000..e472c3419 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_extension_setting_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2 +from google.ads.google_ads.v5.proto.services import campaign_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2 + + +class CampaignExtensionSettingServiceStub(object): + """Proto file describing the CampaignExtensionSetting service. + + Service to manage campaign extension settings. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignExtensionSetting = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExtensionSettingService/GetCampaignExtensionSetting', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.GetCampaignExtensionSettingRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2.CampaignExtensionSetting.FromString, + ) + self.MutateCampaignExtensionSettings = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignExtensionSettingService/MutateCampaignExtensionSettings', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsResponse.FromString, + ) + + +class CampaignExtensionSettingServiceServicer(object): + """Proto file describing the CampaignExtensionSetting service. + + Service to manage campaign extension settings. + """ + + def GetCampaignExtensionSetting(self, request, context): + """Returns the requested campaign extension setting in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignExtensionSettings(self, request, context): + """Creates, updates, or removes campaign extension settings. Operation + statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignExtensionSettingServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignExtensionSetting': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignExtensionSetting, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.GetCampaignExtensionSettingRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2.CampaignExtensionSetting.SerializeToString, + ), + 'MutateCampaignExtensionSettings': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignExtensionSettings, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignExtensionSettingService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignExtensionSettingService(object): + """Proto file describing the CampaignExtensionSetting service. + + Service to manage campaign extension settings. + """ + + @staticmethod + def GetCampaignExtensionSetting(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExtensionSettingService/GetCampaignExtensionSetting', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.GetCampaignExtensionSettingRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2.CampaignExtensionSetting.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignExtensionSettings(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignExtensionSettingService/MutateCampaignExtensionSettings', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.MutateCampaignExtensionSettingsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2.py new file mode 100644 index 000000000..ad2156c6d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_feed_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_feed_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030CampaignFeedServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/campaign_feed_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a;google/ads/googleads_v5/proto/resources/campaign_feed.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"^\n\x16GetCampaignFeedRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/CampaignFeed\"\xa3\x02\n\x1aMutateCampaignFeedsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12P\n\noperations\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.CampaignFeedOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xed\x01\n\x15\x43\x61mpaignFeedOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x41\n\x06\x63reate\x18\x01 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CampaignFeedH\x00\x12\x41\n\x06update\x18\x02 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CampaignFeedH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x9d\x01\n\x1bMutateCampaignFeedsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12K\n\x07results\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.services.MutateCampaignFeedResult\"y\n\x18MutateCampaignFeedResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x46\n\rcampaign_feed\x18\x02 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CampaignFeed2\xe7\x03\n\x13\x43\x61mpaignFeedService\x12\xc5\x01\n\x0fGetCampaignFeed\x12\x38.google.ads.googleads.v5.services.GetCampaignFeedRequest\x1a/.google.ads.googleads.v5.resources.CampaignFeed\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/campaignFeeds/*}\xda\x41\rresource_name\x12\xea\x01\n\x13MutateCampaignFeeds\x12<.google.ads.googleads.v5.services.MutateCampaignFeedsRequest\x1a=.google.ads.googleads.v5.services.MutateCampaignFeedsResponse\"V\x82\xd3\xe4\x93\x02\x37\"2/v5/customers/{customer_id=*}/campaignFeeds:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18\x43\x61mpaignFeedServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNFEEDREQUEST = _descriptor.Descriptor( + name='GetCampaignFeedRequest', + full_name='google.ads.googleads.v5.services.GetCampaignFeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignFeedRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/CampaignFeed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=404, + serialized_end=498, +) + + +_MUTATECAMPAIGNFEEDSREQUEST = _descriptor.Descriptor( + name='MutateCampaignFeedsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=501, + serialized_end=792, +) + + +_CAMPAIGNFEEDOPERATION = _descriptor.Descriptor( + name='CampaignFeedOperation', + full_name='google.ads.googleads.v5.services.CampaignFeedOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignFeedOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignFeedOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignFeedOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignFeedOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignFeedOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=795, + serialized_end=1032, +) + + +_MUTATECAMPAIGNFEEDSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignFeedsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignFeedsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignFeedsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1035, + serialized_end=1192, +) + + +_MUTATECAMPAIGNFEEDRESULT = _descriptor.Descriptor( + name='MutateCampaignFeedResult', + full_name='google.ads.googleads.v5.services.MutateCampaignFeedResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignFeedResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed', full_name='google.ads.googleads.v5.services.MutateCampaignFeedResult.campaign_feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1194, + serialized_end=1315, +) + +_MUTATECAMPAIGNFEEDSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNFEEDOPERATION +_MUTATECAMPAIGNFEEDSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNFEEDOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNFEEDOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2._CAMPAIGNFEED +_CAMPAIGNFEEDOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2._CAMPAIGNFEED +_CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNFEEDOPERATION.fields_by_name['create']) +_CAMPAIGNFEEDOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'] +_CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNFEEDOPERATION.fields_by_name['update']) +_CAMPAIGNFEEDOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'] +_CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNFEEDOPERATION.fields_by_name['remove']) +_CAMPAIGNFEEDOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNFEEDOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNFEEDSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNFEEDSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNFEEDRESULT +_MUTATECAMPAIGNFEEDRESULT.fields_by_name['campaign_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2._CAMPAIGNFEED +DESCRIPTOR.message_types_by_name['GetCampaignFeedRequest'] = _GETCAMPAIGNFEEDREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignFeedsRequest'] = _MUTATECAMPAIGNFEEDSREQUEST +DESCRIPTOR.message_types_by_name['CampaignFeedOperation'] = _CAMPAIGNFEEDOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignFeedsResponse'] = _MUTATECAMPAIGNFEEDSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignFeedResult'] = _MUTATECAMPAIGNFEEDRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignFeedRequest = _reflection.GeneratedProtocolMessageType('GetCampaignFeedRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNFEEDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_feed_service_pb2' + , + '__doc__': """Request message for [CampaignFeedService.GetCampaignFeed][google.ads.g + oogleads.v5.services.CampaignFeedService.GetCampaignFeed]. + + Attributes: + resource_name: + Required. The resource name of the campaign feed to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignFeedRequest) + }) +_sym_db.RegisterMessage(GetCampaignFeedRequest) + +MutateCampaignFeedsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignFeedsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNFEEDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_feed_service_pb2' + , + '__doc__': """Request message for [CampaignFeedService.MutateCampaignFeeds][google.a + ds.googleads.v5.services.CampaignFeedService.MutateCampaignFeeds]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign feeds are + being modified. + operations: + Required. The list of operations to perform on individual + campaign feeds. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignFeedsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignFeedsRequest) + +CampaignFeedOperation = _reflection.GeneratedProtocolMessageType('CampaignFeedOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNFEEDOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_feed_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign feed. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign feed. + update: + Update operation: The campaign feed is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed campaign + feed is expected, in this format: ``customers/{customer_id}/c + ampaignFeeds/{campaign_id}~{feed_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignFeedOperation) + }) +_sym_db.RegisterMessage(CampaignFeedOperation) + +MutateCampaignFeedsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignFeedsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNFEEDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_feed_service_pb2' + , + '__doc__': """Response message for a campaign feed mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignFeedsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignFeedsResponse) + +MutateCampaignFeedResult = _reflection.GeneratedProtocolMessageType('MutateCampaignFeedResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNFEEDRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_feed_service_pb2' + , + '__doc__': """The result for the campaign feed mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign_feed: + The mutated campaign feed with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignFeedResult) + }) +_sym_db.RegisterMessage(MutateCampaignFeedResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNFEEDREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNFEEDSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNFEEDSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNFEEDSERVICE = _descriptor.ServiceDescriptor( + name='CampaignFeedService', + full_name='google.ads.googleads.v5.services.CampaignFeedService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1318, + serialized_end=1805, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignFeed', + full_name='google.ads.googleads.v5.services.CampaignFeedService.GetCampaignFeed', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNFEEDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2._CAMPAIGNFEED, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/campaignFeeds/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignFeeds', + full_name='google.ads.googleads.v5.services.CampaignFeedService.MutateCampaignFeeds', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNFEEDSREQUEST, + output_type=_MUTATECAMPAIGNFEEDSRESPONSE, + serialized_options=b'\202\323\344\223\0027\"2/v5/customers/{customer_id=*}/campaignFeeds:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNFEEDSERVICE) + +DESCRIPTOR.services_by_name['CampaignFeedService'] = _CAMPAIGNFEEDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2_grpc.py new file mode 100644 index 000000000..ee8e37fed --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_feed_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2 +from google.ads.google_ads.v5.proto.services import campaign_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2 + + +class CampaignFeedServiceStub(object): + """Proto file describing the CampaignFeed service. + + Service to manage campaign feeds. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignFeed = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignFeedService/GetCampaignFeed', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.GetCampaignFeedRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2.CampaignFeed.FromString, + ) + self.MutateCampaignFeeds = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignFeedService/MutateCampaignFeeds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsResponse.FromString, + ) + + +class CampaignFeedServiceServicer(object): + """Proto file describing the CampaignFeed service. + + Service to manage campaign feeds. + """ + + def GetCampaignFeed(self, request, context): + """Returns the requested campaign feed in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignFeeds(self, request, context): + """Creates, updates, or removes campaign feeds. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignFeedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignFeed': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignFeed, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.GetCampaignFeedRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2.CampaignFeed.SerializeToString, + ), + 'MutateCampaignFeeds': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignFeeds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignFeedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignFeedService(object): + """Proto file describing the CampaignFeed service. + + Service to manage campaign feeds. + """ + + @staticmethod + def GetCampaignFeed(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignFeedService/GetCampaignFeed', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.GetCampaignFeedRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2.CampaignFeed.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignFeeds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignFeedService/MutateCampaignFeeds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.MutateCampaignFeedsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2.py new file mode 100644 index 000000000..676497945 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2.py @@ -0,0 +1,390 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031CampaignLabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/campaign_label_service.proto\x12 google.ads.googleads.v5.services\x1a.google.ads.googleads.v5.services.MutateCampaignLabelsResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/campaignLabels:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x80\x02\n$com.google.ads.googleads.v5.servicesB\x19\x43\x61mpaignLabelServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNLABELREQUEST = _descriptor.Descriptor( + name='GetCampaignLabelRequest', + full_name='google.ads.googleads.v5.services.GetCampaignLabelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignLabelRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A(\n&googleads.googleapis.com/CampaignLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=307, + serialized_end=403, +) + + +_MUTATECAMPAIGNLABELSREQUEST = _descriptor.Descriptor( + name='MutateCampaignLabelsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignLabelsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=406, + serialized_end=592, +) + + +_CAMPAIGNLABELOPERATION = _descriptor.Descriptor( + name='CampaignLabelOperation', + full_name='google.ads.googleads.v5.services.CampaignLabelOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignLabelOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignLabelOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignLabelOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=594, + serialized_end=717, +) + + +_MUTATECAMPAIGNLABELSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignLabelsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignLabelsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignLabelsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=720, + serialized_end=879, +) + + +_MUTATECAMPAIGNLABELRESULT = _descriptor.Descriptor( + name='MutateCampaignLabelResult', + full_name='google.ads.googleads.v5.services.MutateCampaignLabelResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignLabelResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=881, + serialized_end=931, +) + +_MUTATECAMPAIGNLABELSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNLABELOPERATION +_CAMPAIGNLABELOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2._CAMPAIGNLABEL +_CAMPAIGNLABELOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNLABELOPERATION.fields_by_name['create']) +_CAMPAIGNLABELOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNLABELOPERATION.oneofs_by_name['operation'] +_CAMPAIGNLABELOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNLABELOPERATION.fields_by_name['remove']) +_CAMPAIGNLABELOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNLABELOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNLABELSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNLABELSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNLABELRESULT +DESCRIPTOR.message_types_by_name['GetCampaignLabelRequest'] = _GETCAMPAIGNLABELREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignLabelsRequest'] = _MUTATECAMPAIGNLABELSREQUEST +DESCRIPTOR.message_types_by_name['CampaignLabelOperation'] = _CAMPAIGNLABELOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignLabelsResponse'] = _MUTATECAMPAIGNLABELSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignLabelResult'] = _MUTATECAMPAIGNLABELRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignLabelRequest = _reflection.GeneratedProtocolMessageType('GetCampaignLabelRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNLABELREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_label_service_pb2' + , + '__doc__': """Request message for [CampaignLabelService.GetCampaignLabel][google.ads + .googleads.v5.services.CampaignLabelService.GetCampaignLabel]. + + Attributes: + resource_name: + Required. The resource name of the campaign-label relationship + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignLabelRequest) + }) +_sym_db.RegisterMessage(GetCampaignLabelRequest) + +MutateCampaignLabelsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignLabelsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNLABELSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_label_service_pb2' + , + '__doc__': """Request message for [CampaignLabelService.MutateCampaignLabels][google + .ads.googleads.v5.services.CampaignLabelService.MutateCampaignLabels]. + + Attributes: + customer_id: + Required. ID of the customer whose campaign-label + relationships are being modified. + operations: + Required. The list of operations to perform on campaign-label + relationships. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignLabelsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignLabelsRequest) + +CampaignLabelOperation = _reflection.GeneratedProtocolMessageType('CampaignLabelOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNLABELOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_label_service_pb2' + , + '__doc__': """A single operation (create, remove) on a campaign-label relationship. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign-label relationship. + remove: + Remove operation: A resource name for the campaign-label + relationship being removed, in this format: ``customers/{cust + omer_id}/campaignLabels/{campaign_id}~{label_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignLabelOperation) + }) +_sym_db.RegisterMessage(CampaignLabelOperation) + +MutateCampaignLabelsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignLabelsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNLABELSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_label_service_pb2' + , + '__doc__': """Response message for a campaign labels mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignLabelsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignLabelsResponse) + +MutateCampaignLabelResult = _reflection.GeneratedProtocolMessageType('MutateCampaignLabelResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNLABELRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_label_service_pb2' + , + '__doc__': """The result for a campaign label mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignLabelResult) + }) +_sym_db.RegisterMessage(MutateCampaignLabelResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNLABELREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNLABELSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNLABELSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNLABELSERVICE = _descriptor.ServiceDescriptor( + name='CampaignLabelService', + full_name='google.ads.googleads.v5.services.CampaignLabelService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=934, + serialized_end=1430, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignLabel', + full_name='google.ads.googleads.v5.services.CampaignLabelService.GetCampaignLabel', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNLABELREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2._CAMPAIGNLABEL, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=customers/*/campaignLabels/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignLabels', + full_name='google.ads.googleads.v5.services.CampaignLabelService.MutateCampaignLabels', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNLABELSREQUEST, + output_type=_MUTATECAMPAIGNLABELSRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/campaignLabels:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNLABELSERVICE) + +DESCRIPTOR.services_by_name['CampaignLabelService'] = _CAMPAIGNLABELSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2_grpc.py new file mode 100644 index 000000000..6d8599960 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_label_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2 +from google.ads.google_ads.v5.proto.services import campaign_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2 + + +class CampaignLabelServiceStub(object): + """Proto file describing the Campaign Label service. + + Service to manage labels on campaigns. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignLabel = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignLabelService/GetCampaignLabel', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.GetCampaignLabelRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2.CampaignLabel.FromString, + ) + self.MutateCampaignLabels = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignLabelService/MutateCampaignLabels', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsResponse.FromString, + ) + + +class CampaignLabelServiceServicer(object): + """Proto file describing the Campaign Label service. + + Service to manage labels on campaigns. + """ + + def GetCampaignLabel(self, request, context): + """Returns the requested campaign-label relationship in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignLabels(self, request, context): + """Creates and removes campaign-label relationships. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignLabelServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignLabel': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignLabel, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.GetCampaignLabelRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2.CampaignLabel.SerializeToString, + ), + 'MutateCampaignLabels': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignLabels, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignLabelService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignLabelService(object): + """Proto file describing the Campaign Label service. + + Service to manage labels on campaigns. + """ + + @staticmethod + def GetCampaignLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignLabelService/GetCampaignLabel', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.GetCampaignLabelRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2.CampaignLabel.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignLabels(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignLabelService/MutateCampaignLabels', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.MutateCampaignLabelsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_service_pb2.py new file mode 100644 index 000000000..6bcd6e58c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\024CampaignServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/services/campaign_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x36google/ads/googleads_v5/proto/resources/campaign.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"V\n\x12GetCampaignRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/Campaign\"\x9b\x02\n\x16MutateCampaignsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12L\n\noperations\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v5.services.CampaignOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xe1\x01\n\x11\x43\x61mpaignOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12=\n\x06\x63reate\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.CampaignH\x00\x12=\n\x06update\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.CampaignH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x95\x01\n\x17MutateCampaignsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12G\n\x07results\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.MutateCampaignResult\"l\n\x14MutateCampaignResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12=\n\x08\x63\x61mpaign\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.Campaign2\xc3\x03\n\x0f\x43\x61mpaignService\x12\xb5\x01\n\x0bGetCampaign\x12\x34.google.ads.googleads.v5.services.GetCampaignRequest\x1a+.google.ads.googleads.v5.resources.Campaign\"C\x82\xd3\xe4\x93\x02-\x12+/v5/{resource_name=customers/*/campaigns/*}\xda\x41\rresource_name\x12\xda\x01\n\x0fMutateCampaigns\x12\x38.google.ads.googleads.v5.services.MutateCampaignsRequest\x1a\x39.google.ads.googleads.v5.services.MutateCampaignsResponse\"R\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/campaigns:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14\x43\x61mpaignServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNREQUEST = _descriptor.Descriptor( + name='GetCampaignRequest', + full_name='google.ads.googleads.v5.services.GetCampaignRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/Campaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=394, + serialized_end=480, +) + + +_MUTATECAMPAIGNSREQUEST = _descriptor.Descriptor( + name='MutateCampaignsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCampaignsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=483, + serialized_end=766, +) + + +_CAMPAIGNOPERATION = _descriptor.Descriptor( + name='CampaignOperation', + full_name='google.ads.googleads.v5.services.CampaignOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CampaignOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CampaignOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=769, + serialized_end=994, +) + + +_MUTATECAMPAIGNSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=997, + serialized_end=1146, +) + + +_MUTATECAMPAIGNRESULT = _descriptor.Descriptor( + name='MutateCampaignResult', + full_name='google.ads.googleads.v5.services.MutateCampaignResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.services.MutateCampaignResult.campaign', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1148, + serialized_end=1256, +) + +_MUTATECAMPAIGNSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNOPERATION +_MUTATECAMPAIGNSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CAMPAIGNOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_CAMPAIGNOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['create']) +_CAMPAIGNOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['update']) +_CAMPAIGNOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['remove']) +_CAMPAIGNOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNRESULT +_MUTATECAMPAIGNRESULT.fields_by_name['campaign'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +DESCRIPTOR.message_types_by_name['GetCampaignRequest'] = _GETCAMPAIGNREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignsRequest'] = _MUTATECAMPAIGNSREQUEST +DESCRIPTOR.message_types_by_name['CampaignOperation'] = _CAMPAIGNOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignsResponse'] = _MUTATECAMPAIGNSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignResult'] = _MUTATECAMPAIGNRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignRequest = _reflection.GeneratedProtocolMessageType('GetCampaignRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_service_pb2' + , + '__doc__': """Request message for [CampaignService.GetCampaign][google.ads.googleads + .v5.services.CampaignService.GetCampaign]. + + Attributes: + resource_name: + Required. The resource name of the campaign to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignRequest) + }) +_sym_db.RegisterMessage(GetCampaignRequest) + +MutateCampaignsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_service_pb2' + , + '__doc__': """Request message for [CampaignService.MutateCampaigns][google.ads.googl + eads.v5.services.CampaignService.MutateCampaigns]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaigns are being + modified. + operations: + Required. The list of operations to perform on individual + campaigns. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignsRequest) + +CampaignOperation = _reflection.GeneratedProtocolMessageType('CampaignOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a campaign. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign. + update: + Update operation: The campaign is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed campaign is + expected, in this format: + ``customers/{customer_id}/campaigns/{campaign_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignOperation) + }) +_sym_db.RegisterMessage(CampaignOperation) + +MutateCampaignsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_service_pb2' + , + '__doc__': """Response message for campaign mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignsResponse) + +MutateCampaignResult = _reflection.GeneratedProtocolMessageType('MutateCampaignResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_service_pb2' + , + '__doc__': """The result for the campaign mutate. + + Attributes: + resource_name: + Returned for successful operations. + campaign: + The mutated campaign with only mutable fields after mutate. + The field will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignResult) + }) +_sym_db.RegisterMessage(MutateCampaignResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNSERVICE = _descriptor.ServiceDescriptor( + name='CampaignService', + full_name='google.ads.googleads.v5.services.CampaignService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1259, + serialized_end=1710, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaign', + full_name='google.ads.googleads.v5.services.CampaignService.GetCampaign', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN, + serialized_options=b'\202\323\344\223\002-\022+/v5/{resource_name=customers/*/campaigns/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaigns', + full_name='google.ads.googleads.v5.services.CampaignService.MutateCampaigns', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNSREQUEST, + output_type=_MUTATECAMPAIGNSRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/campaigns:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNSERVICE) + +DESCRIPTOR.services_by_name['CampaignService'] = _CAMPAIGNSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_service_pb2_grpc.py new file mode 100644 index 000000000..9997fccb5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2 +from google.ads.google_ads.v5.proto.services import campaign_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2 + + +class CampaignServiceStub(object): + """Proto file describing the Campaign service. + + Service to manage campaigns. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaign = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignService/GetCampaign', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.GetCampaignRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2.Campaign.FromString, + ) + self.MutateCampaigns = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignService/MutateCampaigns', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsResponse.FromString, + ) + + +class CampaignServiceServicer(object): + """Proto file describing the Campaign service. + + Service to manage campaigns. + """ + + def GetCampaign(self, request, context): + """Returns the requested campaign in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaigns(self, request, context): + """Creates, updates, or removes campaigns. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaign': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaign, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.GetCampaignRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2.Campaign.SerializeToString, + ), + 'MutateCampaigns': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaigns, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignService(object): + """Proto file describing the Campaign service. + + Service to manage campaigns. + """ + + @staticmethod + def GetCampaign(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignService/GetCampaign', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.GetCampaignRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2.Campaign.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaigns(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignService/MutateCampaigns', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2.py b/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2.py new file mode 100644 index 000000000..49ca558e7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2.py @@ -0,0 +1,392 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/campaign_shared_set_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import campaign_shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/campaign_shared_set_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\035CampaignSharedSetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/services/campaign_shared_set_service.proto\x12 google.ads.googleads.v5.services\x1a\x41google/ads/googleads_v5/proto/resources/campaign_shared_set.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"h\n\x1bGetCampaignSharedSetRequest\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*googleads.googleapis.com/CampaignSharedSet\"\xc2\x01\n\x1fMutateCampaignSharedSetsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\noperations\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.CampaignSharedSetOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x83\x01\n\x1a\x43\x61mpaignSharedSetOperation\x12\x46\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignSharedSetH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa7\x01\n MutateCampaignSharedSetsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12P\n\x07results\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v5.services.MutateCampaignSharedSetResult\"6\n\x1dMutateCampaignSharedSetResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x94\x04\n\x18\x43\x61mpaignSharedSetService\x12\xd9\x01\n\x14GetCampaignSharedSet\x12=.google.ads.googleads.v5.services.GetCampaignSharedSetRequest\x1a\x34.google.ads.googleads.v5.resources.CampaignSharedSet\"L\x82\xd3\xe4\x93\x02\x36\x12\x34/v5/{resource_name=customers/*/campaignSharedSets/*}\xda\x41\rresource_name\x12\xfe\x01\n\x18MutateCampaignSharedSets\x12\x41.google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest\x1a\x42.google.ads.googleads.v5.services.MutateCampaignSharedSetsResponse\"[\x82\xd3\xe4\x93\x02<\"7/v5/customers/{customer_id=*}/campaignSharedSets:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x84\x02\n$com.google.ads.googleads.v5.servicesB\x1d\x43\x61mpaignSharedSetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNSHAREDSETREQUEST = _descriptor.Descriptor( + name='GetCampaignSharedSetRequest', + full_name='google.ads.googleads.v5.services.GetCampaignSharedSetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCampaignSharedSetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A,\n*googleads.googleapis.com/CampaignSharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=317, + serialized_end=421, +) + + +_MUTATECAMPAIGNSHAREDSETSREQUEST = _descriptor.Descriptor( + name='MutateCampaignSharedSetsRequest', + full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=424, + serialized_end=618, +) + + +_CAMPAIGNSHAREDSETOPERATION = _descriptor.Descriptor( + name='CampaignSharedSetOperation', + full_name='google.ads.googleads.v5.services.CampaignSharedSetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CampaignSharedSetOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CampaignSharedSetOperation.remove', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CampaignSharedSetOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=621, + serialized_end=752, +) + + +_MUTATECAMPAIGNSHAREDSETSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignSharedSetsResponse', + full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=755, + serialized_end=922, +) + + +_MUTATECAMPAIGNSHAREDSETRESULT = _descriptor.Descriptor( + name='MutateCampaignSharedSetResult', + full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCampaignSharedSetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=924, + serialized_end=978, +) + +_MUTATECAMPAIGNSHAREDSETSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNSHAREDSETOPERATION +_CAMPAIGNSHAREDSETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2._CAMPAIGNSHAREDSET +_CAMPAIGNSHAREDSETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNSHAREDSETOPERATION.fields_by_name['create']) +_CAMPAIGNSHAREDSETOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNSHAREDSETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNSHAREDSETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNSHAREDSETOPERATION.fields_by_name['remove']) +_CAMPAIGNSHAREDSETOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNSHAREDSETOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNSHAREDSETSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECAMPAIGNSHAREDSETSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNSHAREDSETRESULT +DESCRIPTOR.message_types_by_name['GetCampaignSharedSetRequest'] = _GETCAMPAIGNSHAREDSETREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignSharedSetsRequest'] = _MUTATECAMPAIGNSHAREDSETSREQUEST +DESCRIPTOR.message_types_by_name['CampaignSharedSetOperation'] = _CAMPAIGNSHAREDSETOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignSharedSetsResponse'] = _MUTATECAMPAIGNSHAREDSETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignSharedSetResult'] = _MUTATECAMPAIGNSHAREDSETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignSharedSetRequest = _reflection.GeneratedProtocolMessageType('GetCampaignSharedSetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCAMPAIGNSHAREDSETREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_shared_set_service_pb2' + , + '__doc__': """Request message for [CampaignSharedSetService.GetCampaignSharedSet][go + ogle.ads.googleads.v5.services.CampaignSharedSetService.GetCampaignSha + redSet]. + + Attributes: + resource_name: + Required. The resource name of the campaign shared set to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCampaignSharedSetRequest) + }) +_sym_db.RegisterMessage(GetCampaignSharedSetRequest) + +MutateCampaignSharedSetsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignSharedSetsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNSHAREDSETSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_shared_set_service_pb2' + , + '__doc__': """Request message for [CampaignSharedSetService.MutateCampaignSharedSets + ][google.ads.googleads.v5.services.CampaignSharedSetService.MutateCamp + aignSharedSets]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign shared sets + are being modified. + operations: + Required. The list of operations to perform on individual + campaign shared sets. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignSharedSetsRequest) + }) +_sym_db.RegisterMessage(MutateCampaignSharedSetsRequest) + +CampaignSharedSetOperation = _reflection.GeneratedProtocolMessageType('CampaignSharedSetOperation', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNSHAREDSETOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_shared_set_service_pb2' + , + '__doc__': """A single operation (create, remove) on an campaign shared set. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign shared set. + remove: + Remove operation: A resource name for the removed campaign + shared set is expected, in this format: ``customers/{customer + _id}/campaignSharedSets/{campaign_id}~{shared_set_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignSharedSetOperation) + }) +_sym_db.RegisterMessage(CampaignSharedSetOperation) + +MutateCampaignSharedSetsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignSharedSetsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNSHAREDSETSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_shared_set_service_pb2' + , + '__doc__': """Response message for a campaign shared set mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignSharedSetsResponse) + }) +_sym_db.RegisterMessage(MutateCampaignSharedSetsResponse) + +MutateCampaignSharedSetResult = _reflection.GeneratedProtocolMessageType('MutateCampaignSharedSetResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECAMPAIGNSHAREDSETRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.campaign_shared_set_service_pb2' + , + '__doc__': """The result for the campaign shared set mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCampaignSharedSetResult) + }) +_sym_db.RegisterMessage(MutateCampaignSharedSetResult) + + +DESCRIPTOR._options = None +_GETCAMPAIGNSHAREDSETREQUEST.fields_by_name['resource_name']._options = None +_MUTATECAMPAIGNSHAREDSETSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECAMPAIGNSHAREDSETSREQUEST.fields_by_name['operations']._options = None + +_CAMPAIGNSHAREDSETSERVICE = _descriptor.ServiceDescriptor( + name='CampaignSharedSetService', + full_name='google.ads.googleads.v5.services.CampaignSharedSetService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=981, + serialized_end=1513, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignSharedSet', + full_name='google.ads.googleads.v5.services.CampaignSharedSetService.GetCampaignSharedSet', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNSHAREDSETREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2._CAMPAIGNSHAREDSET, + serialized_options=b'\202\323\344\223\0026\0224/v5/{resource_name=customers/*/campaignSharedSets/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCampaignSharedSets', + full_name='google.ads.googleads.v5.services.CampaignSharedSetService.MutateCampaignSharedSets', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNSHAREDSETSREQUEST, + output_type=_MUTATECAMPAIGNSHAREDSETSRESPONSE, + serialized_options=b'\202\323\344\223\002<\"7/v5/customers/{customer_id=*}/campaignSharedSets:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNSHAREDSETSERVICE) + +DESCRIPTOR.services_by_name['CampaignSharedSetService'] = _CAMPAIGNSHAREDSETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2_grpc.py new file mode 100644 index 000000000..b0b9737a9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/campaign_shared_set_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import campaign_shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2 +from google.ads.google_ads.v5.proto.services import campaign_shared_set_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2 + + +class CampaignSharedSetServiceStub(object): + """Proto file describing the Campaign Shared Set service. + + Service to manage campaign shared sets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignSharedSet = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignSharedSetService/GetCampaignSharedSet', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.GetCampaignSharedSetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2.CampaignSharedSet.FromString, + ) + self.MutateCampaignSharedSets = channel.unary_unary( + '/google.ads.googleads.v5.services.CampaignSharedSetService/MutateCampaignSharedSets', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsResponse.FromString, + ) + + +class CampaignSharedSetServiceServicer(object): + """Proto file describing the Campaign Shared Set service. + + Service to manage campaign shared sets. + """ + + def GetCampaignSharedSet(self, request, context): + """Returns the requested campaign shared set in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignSharedSets(self, request, context): + """Creates or removes campaign shared sets. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignSharedSetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignSharedSet': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignSharedSet, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.GetCampaignSharedSetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2.CampaignSharedSet.SerializeToString, + ), + 'MutateCampaignSharedSets': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignSharedSets, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CampaignSharedSetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CampaignSharedSetService(object): + """Proto file describing the Campaign Shared Set service. + + Service to manage campaign shared sets. + """ + + @staticmethod + def GetCampaignSharedSet(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignSharedSetService/GetCampaignSharedSet', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.GetCampaignSharedSetRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2.CampaignSharedSet.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCampaignSharedSets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CampaignSharedSetService/MutateCampaignSharedSets', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.MutateCampaignSharedSetsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2.py new file mode 100644 index 000000000..279b1f8ed --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/carrier_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import carrier_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/carrier_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033CarrierConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/carrier_constant_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/carrier_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"d\n\x19GetCarrierConstantRequest\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(googleads.googleapis.com/CarrierConstant2\xfd\x01\n\x16\x43\x61rrierConstantService\x12\xc5\x01\n\x12GetCarrierConstant\x12;.google.ads.googleads.v5.services.GetCarrierConstantRequest\x1a\x32.google.ads.googleads.v5.resources.CarrierConstant\">\x82\xd3\xe4\x93\x02(\x12&/v5/{resource_name=carrierConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1b\x43\x61rrierConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCARRIERCONSTANTREQUEST = _descriptor.Descriptor( + name='GetCarrierConstantRequest', + full_name='google.ads.googleads.v5.services.GetCarrierConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCarrierConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A*\n(googleads.googleapis.com/CarrierConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=386, +) + +DESCRIPTOR.message_types_by_name['GetCarrierConstantRequest'] = _GETCARRIERCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCarrierConstantRequest = _reflection.GeneratedProtocolMessageType('GetCarrierConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCARRIERCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.carrier_constant_service_pb2' + , + '__doc__': """Request message for [CarrierConstantService.GetCarrierConstant][google + .ads.googleads.v5.services.CarrierConstantService.GetCarrierConstant]. + + Attributes: + resource_name: + Required. Resource name of the carrier constant to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCarrierConstantRequest) + }) +_sym_db.RegisterMessage(GetCarrierConstantRequest) + + +DESCRIPTOR._options = None +_GETCARRIERCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_CARRIERCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='CarrierConstantService', + full_name='google.ads.googleads.v5.services.CarrierConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=389, + serialized_end=642, + methods=[ + _descriptor.MethodDescriptor( + name='GetCarrierConstant', + full_name='google.ads.googleads.v5.services.CarrierConstantService.GetCarrierConstant', + index=0, + containing_service=None, + input_type=_GETCARRIERCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2._CARRIERCONSTANT, + serialized_options=b'\202\323\344\223\002(\022&/v5/{resource_name=carrierConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CARRIERCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['CarrierConstantService'] = _CARRIERCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2_grpc.py new file mode 100644 index 000000000..258fd8c94 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/carrier_constant_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import carrier_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2 +from google.ads.google_ads.v5.proto.services import carrier_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_carrier__constant__service__pb2 + + +class CarrierConstantServiceStub(object): + """Proto file describing the carrier constant service. + + Service to fetch carrier constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCarrierConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.CarrierConstantService/GetCarrierConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_carrier__constant__service__pb2.GetCarrierConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2.CarrierConstant.FromString, + ) + + +class CarrierConstantServiceServicer(object): + """Proto file describing the carrier constant service. + + Service to fetch carrier constants. + """ + + def GetCarrierConstant(self, request, context): + """Returns the requested carrier constant in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CarrierConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCarrierConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetCarrierConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_carrier__constant__service__pb2.GetCarrierConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2.CarrierConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CarrierConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CarrierConstantService(object): + """Proto file describing the carrier constant service. + + Service to fetch carrier constants. + """ + + @staticmethod + def GetCarrierConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CarrierConstantService/GetCarrierConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_carrier__constant__service__pb2.GetCarrierConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2.CarrierConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/change_status_service_pb2.py b/google/ads/google_ads/v5/proto/services/change_status_service_pb2.py new file mode 100644 index 000000000..86cabd933 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/change_status_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/change_status_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import change_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/change_status_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030ChangeStatusServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/change_status_service.proto\x12 google.ads.googleads.v5.services\x1a;google/ads/googleads_v5/proto/resources/change_status.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"^\n\x16GetChangeStatusRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/ChangeStatus2\xf9\x01\n\x13\x43hangeStatusService\x12\xc4\x01\n\x0fGetChangeStatus\x12\x38.google.ads.googleads.v5.services.GetChangeStatusRequest\x1a/.google.ads.googleads.v5.resources.ChangeStatus\"F\x82\xd3\xe4\x93\x02\x30\x12./v5/{resource_name=customers/*/changeStatus/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18\x43hangeStatusServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCHANGESTATUSREQUEST = _descriptor.Descriptor( + name='GetChangeStatusRequest', + full_name='google.ads.googleads.v5.services.GetChangeStatusRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetChangeStatusRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/ChangeStatus', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=374, +) + +DESCRIPTOR.message_types_by_name['GetChangeStatusRequest'] = _GETCHANGESTATUSREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetChangeStatusRequest = _reflection.GeneratedProtocolMessageType('GetChangeStatusRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCHANGESTATUSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.change_status_service_pb2' + , + '__doc__': """Request message for '[ChangeStatusService.GetChangeStatus][google.ads. + googleads.v5.services.ChangeStatusService.GetChangeStatus]'. + + Attributes: + resource_name: + Required. The resource name of the change status to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetChangeStatusRequest) + }) +_sym_db.RegisterMessage(GetChangeStatusRequest) + + +DESCRIPTOR._options = None +_GETCHANGESTATUSREQUEST.fields_by_name['resource_name']._options = None + +_CHANGESTATUSSERVICE = _descriptor.ServiceDescriptor( + name='ChangeStatusService', + full_name='google.ads.googleads.v5.services.ChangeStatusService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=377, + serialized_end=626, + methods=[ + _descriptor.MethodDescriptor( + name='GetChangeStatus', + full_name='google.ads.googleads.v5.services.ChangeStatusService.GetChangeStatus', + index=0, + containing_service=None, + input_type=_GETCHANGESTATUSREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2._CHANGESTATUS, + serialized_options=b'\202\323\344\223\0020\022./v5/{resource_name=customers/*/changeStatus/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CHANGESTATUSSERVICE) + +DESCRIPTOR.services_by_name['ChangeStatusService'] = _CHANGESTATUSSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/change_status_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/change_status_service_pb2_grpc.py new file mode 100644 index 000000000..5e0380357 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/change_status_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import change_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2 +from google.ads.google_ads.v5.proto.services import change_status_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_change__status__service__pb2 + + +class ChangeStatusServiceStub(object): + """Proto file describing the Change Status service. + + Service to fetch change statuses. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetChangeStatus = channel.unary_unary( + '/google.ads.googleads.v5.services.ChangeStatusService/GetChangeStatus', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_change__status__service__pb2.GetChangeStatusRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2.ChangeStatus.FromString, + ) + + +class ChangeStatusServiceServicer(object): + """Proto file describing the Change Status service. + + Service to fetch change statuses. + """ + + def GetChangeStatus(self, request, context): + """Returns the requested change status in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ChangeStatusServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetChangeStatus': grpc.unary_unary_rpc_method_handler( + servicer.GetChangeStatus, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_change__status__service__pb2.GetChangeStatusRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2.ChangeStatus.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ChangeStatusService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ChangeStatusService(object): + """Proto file describing the Change Status service. + + Service to fetch change statuses. + """ + + @staticmethod + def GetChangeStatus(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ChangeStatusService/GetChangeStatus', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_change__status__service__pb2.GetChangeStatusRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2.ChangeStatus.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/click_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/click_view_service_pb2.py new file mode 100644 index 000000000..4dd96ed51 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/click_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/click_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import click_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/click_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025ClickViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/services/click_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x38google/ads/googleads_v5/proto/resources/click_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"X\n\x13GetClickViewRequest\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"googleads.googleapis.com/ClickView2\xeb\x01\n\x10\x43lickViewService\x12\xb9\x01\n\x0cGetClickView\x12\x35.google.ads.googleads.v5.services.GetClickViewRequest\x1a,.google.ads.googleads.v5.resources.ClickView\"D\x82\xd3\xe4\x93\x02.\x12,/v5/{resource_name=customers/*/clickViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15\x43lickViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCLICKVIEWREQUEST = _descriptor.Descriptor( + name='GetClickViewRequest', + full_name='google.ads.googleads.v5.services.GetClickViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetClickViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A$\n\"googleads.googleapis.com/ClickView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=274, + serialized_end=362, +) + +DESCRIPTOR.message_types_by_name['GetClickViewRequest'] = _GETCLICKVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetClickViewRequest = _reflection.GeneratedProtocolMessageType('GetClickViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCLICKVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.click_view_service_pb2' + , + '__doc__': """Request message for [ClickViewService.GetClickView][google.ads.googlea + ds.v5.services.ClickViewService.GetClickView]. + + Attributes: + resource_name: + Required. The resource name of the click view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetClickViewRequest) + }) +_sym_db.RegisterMessage(GetClickViewRequest) + + +DESCRIPTOR._options = None +_GETCLICKVIEWREQUEST.fields_by_name['resource_name']._options = None + +_CLICKVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ClickViewService', + full_name='google.ads.googleads.v5.services.ClickViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=365, + serialized_end=600, + methods=[ + _descriptor.MethodDescriptor( + name='GetClickView', + full_name='google.ads.googleads.v5.services.ClickViewService.GetClickView', + index=0, + containing_service=None, + input_type=_GETCLICKVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2._CLICKVIEW, + serialized_options=b'\202\323\344\223\002.\022,/v5/{resource_name=customers/*/clickViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CLICKVIEWSERVICE) + +DESCRIPTOR.services_by_name['ClickViewService'] = _CLICKVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/click_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/click_view_service_pb2_grpc.py new file mode 100644 index 000000000..c57c1c625 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/click_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import click_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2 +from google.ads.google_ads.v5.proto.services import click_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_click__view__service__pb2 + + +class ClickViewServiceStub(object): + """Proto file describing the ClickView service. + + Service to fetch click views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetClickView = channel.unary_unary( + '/google.ads.googleads.v5.services.ClickViewService/GetClickView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_click__view__service__pb2.GetClickViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2.ClickView.FromString, + ) + + +class ClickViewServiceServicer(object): + """Proto file describing the ClickView service. + + Service to fetch click views. + """ + + def GetClickView(self, request, context): + """Returns the requested click view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ClickViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetClickView': grpc.unary_unary_rpc_method_handler( + servicer.GetClickView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_click__view__service__pb2.GetClickViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2.ClickView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ClickViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ClickViewService(object): + """Proto file describing the ClickView service. + + Service to fetch click views. + """ + + @staticmethod + def GetClickView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ClickViewService/GetClickView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_click__view__service__pb2.GetClickViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2.ClickView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2.py b/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2.py new file mode 100644 index 000000000..b6f776a62 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/conversion_action_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import conversion_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/conversion_action_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034ConversionActionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/conversion_action_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/conversion_action.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"f\n\x1aGetConversionActionRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/ConversionAction\"\xc0\x01\n\x1eMutateConversionActionsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12T\n\noperations\x18\x02 \x03(\x0b\x32;.google.ads.googleads.v5.services.ConversionActionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xf9\x01\n\x19\x43onversionActionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x45\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.ConversionActionH\x00\x12\x45\n\x06update\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.ConversionActionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa5\x01\n\x1fMutateConversionActionsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12O\n\x07results\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.services.MutateConversionActionResult\"5\n\x1cMutateConversionActionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x8b\x04\n\x17\x43onversionActionService\x12\xd5\x01\n\x13GetConversionAction\x12<.google.ads.googleads.v5.services.GetConversionActionRequest\x1a\x33.google.ads.googleads.v5.resources.ConversionAction\"K\x82\xd3\xe4\x93\x02\x35\x12\x33/v5/{resource_name=customers/*/conversionActions/*}\xda\x41\rresource_name\x12\xfa\x01\n\x17MutateConversionActions\x12@.google.ads.googleads.v5.services.MutateConversionActionsRequest\x1a\x41.google.ads.googleads.v5.services.MutateConversionActionsResponse\"Z\x82\xd3\xe4\x93\x02;\"6/v5/customers/{customer_id=*}/conversionActions:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1c\x43onversionActionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCONVERSIONACTIONREQUEST = _descriptor.Descriptor( + name='GetConversionActionRequest', + full_name='google.ads.googleads.v5.services.GetConversionActionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetConversionActionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/ConversionAction', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=347, + serialized_end=449, +) + + +_MUTATECONVERSIONACTIONSREQUEST = _descriptor.Descriptor( + name='MutateConversionActionsRequest', + full_name='google.ads.googleads.v5.services.MutateConversionActionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateConversionActionsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateConversionActionsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateConversionActionsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateConversionActionsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=452, + serialized_end=644, +) + + +_CONVERSIONACTIONOPERATION = _descriptor.Descriptor( + name='ConversionActionOperation', + full_name='google.ads.googleads.v5.services.ConversionActionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.ConversionActionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.ConversionActionOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.ConversionActionOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.ConversionActionOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.ConversionActionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=647, + serialized_end=896, +) + + +_MUTATECONVERSIONACTIONSRESPONSE = _descriptor.Descriptor( + name='MutateConversionActionsResponse', + full_name='google.ads.googleads.v5.services.MutateConversionActionsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateConversionActionsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateConversionActionsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=899, + serialized_end=1064, +) + + +_MUTATECONVERSIONACTIONRESULT = _descriptor.Descriptor( + name='MutateConversionActionResult', + full_name='google.ads.googleads.v5.services.MutateConversionActionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateConversionActionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1066, + serialized_end=1119, +) + +_MUTATECONVERSIONACTIONSREQUEST.fields_by_name['operations'].message_type = _CONVERSIONACTIONOPERATION +_CONVERSIONACTIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CONVERSIONACTIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2._CONVERSIONACTION +_CONVERSIONACTIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2._CONVERSIONACTION +_CONVERSIONACTIONOPERATION.oneofs_by_name['operation'].fields.append( + _CONVERSIONACTIONOPERATION.fields_by_name['create']) +_CONVERSIONACTIONOPERATION.fields_by_name['create'].containing_oneof = _CONVERSIONACTIONOPERATION.oneofs_by_name['operation'] +_CONVERSIONACTIONOPERATION.oneofs_by_name['operation'].fields.append( + _CONVERSIONACTIONOPERATION.fields_by_name['update']) +_CONVERSIONACTIONOPERATION.fields_by_name['update'].containing_oneof = _CONVERSIONACTIONOPERATION.oneofs_by_name['operation'] +_CONVERSIONACTIONOPERATION.oneofs_by_name['operation'].fields.append( + _CONVERSIONACTIONOPERATION.fields_by_name['remove']) +_CONVERSIONACTIONOPERATION.fields_by_name['remove'].containing_oneof = _CONVERSIONACTIONOPERATION.oneofs_by_name['operation'] +_MUTATECONVERSIONACTIONSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECONVERSIONACTIONSRESPONSE.fields_by_name['results'].message_type = _MUTATECONVERSIONACTIONRESULT +DESCRIPTOR.message_types_by_name['GetConversionActionRequest'] = _GETCONVERSIONACTIONREQUEST +DESCRIPTOR.message_types_by_name['MutateConversionActionsRequest'] = _MUTATECONVERSIONACTIONSREQUEST +DESCRIPTOR.message_types_by_name['ConversionActionOperation'] = _CONVERSIONACTIONOPERATION +DESCRIPTOR.message_types_by_name['MutateConversionActionsResponse'] = _MUTATECONVERSIONACTIONSRESPONSE +DESCRIPTOR.message_types_by_name['MutateConversionActionResult'] = _MUTATECONVERSIONACTIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetConversionActionRequest = _reflection.GeneratedProtocolMessageType('GetConversionActionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCONVERSIONACTIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_action_service_pb2' + , + '__doc__': """Request message for [ConversionActionService.GetConversionAction][goog + le.ads.googleads.v5.services.ConversionActionService.GetConversionActi + on]. + + Attributes: + resource_name: + Required. The resource name of the conversion action to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetConversionActionRequest) + }) +_sym_db.RegisterMessage(GetConversionActionRequest) + +MutateConversionActionsRequest = _reflection.GeneratedProtocolMessageType('MutateConversionActionsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECONVERSIONACTIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_action_service_pb2' + , + '__doc__': """Request message for [ConversionActionService.MutateConversionActions][ + google.ads.googleads.v5.services.ConversionActionService.MutateConvers + ionActions]. + + Attributes: + customer_id: + Required. The ID of the customer whose conversion actions are + being modified. + operations: + Required. The list of operations to perform on individual + conversion actions. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateConversionActionsRequest) + }) +_sym_db.RegisterMessage(MutateConversionActionsRequest) + +ConversionActionOperation = _reflection.GeneratedProtocolMessageType('ConversionActionOperation', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONACTIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_action_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a conversion action. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + conversion action. + update: + Update operation: The conversion action is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed conversion + action is expected, in this format: ``customers/{customer_id} + /conversionActions/{conversion_action_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ConversionActionOperation) + }) +_sym_db.RegisterMessage(ConversionActionOperation) + +MutateConversionActionsResponse = _reflection.GeneratedProtocolMessageType('MutateConversionActionsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECONVERSIONACTIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_action_service_pb2' + , + '__doc__': """Response message for [ConversionActionService.MutateConversionActions] + [google.ads.googleads.v5.services.ConversionActionService.MutateConver + sionActions]. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateConversionActionsResponse) + }) +_sym_db.RegisterMessage(MutateConversionActionsResponse) + +MutateConversionActionResult = _reflection.GeneratedProtocolMessageType('MutateConversionActionResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECONVERSIONACTIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_action_service_pb2' + , + '__doc__': """The result for the conversion action mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateConversionActionResult) + }) +_sym_db.RegisterMessage(MutateConversionActionResult) + + +DESCRIPTOR._options = None +_GETCONVERSIONACTIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATECONVERSIONACTIONSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECONVERSIONACTIONSREQUEST.fields_by_name['operations']._options = None + +_CONVERSIONACTIONSERVICE = _descriptor.ServiceDescriptor( + name='ConversionActionService', + full_name='google.ads.googleads.v5.services.ConversionActionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1122, + serialized_end=1645, + methods=[ + _descriptor.MethodDescriptor( + name='GetConversionAction', + full_name='google.ads.googleads.v5.services.ConversionActionService.GetConversionAction', + index=0, + containing_service=None, + input_type=_GETCONVERSIONACTIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2._CONVERSIONACTION, + serialized_options=b'\202\323\344\223\0025\0223/v5/{resource_name=customers/*/conversionActions/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateConversionActions', + full_name='google.ads.googleads.v5.services.ConversionActionService.MutateConversionActions', + index=1, + containing_service=None, + input_type=_MUTATECONVERSIONACTIONSREQUEST, + output_type=_MUTATECONVERSIONACTIONSRESPONSE, + serialized_options=b'\202\323\344\223\002;\"6/v5/customers/{customer_id=*}/conversionActions:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CONVERSIONACTIONSERVICE) + +DESCRIPTOR.services_by_name['ConversionActionService'] = _CONVERSIONACTIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2_grpc.py new file mode 100644 index 000000000..870d36d9d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_action_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import conversion_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2 +from google.ads.google_ads.v5.proto.services import conversion_action_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2 + + +class ConversionActionServiceStub(object): + """Proto file describing the Conversion Action service. + + Service to manage conversion actions. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetConversionAction = channel.unary_unary( + '/google.ads.googleads.v5.services.ConversionActionService/GetConversionAction', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.GetConversionActionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2.ConversionAction.FromString, + ) + self.MutateConversionActions = channel.unary_unary( + '/google.ads.googleads.v5.services.ConversionActionService/MutateConversionActions', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsResponse.FromString, + ) + + +class ConversionActionServiceServicer(object): + """Proto file describing the Conversion Action service. + + Service to manage conversion actions. + """ + + def GetConversionAction(self, request, context): + """Returns the requested conversion action. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateConversionActions(self, request, context): + """Creates, updates or removes conversion actions. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConversionActionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetConversionAction': grpc.unary_unary_rpc_method_handler( + servicer.GetConversionAction, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.GetConversionActionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2.ConversionAction.SerializeToString, + ), + 'MutateConversionActions': grpc.unary_unary_rpc_method_handler( + servicer.MutateConversionActions, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ConversionActionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ConversionActionService(object): + """Proto file describing the Conversion Action service. + + Service to manage conversion actions. + """ + + @staticmethod + def GetConversionAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ConversionActionService/GetConversionAction', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.GetConversionActionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2.ConversionAction.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateConversionActions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ConversionActionService/MutateConversionActions', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.MutateConversionActionsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2.py b/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2.py new file mode 100644 index 000000000..7a084c293 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2.py @@ -0,0 +1,635 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/conversion_adjustment_upload_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import conversion_adjustment_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__adjustment__type__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/conversion_adjustment_upload_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB&ConversionAdjustmentUploadServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nQgoogle/ads/googleads_v5/proto/services/conversion_adjustment_upload_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/enums/conversion_adjustment_type.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x17google/rpc/status.proto\"\xd0\x01\n\"UploadConversionAdjustmentsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12[\n\x16\x63onversion_adjustments\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.ConversionAdjustmentB\x03\xe0\x41\x02\x12\x1c\n\x0fpartial_failure\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xa7\x01\n#UploadConversionAdjustmentsResponse\x12\x31\n\x15partial_failure_error\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.ConversionAdjustmentResult\"\xc8\x03\n\x14\x43onversionAdjustment\x12\x1e\n\x11\x63onversion_action\x18\x08 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x61\x64justment_date_time\x18\t \x01(\tH\x02\x88\x01\x01\x12m\n\x0f\x61\x64justment_type\x18\x05 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType\x12M\n\x11restatement_value\x18\x06 \x01(\x0b\x32\x32.google.ads.googleads.v5.services.RestatementValue\x12S\n\x14gclid_date_time_pair\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.GclidDateTimePairH\x00\x12\x12\n\x08order_id\x18\x07 \x01(\tH\x00\x42\x17\n\x15\x63onversion_identifierB\x14\n\x12_conversion_actionB\x17\n\x15_adjustment_date_time\"p\n\x10RestatementValue\x12\x1b\n\x0e\x61\x64justed_value\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1a\n\rcurrency_code\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x11\n\x0f_adjusted_valueB\x10\n\x0e_currency_code\"m\n\x11GclidDateTimePair\x12\x12\n\x05gclid\x18\x03 \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63onversion_date_time\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_gclidB\x17\n\x15_conversion_date_time\"\xff\x02\n\x1a\x43onversionAdjustmentResult\x12\x1e\n\x11\x63onversion_action\x18\x07 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x61\x64justment_date_time\x18\x08 \x01(\tH\x02\x88\x01\x01\x12m\n\x0f\x61\x64justment_type\x18\x05 \x01(\x0e\x32T.google.ads.googleads.v5.enums.ConversionAdjustmentTypeEnum.ConversionAdjustmentType\x12S\n\x14gclid_date_time_pair\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.GclidDateTimePairH\x00\x12\x12\n\x08order_id\x18\x06 \x01(\tH\x00\x42\x17\n\x15\x63onversion_identifierB\x14\n\x12_conversion_actionB\x17\n\x15_adjustment_date_time2\xe8\x02\n!ConversionAdjustmentUploadService\x12\xa5\x02\n\x1bUploadConversionAdjustments\x12\x44.google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest\x1a\x45.google.ads.googleads.v5.services.UploadConversionAdjustmentsResponse\"y\x82\xd3\xe4\x93\x02>\"9/v5/customers/{customer_id=*}:uploadConversionAdjustments:\x01*\xda\x41\x32\x63ustomer_id,conversion_adjustments,partial_failure\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8d\x02\n$com.google.ads.googleads.v5.servicesB&ConversionAdjustmentUploadServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__adjustment__type__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_UPLOADCONVERSIONADJUSTMENTSREQUEST = _descriptor.Descriptor( + name='UploadConversionAdjustmentsRequest', + full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_adjustments', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest.conversion_adjustments', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=303, + serialized_end=511, +) + + +_UPLOADCONVERSIONADJUSTMENTSRESPONSE = _descriptor.Descriptor( + name='UploadConversionAdjustmentsResponse', + full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsResponse.partial_failure_error', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.UploadConversionAdjustmentsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=514, + serialized_end=681, +) + + +_CONVERSIONADJUSTMENT = _descriptor.Descriptor( + name='ConversionAdjustment', + full_name='google.ads.googleads.v5.services.ConversionAdjustment', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.ConversionAdjustment.conversion_action', index=0, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='adjustment_date_time', full_name='google.ads.googleads.v5.services.ConversionAdjustment.adjustment_date_time', index=1, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='adjustment_type', full_name='google.ads.googleads.v5.services.ConversionAdjustment.adjustment_type', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='restatement_value', full_name='google.ads.googleads.v5.services.ConversionAdjustment.restatement_value', index=3, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gclid_date_time_pair', full_name='google.ads.googleads.v5.services.ConversionAdjustment.gclid_date_time_pair', index=4, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='order_id', full_name='google.ads.googleads.v5.services.ConversionAdjustment.order_id', index=5, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='conversion_identifier', full_name='google.ads.googleads.v5.services.ConversionAdjustment.conversion_identifier', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.ConversionAdjustment._conversion_action', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_adjustment_date_time', full_name='google.ads.googleads.v5.services.ConversionAdjustment._adjustment_date_time', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=684, + serialized_end=1140, +) + + +_RESTATEMENTVALUE = _descriptor.Descriptor( + name='RestatementValue', + full_name='google.ads.googleads.v5.services.RestatementValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='adjusted_value', full_name='google.ads.googleads.v5.services.RestatementValue.adjusted_value', index=0, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.services.RestatementValue.currency_code', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_adjusted_value', full_name='google.ads.googleads.v5.services.RestatementValue._adjusted_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_currency_code', full_name='google.ads.googleads.v5.services.RestatementValue._currency_code', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1142, + serialized_end=1254, +) + + +_GCLIDDATETIMEPAIR = _descriptor.Descriptor( + name='GclidDateTimePair', + full_name='google.ads.googleads.v5.services.GclidDateTimePair', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='gclid', full_name='google.ads.googleads.v5.services.GclidDateTimePair.gclid', index=0, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_date_time', full_name='google.ads.googleads.v5.services.GclidDateTimePair.conversion_date_time', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_gclid', full_name='google.ads.googleads.v5.services.GclidDateTimePair._gclid', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_date_time', full_name='google.ads.googleads.v5.services.GclidDateTimePair._conversion_date_time', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1256, + serialized_end=1365, +) + + +_CONVERSIONADJUSTMENTRESULT = _descriptor.Descriptor( + name='ConversionAdjustmentResult', + full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.conversion_action', index=0, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='adjustment_date_time', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.adjustment_date_time', index=1, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='adjustment_type', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.adjustment_type', index=2, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gclid_date_time_pair', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.gclid_date_time_pair', index=3, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='order_id', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.order_id', index=4, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='conversion_identifier', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult.conversion_identifier', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult._conversion_action', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_adjustment_date_time', full_name='google.ads.googleads.v5.services.ConversionAdjustmentResult._adjustment_date_time', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1368, + serialized_end=1751, +) + +_UPLOADCONVERSIONADJUSTMENTSREQUEST.fields_by_name['conversion_adjustments'].message_type = _CONVERSIONADJUSTMENT +_UPLOADCONVERSIONADJUSTMENTSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_UPLOADCONVERSIONADJUSTMENTSRESPONSE.fields_by_name['results'].message_type = _CONVERSIONADJUSTMENTRESULT +_CONVERSIONADJUSTMENT.fields_by_name['adjustment_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__adjustment__type__pb2._CONVERSIONADJUSTMENTTYPEENUM_CONVERSIONADJUSTMENTTYPE +_CONVERSIONADJUSTMENT.fields_by_name['restatement_value'].message_type = _RESTATEMENTVALUE +_CONVERSIONADJUSTMENT.fields_by_name['gclid_date_time_pair'].message_type = _GCLIDDATETIMEPAIR +_CONVERSIONADJUSTMENT.oneofs_by_name['conversion_identifier'].fields.append( + _CONVERSIONADJUSTMENT.fields_by_name['gclid_date_time_pair']) +_CONVERSIONADJUSTMENT.fields_by_name['gclid_date_time_pair'].containing_oneof = _CONVERSIONADJUSTMENT.oneofs_by_name['conversion_identifier'] +_CONVERSIONADJUSTMENT.oneofs_by_name['conversion_identifier'].fields.append( + _CONVERSIONADJUSTMENT.fields_by_name['order_id']) +_CONVERSIONADJUSTMENT.fields_by_name['order_id'].containing_oneof = _CONVERSIONADJUSTMENT.oneofs_by_name['conversion_identifier'] +_CONVERSIONADJUSTMENT.oneofs_by_name['_conversion_action'].fields.append( + _CONVERSIONADJUSTMENT.fields_by_name['conversion_action']) +_CONVERSIONADJUSTMENT.fields_by_name['conversion_action'].containing_oneof = _CONVERSIONADJUSTMENT.oneofs_by_name['_conversion_action'] +_CONVERSIONADJUSTMENT.oneofs_by_name['_adjustment_date_time'].fields.append( + _CONVERSIONADJUSTMENT.fields_by_name['adjustment_date_time']) +_CONVERSIONADJUSTMENT.fields_by_name['adjustment_date_time'].containing_oneof = _CONVERSIONADJUSTMENT.oneofs_by_name['_adjustment_date_time'] +_RESTATEMENTVALUE.oneofs_by_name['_adjusted_value'].fields.append( + _RESTATEMENTVALUE.fields_by_name['adjusted_value']) +_RESTATEMENTVALUE.fields_by_name['adjusted_value'].containing_oneof = _RESTATEMENTVALUE.oneofs_by_name['_adjusted_value'] +_RESTATEMENTVALUE.oneofs_by_name['_currency_code'].fields.append( + _RESTATEMENTVALUE.fields_by_name['currency_code']) +_RESTATEMENTVALUE.fields_by_name['currency_code'].containing_oneof = _RESTATEMENTVALUE.oneofs_by_name['_currency_code'] +_GCLIDDATETIMEPAIR.oneofs_by_name['_gclid'].fields.append( + _GCLIDDATETIMEPAIR.fields_by_name['gclid']) +_GCLIDDATETIMEPAIR.fields_by_name['gclid'].containing_oneof = _GCLIDDATETIMEPAIR.oneofs_by_name['_gclid'] +_GCLIDDATETIMEPAIR.oneofs_by_name['_conversion_date_time'].fields.append( + _GCLIDDATETIMEPAIR.fields_by_name['conversion_date_time']) +_GCLIDDATETIMEPAIR.fields_by_name['conversion_date_time'].containing_oneof = _GCLIDDATETIMEPAIR.oneofs_by_name['_conversion_date_time'] +_CONVERSIONADJUSTMENTRESULT.fields_by_name['adjustment_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_conversion__adjustment__type__pb2._CONVERSIONADJUSTMENTTYPEENUM_CONVERSIONADJUSTMENTTYPE +_CONVERSIONADJUSTMENTRESULT.fields_by_name['gclid_date_time_pair'].message_type = _GCLIDDATETIMEPAIR +_CONVERSIONADJUSTMENTRESULT.oneofs_by_name['conversion_identifier'].fields.append( + _CONVERSIONADJUSTMENTRESULT.fields_by_name['gclid_date_time_pair']) +_CONVERSIONADJUSTMENTRESULT.fields_by_name['gclid_date_time_pair'].containing_oneof = _CONVERSIONADJUSTMENTRESULT.oneofs_by_name['conversion_identifier'] +_CONVERSIONADJUSTMENTRESULT.oneofs_by_name['conversion_identifier'].fields.append( + _CONVERSIONADJUSTMENTRESULT.fields_by_name['order_id']) +_CONVERSIONADJUSTMENTRESULT.fields_by_name['order_id'].containing_oneof = _CONVERSIONADJUSTMENTRESULT.oneofs_by_name['conversion_identifier'] +_CONVERSIONADJUSTMENTRESULT.oneofs_by_name['_conversion_action'].fields.append( + _CONVERSIONADJUSTMENTRESULT.fields_by_name['conversion_action']) +_CONVERSIONADJUSTMENTRESULT.fields_by_name['conversion_action'].containing_oneof = _CONVERSIONADJUSTMENTRESULT.oneofs_by_name['_conversion_action'] +_CONVERSIONADJUSTMENTRESULT.oneofs_by_name['_adjustment_date_time'].fields.append( + _CONVERSIONADJUSTMENTRESULT.fields_by_name['adjustment_date_time']) +_CONVERSIONADJUSTMENTRESULT.fields_by_name['adjustment_date_time'].containing_oneof = _CONVERSIONADJUSTMENTRESULT.oneofs_by_name['_adjustment_date_time'] +DESCRIPTOR.message_types_by_name['UploadConversionAdjustmentsRequest'] = _UPLOADCONVERSIONADJUSTMENTSREQUEST +DESCRIPTOR.message_types_by_name['UploadConversionAdjustmentsResponse'] = _UPLOADCONVERSIONADJUSTMENTSRESPONSE +DESCRIPTOR.message_types_by_name['ConversionAdjustment'] = _CONVERSIONADJUSTMENT +DESCRIPTOR.message_types_by_name['RestatementValue'] = _RESTATEMENTVALUE +DESCRIPTOR.message_types_by_name['GclidDateTimePair'] = _GCLIDDATETIMEPAIR +DESCRIPTOR.message_types_by_name['ConversionAdjustmentResult'] = _CONVERSIONADJUSTMENTRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UploadConversionAdjustmentsRequest = _reflection.GeneratedProtocolMessageType('UploadConversionAdjustmentsRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCONVERSIONADJUSTMENTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """Request message for [ConversionAdjustmentUploadService.UploadConversio + nAdjustments][google.ads.googleads.v5.services.ConversionAdjustmentUpl + oadService.UploadConversionAdjustments]. + + Attributes: + customer_id: + Required. The ID of the customer performing the upload. + conversion_adjustments: + Required. The conversion adjustments that are being uploaded. + partial_failure: + Required. If true, successful operations will be carried out + and invalid operations will return errors. If false, all + operations will be carried out in one transaction if and only + if they are all valid. This should always be set to true. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadConversionAdjustmentsRequest) + }) +_sym_db.RegisterMessage(UploadConversionAdjustmentsRequest) + +UploadConversionAdjustmentsResponse = _reflection.GeneratedProtocolMessageType('UploadConversionAdjustmentsResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCONVERSIONADJUSTMENTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """Response message for [ConversionAdjustmentUploadService.UploadConversi + onAdjustments][google.ads.googleads.v5.services.ConversionAdjustmentUp + loadService.UploadConversionAdjustments]. + + Attributes: + partial_failure_error: + Errors that pertain to conversion adjustment failures in the + partial failure mode. Returned when all errors occur inside + the adjustments. If any errors occur outside the adjustments + (e.g. auth errors), we return an RPC level error. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + results: + Returned for successfully processed conversion adjustments. + Proto will be empty for rows that received an error. Results + are not returned when validate\_only is true. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadConversionAdjustmentsResponse) + }) +_sym_db.RegisterMessage(UploadConversionAdjustmentsResponse) + +ConversionAdjustment = _reflection.GeneratedProtocolMessageType('ConversionAdjustment', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONADJUSTMENT, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """A conversion adjustment. + + Attributes: + conversion_action: + Resource name of the conversion action associated with this + conversion adjustment. Note: Although this resource name + consists of a customer id and a conversion action id, + validation will ignore the customer id and use the conversion + action id as the sole identifier of the conversion action. + adjustment_date_time: + The date time at which the adjustment occurred. Must be after + the conversion\_date\_time. The timezone must be specified. + The format is "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + adjustment_type: + The adjustment type. + restatement_value: + Information needed to restate the conversion's value. Required + for restatements. Should not be supplied for retractions. An + error will be returned if provided for a retraction. NOTE: If + you want to upload a second restatement with a different + adjusted value, it must have a new, more recent, adjustment + occurrence time. Otherwise, it will be treated as a duplicate + of the previous restatement and ignored. + conversion_identifier: + Identifies the conversion to be adjusted. + gclid_date_time_pair: + Uniquely identifies a conversion that was reported without an + order ID specified. + order_id: + The order ID of the conversion to be adjusted. If the + conversion was reported with an order ID specified, that order + ID must be used as the identifier here. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ConversionAdjustment) + }) +_sym_db.RegisterMessage(ConversionAdjustment) + +RestatementValue = _reflection.GeneratedProtocolMessageType('RestatementValue', (_message.Message,), { + 'DESCRIPTOR' : _RESTATEMENTVALUE, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """Contains information needed to restate a conversion's value. + + Attributes: + adjusted_value: + The restated conversion value. This is the value of the + conversion after restatement. For example, to change the value + of a conversion from 100 to 70, an adjusted value of 70 should + be reported. NOTE: If you want to upload a second restatement + with a different adjusted value, it must have a new, more + recent, adjustment occurrence time. Otherwise, it will be + treated as a duplicate of the previous restatement and + ignored. + currency_code: + The currency of the restated value. If not provided, then the + default currency from the conversion action is used, and if + that is not set then the account currency is used. This is the + ISO 4217 3-character currency code e.g. USD or EUR. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RestatementValue) + }) +_sym_db.RegisterMessage(RestatementValue) + +GclidDateTimePair = _reflection.GeneratedProtocolMessageType('GclidDateTimePair', (_message.Message,), { + 'DESCRIPTOR' : _GCLIDDATETIMEPAIR, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """Uniquely identifies a conversion that was reported without an order ID + specified. + + Attributes: + gclid: + Google click ID (gclid) associated with the original + conversion for this adjustment. + conversion_date_time: + The date time at which the original conversion for this + adjustment occurred. The timezone must be specified. The + format is "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GclidDateTimePair) + }) +_sym_db.RegisterMessage(GclidDateTimePair) + +ConversionAdjustmentResult = _reflection.GeneratedProtocolMessageType('ConversionAdjustmentResult', (_message.Message,), { + 'DESCRIPTOR' : _CONVERSIONADJUSTMENTRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_adjustment_upload_service_pb2' + , + '__doc__': """Information identifying a successfully processed ConversionAdjustment. + + Attributes: + conversion_action: + Resource name of the conversion action associated with this + conversion adjustment. + adjustment_date_time: + The date time at which the adjustment occurred. The format is + "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + adjustment_type: + The adjustment type. + conversion_identifier: + Identifies the conversion that was adjusted. + gclid_date_time_pair: + Uniquely identifies a conversion that was reported without an + order ID specified. + order_id: + The order ID of the conversion that was adjusted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ConversionAdjustmentResult) + }) +_sym_db.RegisterMessage(ConversionAdjustmentResult) + + +DESCRIPTOR._options = None +_UPLOADCONVERSIONADJUSTMENTSREQUEST.fields_by_name['customer_id']._options = None +_UPLOADCONVERSIONADJUSTMENTSREQUEST.fields_by_name['conversion_adjustments']._options = None +_UPLOADCONVERSIONADJUSTMENTSREQUEST.fields_by_name['partial_failure']._options = None + +_CONVERSIONADJUSTMENTUPLOADSERVICE = _descriptor.ServiceDescriptor( + name='ConversionAdjustmentUploadService', + full_name='google.ads.googleads.v5.services.ConversionAdjustmentUploadService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1754, + serialized_end=2114, + methods=[ + _descriptor.MethodDescriptor( + name='UploadConversionAdjustments', + full_name='google.ads.googleads.v5.services.ConversionAdjustmentUploadService.UploadConversionAdjustments', + index=0, + containing_service=None, + input_type=_UPLOADCONVERSIONADJUSTMENTSREQUEST, + output_type=_UPLOADCONVERSIONADJUSTMENTSRESPONSE, + serialized_options=b'\202\323\344\223\002>\"9/v5/customers/{customer_id=*}:uploadConversionAdjustments:\001*\332A2customer_id,conversion_adjustments,partial_failure', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CONVERSIONADJUSTMENTUPLOADSERVICE) + +DESCRIPTOR.services_by_name['ConversionAdjustmentUploadService'] = _CONVERSIONADJUSTMENTUPLOADSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2_grpc.py new file mode 100644 index 000000000..8953fe25f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_adjustment_upload_service_pb2_grpc.py @@ -0,0 +1,69 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import conversion_adjustment_upload_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2 + + +class ConversionAdjustmentUploadServiceStub(object): + """Service to upload conversion adjustments. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UploadConversionAdjustments = channel.unary_unary( + '/google.ads.googleads.v5.services.ConversionAdjustmentUploadService/UploadConversionAdjustments', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsResponse.FromString, + ) + + +class ConversionAdjustmentUploadServiceServicer(object): + """Service to upload conversion adjustments. + """ + + def UploadConversionAdjustments(self, request, context): + """Processes the given conversion adjustments. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConversionAdjustmentUploadServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UploadConversionAdjustments': grpc.unary_unary_rpc_method_handler( + servicer.UploadConversionAdjustments, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ConversionAdjustmentUploadService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ConversionAdjustmentUploadService(object): + """Service to upload conversion adjustments. + """ + + @staticmethod + def UploadConversionAdjustments(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ConversionAdjustmentUploadService/UploadConversionAdjustments', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__adjustment__upload__service__pb2.UploadConversionAdjustmentsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2.py b/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2.py new file mode 100644 index 000000000..18261f36d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2.py @@ -0,0 +1,973 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/conversion_upload_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/conversion_upload_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034ConversionUploadServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/conversion_upload_service.proto\x12 google.ads.googleads.v5.services\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x17google/rpc/status.proto\"\xbb\x01\n\x1dUploadClickConversionsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x0b\x63onversions\x18\x02 \x03(\x0b\x32\x31.google.ads.googleads.v5.services.ClickConversionB\x03\xe0\x41\x02\x12\x1c\n\x0fpartial_failure\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x9d\x01\n\x1eUploadClickConversionsResponse\x12\x31\n\x15partial_failure_error\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x07results\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.ClickConversionResult\"\xb9\x01\n\x1cUploadCallConversionsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12J\n\x0b\x63onversions\x18\x02 \x03(\x0b\x32\x30.google.ads.googleads.v5.services.CallConversionB\x03\xe0\x41\x02\x12\x1c\n\x0fpartial_failure\x18\x03 \x01(\x08\x42\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x9b\x01\n\x1dUploadCallConversionsResponse\x12\x31\n\x15partial_failure_error\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12G\n\x07results\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.CallConversionResult\"\x85\x03\n\x0f\x43lickConversion\x12\x12\n\x05gclid\x18\t \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63onversion_action\x18\n \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x63onversion_date_time\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10\x63onversion_value\x18\x0c \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rcurrency_code\x18\r \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08order_id\x18\x0e \x01(\tH\x05\x88\x01\x01\x12\\\n\x19\x65xternal_attribution_data\x18\x07 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.ExternalAttributionDataB\x08\n\x06_gclidB\x14\n\x12_conversion_actionB\x17\n\x15_conversion_date_timeB\x13\n\x11_conversion_valueB\x10\n\x0e_currency_codeB\x0b\n\t_order_id\"\xc6\x02\n\x0e\x43\x61llConversion\x12\x16\n\tcaller_id\x18\x07 \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63\x61ll_start_date_time\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11\x63onversion_action\x18\t \x01(\tH\x02\x88\x01\x01\x12!\n\x14\x63onversion_date_time\x18\n \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x10\x63onversion_value\x18\x0b \x01(\x01H\x04\x88\x01\x01\x12\x1a\n\rcurrency_code\x18\x0c \x01(\tH\x05\x88\x01\x01\x42\x0c\n\n_caller_idB\x17\n\x15_call_start_date_timeB\x14\n\x12_conversion_actionB\x17\n\x15_conversion_date_timeB\x13\n\x11_conversion_valueB\x10\n\x0e_currency_code\"\xab\x01\n\x17\x45xternalAttributionData\x12(\n\x1b\x65xternal_attribution_credit\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\'\n\x1a\x65xternal_attribution_model\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x1e\n\x1c_external_attribution_creditB\x1d\n\x1b_external_attribution_model\"\xa7\x01\n\x15\x43lickConversionResult\x12\x12\n\x05gclid\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63onversion_action\x18\x05 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x63onversion_date_time\x18\x06 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_gclidB\x14\n\x12_conversion_actionB\x17\n\x15_conversion_date_time\"\xea\x01\n\x14\x43\x61llConversionResult\x12\x16\n\tcaller_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12!\n\x14\x63\x61ll_start_date_time\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11\x63onversion_action\x18\x07 \x01(\tH\x02\x88\x01\x01\x12!\n\x14\x63onversion_date_time\x18\x08 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_caller_idB\x17\n\x15_call_start_date_timeB\x14\n\x12_conversion_actionB\x17\n\x15_conversion_date_time2\xc4\x04\n\x17\x43onversionUploadService\x12\x86\x02\n\x16UploadClickConversions\x12?.google.ads.googleads.v5.services.UploadClickConversionsRequest\x1a@.google.ads.googleads.v5.services.UploadClickConversionsResponse\"i\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}:uploadClickConversions:\x01*\xda\x41\'customer_id,conversions,partial_failure\x12\x82\x02\n\x15UploadCallConversions\x12>.google.ads.googleads.v5.services.UploadCallConversionsRequest\x1a?.google.ads.googleads.v5.services.UploadCallConversionsResponse\"h\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}:uploadCallConversions:\x01*\xda\x41\'customer_id,conversions,partial_failure\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1c\x43onversionUploadServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_UPLOADCLICKCONVERSIONSREQUEST = _descriptor.Descriptor( + name='UploadClickConversionsRequest', + full_name='google.ads.googleads.v5.services.UploadClickConversionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.UploadClickConversionsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions', full_name='google.ads.googleads.v5.services.UploadClickConversionsRequest.conversions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.UploadClickConversionsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.UploadClickConversionsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=222, + serialized_end=409, +) + + +_UPLOADCLICKCONVERSIONSRESPONSE = _descriptor.Descriptor( + name='UploadClickConversionsResponse', + full_name='google.ads.googleads.v5.services.UploadClickConversionsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.UploadClickConversionsResponse.partial_failure_error', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.UploadClickConversionsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=412, + serialized_end=569, +) + + +_UPLOADCALLCONVERSIONSREQUEST = _descriptor.Descriptor( + name='UploadCallConversionsRequest', + full_name='google.ads.googleads.v5.services.UploadCallConversionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.UploadCallConversionsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversions', full_name='google.ads.googleads.v5.services.UploadCallConversionsRequest.conversions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.UploadCallConversionsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.UploadCallConversionsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=572, + serialized_end=757, +) + + +_UPLOADCALLCONVERSIONSRESPONSE = _descriptor.Descriptor( + name='UploadCallConversionsResponse', + full_name='google.ads.googleads.v5.services.UploadCallConversionsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.UploadCallConversionsResponse.partial_failure_error', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.UploadCallConversionsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=760, + serialized_end=915, +) + + +_CLICKCONVERSION = _descriptor.Descriptor( + name='ClickConversion', + full_name='google.ads.googleads.v5.services.ClickConversion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='gclid', full_name='google.ads.googleads.v5.services.ClickConversion.gclid', index=0, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.ClickConversion.conversion_action', index=1, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_date_time', full_name='google.ads.googleads.v5.services.ClickConversion.conversion_date_time', index=2, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_value', full_name='google.ads.googleads.v5.services.ClickConversion.conversion_value', index=3, + number=12, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.services.ClickConversion.currency_code', index=4, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='order_id', full_name='google.ads.googleads.v5.services.ClickConversion.order_id', index=5, + number=14, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='external_attribution_data', full_name='google.ads.googleads.v5.services.ClickConversion.external_attribution_data', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_gclid', full_name='google.ads.googleads.v5.services.ClickConversion._gclid', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.ClickConversion._conversion_action', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_date_time', full_name='google.ads.googleads.v5.services.ClickConversion._conversion_date_time', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_value', full_name='google.ads.googleads.v5.services.ClickConversion._conversion_value', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_currency_code', full_name='google.ads.googleads.v5.services.ClickConversion._currency_code', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_order_id', full_name='google.ads.googleads.v5.services.ClickConversion._order_id', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=918, + serialized_end=1307, +) + + +_CALLCONVERSION = _descriptor.Descriptor( + name='CallConversion', + full_name='google.ads.googleads.v5.services.CallConversion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='caller_id', full_name='google.ads.googleads.v5.services.CallConversion.caller_id', index=0, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_start_date_time', full_name='google.ads.googleads.v5.services.CallConversion.call_start_date_time', index=1, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.CallConversion.conversion_action', index=2, + number=9, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_date_time', full_name='google.ads.googleads.v5.services.CallConversion.conversion_date_time', index=3, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_value', full_name='google.ads.googleads.v5.services.CallConversion.conversion_value', index=4, + number=11, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.services.CallConversion.currency_code', index=5, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_caller_id', full_name='google.ads.googleads.v5.services.CallConversion._caller_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_start_date_time', full_name='google.ads.googleads.v5.services.CallConversion._call_start_date_time', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.CallConversion._conversion_action', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_date_time', full_name='google.ads.googleads.v5.services.CallConversion._conversion_date_time', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_value', full_name='google.ads.googleads.v5.services.CallConversion._conversion_value', + index=4, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_currency_code', full_name='google.ads.googleads.v5.services.CallConversion._currency_code', + index=5, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1310, + serialized_end=1636, +) + + +_EXTERNALATTRIBUTIONDATA = _descriptor.Descriptor( + name='ExternalAttributionData', + full_name='google.ads.googleads.v5.services.ExternalAttributionData', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='external_attribution_credit', full_name='google.ads.googleads.v5.services.ExternalAttributionData.external_attribution_credit', index=0, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='external_attribution_model', full_name='google.ads.googleads.v5.services.ExternalAttributionData.external_attribution_model', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_external_attribution_credit', full_name='google.ads.googleads.v5.services.ExternalAttributionData._external_attribution_credit', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_external_attribution_model', full_name='google.ads.googleads.v5.services.ExternalAttributionData._external_attribution_model', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1639, + serialized_end=1810, +) + + +_CLICKCONVERSIONRESULT = _descriptor.Descriptor( + name='ClickConversionResult', + full_name='google.ads.googleads.v5.services.ClickConversionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='gclid', full_name='google.ads.googleads.v5.services.ClickConversionResult.gclid', index=0, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.ClickConversionResult.conversion_action', index=1, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_date_time', full_name='google.ads.googleads.v5.services.ClickConversionResult.conversion_date_time', index=2, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_gclid', full_name='google.ads.googleads.v5.services.ClickConversionResult._gclid', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.ClickConversionResult._conversion_action', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_date_time', full_name='google.ads.googleads.v5.services.ClickConversionResult._conversion_date_time', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1813, + serialized_end=1980, +) + + +_CALLCONVERSIONRESULT = _descriptor.Descriptor( + name='CallConversionResult', + full_name='google.ads.googleads.v5.services.CallConversionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='caller_id', full_name='google.ads.googleads.v5.services.CallConversionResult.caller_id', index=0, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_start_date_time', full_name='google.ads.googleads.v5.services.CallConversionResult.call_start_date_time', index=1, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.CallConversionResult.conversion_action', index=2, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_date_time', full_name='google.ads.googleads.v5.services.CallConversionResult.conversion_date_time', index=3, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_caller_id', full_name='google.ads.googleads.v5.services.CallConversionResult._caller_id', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_call_start_date_time', full_name='google.ads.googleads.v5.services.CallConversionResult._call_start_date_time', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_action', full_name='google.ads.googleads.v5.services.CallConversionResult._conversion_action', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_conversion_date_time', full_name='google.ads.googleads.v5.services.CallConversionResult._conversion_date_time', + index=3, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1983, + serialized_end=2217, +) + +_UPLOADCLICKCONVERSIONSREQUEST.fields_by_name['conversions'].message_type = _CLICKCONVERSION +_UPLOADCLICKCONVERSIONSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_UPLOADCLICKCONVERSIONSRESPONSE.fields_by_name['results'].message_type = _CLICKCONVERSIONRESULT +_UPLOADCALLCONVERSIONSREQUEST.fields_by_name['conversions'].message_type = _CALLCONVERSION +_UPLOADCALLCONVERSIONSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_UPLOADCALLCONVERSIONSRESPONSE.fields_by_name['results'].message_type = _CALLCONVERSIONRESULT +_CLICKCONVERSION.fields_by_name['external_attribution_data'].message_type = _EXTERNALATTRIBUTIONDATA +_CLICKCONVERSION.oneofs_by_name['_gclid'].fields.append( + _CLICKCONVERSION.fields_by_name['gclid']) +_CLICKCONVERSION.fields_by_name['gclid'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_gclid'] +_CLICKCONVERSION.oneofs_by_name['_conversion_action'].fields.append( + _CLICKCONVERSION.fields_by_name['conversion_action']) +_CLICKCONVERSION.fields_by_name['conversion_action'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_conversion_action'] +_CLICKCONVERSION.oneofs_by_name['_conversion_date_time'].fields.append( + _CLICKCONVERSION.fields_by_name['conversion_date_time']) +_CLICKCONVERSION.fields_by_name['conversion_date_time'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_conversion_date_time'] +_CLICKCONVERSION.oneofs_by_name['_conversion_value'].fields.append( + _CLICKCONVERSION.fields_by_name['conversion_value']) +_CLICKCONVERSION.fields_by_name['conversion_value'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_conversion_value'] +_CLICKCONVERSION.oneofs_by_name['_currency_code'].fields.append( + _CLICKCONVERSION.fields_by_name['currency_code']) +_CLICKCONVERSION.fields_by_name['currency_code'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_currency_code'] +_CLICKCONVERSION.oneofs_by_name['_order_id'].fields.append( + _CLICKCONVERSION.fields_by_name['order_id']) +_CLICKCONVERSION.fields_by_name['order_id'].containing_oneof = _CLICKCONVERSION.oneofs_by_name['_order_id'] +_CALLCONVERSION.oneofs_by_name['_caller_id'].fields.append( + _CALLCONVERSION.fields_by_name['caller_id']) +_CALLCONVERSION.fields_by_name['caller_id'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_caller_id'] +_CALLCONVERSION.oneofs_by_name['_call_start_date_time'].fields.append( + _CALLCONVERSION.fields_by_name['call_start_date_time']) +_CALLCONVERSION.fields_by_name['call_start_date_time'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_call_start_date_time'] +_CALLCONVERSION.oneofs_by_name['_conversion_action'].fields.append( + _CALLCONVERSION.fields_by_name['conversion_action']) +_CALLCONVERSION.fields_by_name['conversion_action'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_conversion_action'] +_CALLCONVERSION.oneofs_by_name['_conversion_date_time'].fields.append( + _CALLCONVERSION.fields_by_name['conversion_date_time']) +_CALLCONVERSION.fields_by_name['conversion_date_time'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_conversion_date_time'] +_CALLCONVERSION.oneofs_by_name['_conversion_value'].fields.append( + _CALLCONVERSION.fields_by_name['conversion_value']) +_CALLCONVERSION.fields_by_name['conversion_value'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_conversion_value'] +_CALLCONVERSION.oneofs_by_name['_currency_code'].fields.append( + _CALLCONVERSION.fields_by_name['currency_code']) +_CALLCONVERSION.fields_by_name['currency_code'].containing_oneof = _CALLCONVERSION.oneofs_by_name['_currency_code'] +_EXTERNALATTRIBUTIONDATA.oneofs_by_name['_external_attribution_credit'].fields.append( + _EXTERNALATTRIBUTIONDATA.fields_by_name['external_attribution_credit']) +_EXTERNALATTRIBUTIONDATA.fields_by_name['external_attribution_credit'].containing_oneof = _EXTERNALATTRIBUTIONDATA.oneofs_by_name['_external_attribution_credit'] +_EXTERNALATTRIBUTIONDATA.oneofs_by_name['_external_attribution_model'].fields.append( + _EXTERNALATTRIBUTIONDATA.fields_by_name['external_attribution_model']) +_EXTERNALATTRIBUTIONDATA.fields_by_name['external_attribution_model'].containing_oneof = _EXTERNALATTRIBUTIONDATA.oneofs_by_name['_external_attribution_model'] +_CLICKCONVERSIONRESULT.oneofs_by_name['_gclid'].fields.append( + _CLICKCONVERSIONRESULT.fields_by_name['gclid']) +_CLICKCONVERSIONRESULT.fields_by_name['gclid'].containing_oneof = _CLICKCONVERSIONRESULT.oneofs_by_name['_gclid'] +_CLICKCONVERSIONRESULT.oneofs_by_name['_conversion_action'].fields.append( + _CLICKCONVERSIONRESULT.fields_by_name['conversion_action']) +_CLICKCONVERSIONRESULT.fields_by_name['conversion_action'].containing_oneof = _CLICKCONVERSIONRESULT.oneofs_by_name['_conversion_action'] +_CLICKCONVERSIONRESULT.oneofs_by_name['_conversion_date_time'].fields.append( + _CLICKCONVERSIONRESULT.fields_by_name['conversion_date_time']) +_CLICKCONVERSIONRESULT.fields_by_name['conversion_date_time'].containing_oneof = _CLICKCONVERSIONRESULT.oneofs_by_name['_conversion_date_time'] +_CALLCONVERSIONRESULT.oneofs_by_name['_caller_id'].fields.append( + _CALLCONVERSIONRESULT.fields_by_name['caller_id']) +_CALLCONVERSIONRESULT.fields_by_name['caller_id'].containing_oneof = _CALLCONVERSIONRESULT.oneofs_by_name['_caller_id'] +_CALLCONVERSIONRESULT.oneofs_by_name['_call_start_date_time'].fields.append( + _CALLCONVERSIONRESULT.fields_by_name['call_start_date_time']) +_CALLCONVERSIONRESULT.fields_by_name['call_start_date_time'].containing_oneof = _CALLCONVERSIONRESULT.oneofs_by_name['_call_start_date_time'] +_CALLCONVERSIONRESULT.oneofs_by_name['_conversion_action'].fields.append( + _CALLCONVERSIONRESULT.fields_by_name['conversion_action']) +_CALLCONVERSIONRESULT.fields_by_name['conversion_action'].containing_oneof = _CALLCONVERSIONRESULT.oneofs_by_name['_conversion_action'] +_CALLCONVERSIONRESULT.oneofs_by_name['_conversion_date_time'].fields.append( + _CALLCONVERSIONRESULT.fields_by_name['conversion_date_time']) +_CALLCONVERSIONRESULT.fields_by_name['conversion_date_time'].containing_oneof = _CALLCONVERSIONRESULT.oneofs_by_name['_conversion_date_time'] +DESCRIPTOR.message_types_by_name['UploadClickConversionsRequest'] = _UPLOADCLICKCONVERSIONSREQUEST +DESCRIPTOR.message_types_by_name['UploadClickConversionsResponse'] = _UPLOADCLICKCONVERSIONSRESPONSE +DESCRIPTOR.message_types_by_name['UploadCallConversionsRequest'] = _UPLOADCALLCONVERSIONSREQUEST +DESCRIPTOR.message_types_by_name['UploadCallConversionsResponse'] = _UPLOADCALLCONVERSIONSRESPONSE +DESCRIPTOR.message_types_by_name['ClickConversion'] = _CLICKCONVERSION +DESCRIPTOR.message_types_by_name['CallConversion'] = _CALLCONVERSION +DESCRIPTOR.message_types_by_name['ExternalAttributionData'] = _EXTERNALATTRIBUTIONDATA +DESCRIPTOR.message_types_by_name['ClickConversionResult'] = _CLICKCONVERSIONRESULT +DESCRIPTOR.message_types_by_name['CallConversionResult'] = _CALLCONVERSIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UploadClickConversionsRequest = _reflection.GeneratedProtocolMessageType('UploadClickConversionsRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCLICKCONVERSIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Request message for [ConversionUploadService.UploadClickConversions][g + oogle.ads.googleads.v5.services.ConversionUploadService.UploadClickCon + versions]. + + Attributes: + customer_id: + Required. The ID of the customer performing the upload. + conversions: + Required. The conversions that are being uploaded. + partial_failure: + Required. If true, successful operations will be carried out + and invalid operations will return errors. If false, all + operations will be carried out in one transaction if and only + if they are all valid. This should always be set to true. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadClickConversionsRequest) + }) +_sym_db.RegisterMessage(UploadClickConversionsRequest) + +UploadClickConversionsResponse = _reflection.GeneratedProtocolMessageType('UploadClickConversionsResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCLICKCONVERSIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Response message for [ConversionUploadService.UploadClickConversions][ + google.ads.googleads.v5.services.ConversionUploadService.UploadClickCo + nversions]. + + Attributes: + partial_failure_error: + Errors that pertain to conversion failures in the partial + failure mode. Returned when all errors occur inside the + conversions. If any errors occur outside the conversions (e.g. + auth errors), we return an RPC level error. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + results: + Returned for successfully processed conversions. Proto will be + empty for rows that received an error. Results are not + returned when validate\_only is true. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadClickConversionsResponse) + }) +_sym_db.RegisterMessage(UploadClickConversionsResponse) + +UploadCallConversionsRequest = _reflection.GeneratedProtocolMessageType('UploadCallConversionsRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCALLCONVERSIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Request message for [ConversionUploadService.UploadCallConversions][go + ogle.ads.googleads.v5.services.ConversionUploadService.UploadCallConve + rsions]. + + Attributes: + customer_id: + Required. The ID of the customer performing the upload. + conversions: + Required. The conversions that are being uploaded. + partial_failure: + Required. If true, successful operations will be carried out + and invalid operations will return errors. If false, all + operations will be carried out in one transaction if and only + if they are all valid. This should always be set to true. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadCallConversionsRequest) + }) +_sym_db.RegisterMessage(UploadCallConversionsRequest) + +UploadCallConversionsResponse = _reflection.GeneratedProtocolMessageType('UploadCallConversionsResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADCALLCONVERSIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Response message for [ConversionUploadService.UploadCallConversions][g + oogle.ads.googleads.v5.services.ConversionUploadService.UploadCallConv + ersions]. + + Attributes: + partial_failure_error: + Errors that pertain to conversion failures in the partial + failure mode. Returned when all errors occur inside the + conversions. If any errors occur outside the conversions (e.g. + auth errors), we return an RPC level error. See + https://developers.google.com/google-ads/api/docs/best- + practices/partial-failures for more information about partial + failure. + results: + Returned for successfully processed conversions. Proto will be + empty for rows that received an error. Results are not + returned when validate\_only is true. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadCallConversionsResponse) + }) +_sym_db.RegisterMessage(UploadCallConversionsResponse) + +ClickConversion = _reflection.GeneratedProtocolMessageType('ClickConversion', (_message.Message,), { + 'DESCRIPTOR' : _CLICKCONVERSION, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """A click conversion. + + Attributes: + gclid: + The Google click ID (gclid) associated with this conversion. + conversion_action: + Resource name of the conversion action associated with this + conversion. Note: Although this resource name consists of a + customer id and a conversion action id, validation will ignore + the customer id and use the conversion action id as the sole + identifier of the conversion action. + conversion_date_time: + The date time at which the conversion occurred. Must be after + the click time. The timezone must be specified. The format is + "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. “2019-01-01 + 12:32:45-08:00”. + conversion_value: + The value of the conversion for the advertiser. + currency_code: + Currency associated with the conversion value. This is the ISO + 4217 3-character currency code. For example: USD, EUR. + order_id: + The order ID associated with the conversion. An order id can + only be used for one conversion per conversion action. + external_attribution_data: + Additional data about externally attributed conversions. This + field is required for conversions with an externally + attributed conversion action, but should not be set otherwise. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ClickConversion) + }) +_sym_db.RegisterMessage(ClickConversion) + +CallConversion = _reflection.GeneratedProtocolMessageType('CallConversion', (_message.Message,), { + 'DESCRIPTOR' : _CALLCONVERSION, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """A call conversion. + + Attributes: + caller_id: + The caller id from which this call was placed. Caller id is + expected to be in E.164 format with preceding '+' sign. e.g. + "+16502531234". + call_start_date_time: + The date time at which the call occurred. The timezone must be + specified. The format is "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. + "2019-01-01 12:32:45-08:00". + conversion_action: + Resource name of the conversion action associated with this + conversion. Note: Although this resource name consists of a + customer id and a conversion action id, validation will ignore + the customer id and use the conversion action id as the sole + identifier of the conversion action. + conversion_date_time: + The date time at which the conversion occurred. Must be after + the call time. The timezone must be specified. The format is + "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + conversion_value: + The value of the conversion for the advertiser. + currency_code: + Currency associated with the conversion value. This is the ISO + 4217 3-character currency code. For example: USD, EUR. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CallConversion) + }) +_sym_db.RegisterMessage(CallConversion) + +ExternalAttributionData = _reflection.GeneratedProtocolMessageType('ExternalAttributionData', (_message.Message,), { + 'DESCRIPTOR' : _EXTERNALATTRIBUTIONDATA, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Contains additional information about externally attributed + conversions. + + Attributes: + external_attribution_credit: + Represents the fraction of the conversion that is attributed + to the Google Ads click. + external_attribution_model: + Specifies the attribution model name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ExternalAttributionData) + }) +_sym_db.RegisterMessage(ExternalAttributionData) + +ClickConversionResult = _reflection.GeneratedProtocolMessageType('ClickConversionResult', (_message.Message,), { + 'DESCRIPTOR' : _CLICKCONVERSIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Identifying information for a successfully processed ClickConversion. + + Attributes: + gclid: + The Google Click ID (gclid) associated with this conversion. + conversion_action: + Resource name of the conversion action associated with this + conversion. + conversion_date_time: + The date time at which the conversion occurred. The format is + "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. “2019-01-01 + 12:32:45-08:00”. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ClickConversionResult) + }) +_sym_db.RegisterMessage(ClickConversionResult) + +CallConversionResult = _reflection.GeneratedProtocolMessageType('CallConversionResult', (_message.Message,), { + 'DESCRIPTOR' : _CALLCONVERSIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.conversion_upload_service_pb2' + , + '__doc__': """Identifying information for a successfully processed + CallConversionUpload. + + Attributes: + caller_id: + The caller id from which this call was placed. Caller id is + expected to be in E.164 format with preceding '+' sign. + call_start_date_time: + The date time at which the call occurred. The format is "yyyy- + mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 12:32:45-08:00". + conversion_action: + Resource name of the conversion action associated with this + conversion. + conversion_date_time: + The date time at which the conversion occurred. The format is + "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CallConversionResult) + }) +_sym_db.RegisterMessage(CallConversionResult) + + +DESCRIPTOR._options = None +_UPLOADCLICKCONVERSIONSREQUEST.fields_by_name['customer_id']._options = None +_UPLOADCLICKCONVERSIONSREQUEST.fields_by_name['conversions']._options = None +_UPLOADCLICKCONVERSIONSREQUEST.fields_by_name['partial_failure']._options = None +_UPLOADCALLCONVERSIONSREQUEST.fields_by_name['customer_id']._options = None +_UPLOADCALLCONVERSIONSREQUEST.fields_by_name['conversions']._options = None +_UPLOADCALLCONVERSIONSREQUEST.fields_by_name['partial_failure']._options = None + +_CONVERSIONUPLOADSERVICE = _descriptor.ServiceDescriptor( + name='ConversionUploadService', + full_name='google.ads.googleads.v5.services.ConversionUploadService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=2220, + serialized_end=2800, + methods=[ + _descriptor.MethodDescriptor( + name='UploadClickConversions', + full_name='google.ads.googleads.v5.services.ConversionUploadService.UploadClickConversions', + index=0, + containing_service=None, + input_type=_UPLOADCLICKCONVERSIONSREQUEST, + output_type=_UPLOADCLICKCONVERSIONSRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}:uploadClickConversions:\001*\332A\'customer_id,conversions,partial_failure', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='UploadCallConversions', + full_name='google.ads.googleads.v5.services.ConversionUploadService.UploadCallConversions', + index=1, + containing_service=None, + input_type=_UPLOADCALLCONVERSIONSREQUEST, + output_type=_UPLOADCALLCONVERSIONSRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}:uploadCallConversions:\001*\332A\'customer_id,conversions,partial_failure', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CONVERSIONUPLOADSERVICE) + +DESCRIPTOR.services_by_name['ConversionUploadService'] = _CONVERSIONUPLOADSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2_grpc.py new file mode 100644 index 000000000..2e52d84e1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/conversion_upload_service_pb2_grpc.py @@ -0,0 +1,102 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import conversion_upload_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2 + + +class ConversionUploadServiceStub(object): + """Service to upload conversions. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UploadClickConversions = channel.unary_unary( + '/google.ads.googleads.v5.services.ConversionUploadService/UploadClickConversions', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsResponse.FromString, + ) + self.UploadCallConversions = channel.unary_unary( + '/google.ads.googleads.v5.services.ConversionUploadService/UploadCallConversions', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsResponse.FromString, + ) + + +class ConversionUploadServiceServicer(object): + """Service to upload conversions. + """ + + def UploadClickConversions(self, request, context): + """Processes the given click conversions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UploadCallConversions(self, request, context): + """Processes the given call conversions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConversionUploadServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UploadClickConversions': grpc.unary_unary_rpc_method_handler( + servicer.UploadClickConversions, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsResponse.SerializeToString, + ), + 'UploadCallConversions': grpc.unary_unary_rpc_method_handler( + servicer.UploadCallConversions, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ConversionUploadService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ConversionUploadService(object): + """Service to upload conversions. + """ + + @staticmethod + def UploadClickConversions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ConversionUploadService/UploadClickConversions', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadClickConversionsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def UploadCallConversions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ConversionUploadService/UploadCallConversions', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__upload__service__pb2.UploadCallConversionsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2.py new file mode 100644 index 000000000..fef7ad7bc --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/currency_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import currency_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/currency_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034CurrencyConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/currency_constant_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/currency_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"f\n\x1aGetCurrencyConstantRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/CurrencyConstant2\x82\x02\n\x17\x43urrencyConstantService\x12\xc9\x01\n\x13GetCurrencyConstant\x12<.google.ads.googleads.v5.services.GetCurrencyConstantRequest\x1a\x33.google.ads.googleads.v5.resources.CurrencyConstant\"?\x82\xd3\xe4\x93\x02)\x12\'/v5/{resource_name=currencyConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1c\x43urrencyConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCURRENCYCONSTANTREQUEST = _descriptor.Descriptor( + name='GetCurrencyConstantRequest', + full_name='google.ads.googleads.v5.services.GetCurrencyConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCurrencyConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/CurrencyConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=288, + serialized_end=390, +) + +DESCRIPTOR.message_types_by_name['GetCurrencyConstantRequest'] = _GETCURRENCYCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCurrencyConstantRequest = _reflection.GeneratedProtocolMessageType('GetCurrencyConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCURRENCYCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.currency_constant_service_pb2' + , + '__doc__': """Request message for [CurrencyConstantService.GetCurrencyConstant][goog + le.ads.googleads.v5.services.CurrencyConstantService.GetCurrencyConsta + nt]. + + Attributes: + resource_name: + Required. Resource name of the currency constant to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCurrencyConstantRequest) + }) +_sym_db.RegisterMessage(GetCurrencyConstantRequest) + + +DESCRIPTOR._options = None +_GETCURRENCYCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_CURRENCYCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='CurrencyConstantService', + full_name='google.ads.googleads.v5.services.CurrencyConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=393, + serialized_end=651, + methods=[ + _descriptor.MethodDescriptor( + name='GetCurrencyConstant', + full_name='google.ads.googleads.v5.services.CurrencyConstantService.GetCurrencyConstant', + index=0, + containing_service=None, + input_type=_GETCURRENCYCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2._CURRENCYCONSTANT, + serialized_options=b'\202\323\344\223\002)\022\'/v5/{resource_name=currencyConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CURRENCYCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['CurrencyConstantService'] = _CURRENCYCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2_grpc.py new file mode 100644 index 000000000..07f02ceff --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/currency_constant_service_pb2_grpc.py @@ -0,0 +1,70 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import currency_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2 +from google.ads.google_ads.v5.proto.services import currency_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_currency__constant__service__pb2 + + +class CurrencyConstantServiceStub(object): + """Service to fetch currency constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCurrencyConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.CurrencyConstantService/GetCurrencyConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_currency__constant__service__pb2.GetCurrencyConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2.CurrencyConstant.FromString, + ) + + +class CurrencyConstantServiceServicer(object): + """Service to fetch currency constants. + """ + + def GetCurrencyConstant(self, request, context): + """Returns the requested currency constant. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CurrencyConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCurrencyConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetCurrencyConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_currency__constant__service__pb2.GetCurrencyConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2.CurrencyConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CurrencyConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CurrencyConstantService(object): + """Service to fetch currency constants. + """ + + @staticmethod + def GetCurrencyConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CurrencyConstantService/GetCurrencyConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_currency__constant__service__pb2.GetCurrencyConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2.CurrencyConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2.py b/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2.py new file mode 100644 index 000000000..c3367372d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2.py @@ -0,0 +1,375 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/custom_interest_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import custom_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/custom_interest_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032CustomInterestServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/services/custom_interest_service.proto\x12 google.ads.googleads.v5.services\x1a=google/ads/googleads_v5/proto/resources/custom_interest.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"b\n\x18GetCustomInterestRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/CustomInterest\"\xa3\x01\n\x1cMutateCustomInterestsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\noperations\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.CustomInterestOperationB\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xe1\x01\n\x17\x43ustomInterestOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CustomInterestH\x00\x12\x43\n\x06update\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CustomInterestH\x00\x42\x0b\n\toperation\"n\n\x1dMutateCustomInterestsResponse\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.MutateCustomInterestResult\"3\n\x1aMutateCustomInterestResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xf9\x03\n\x15\x43ustomInterestService\x12\xcd\x01\n\x11GetCustomInterest\x12:.google.ads.googleads.v5.services.GetCustomInterestRequest\x1a\x31.google.ads.googleads.v5.resources.CustomInterest\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/customInterests/*}\xda\x41\rresource_name\x12\xf2\x01\n\x15MutateCustomInterests\x12>.google.ads.googleads.v5.services.MutateCustomInterestsRequest\x1a?.google.ads.googleads.v5.services.MutateCustomInterestsResponse\"X\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/customInterests:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x43ustomInterestServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMINTERESTREQUEST = _descriptor.Descriptor( + name='GetCustomInterestRequest', + full_name='google.ads.googleads.v5.services.GetCustomInterestRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomInterestRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/CustomInterest', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=318, + serialized_end=416, +) + + +_MUTATECUSTOMINTERESTSREQUEST = _descriptor.Descriptor( + name='MutateCustomInterestsRequest', + full_name='google.ads.googleads.v5.services.MutateCustomInterestsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomInterestsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomInterestsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomInterestsRequest.validate_only', index=2, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=419, + serialized_end=582, +) + + +_CUSTOMINTERESTOPERATION = _descriptor.Descriptor( + name='CustomInterestOperation', + full_name='google.ads.googleads.v5.services.CustomInterestOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomInterestOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomInterestOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomInterestOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomInterestOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=585, + serialized_end=810, +) + + +_MUTATECUSTOMINTERESTSRESPONSE = _descriptor.Descriptor( + name='MutateCustomInterestsResponse', + full_name='google.ads.googleads.v5.services.MutateCustomInterestsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomInterestsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=812, + serialized_end=922, +) + + +_MUTATECUSTOMINTERESTRESULT = _descriptor.Descriptor( + name='MutateCustomInterestResult', + full_name='google.ads.googleads.v5.services.MutateCustomInterestResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomInterestResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=924, + serialized_end=975, +) + +_MUTATECUSTOMINTERESTSREQUEST.fields_by_name['operations'].message_type = _CUSTOMINTERESTOPERATION +_CUSTOMINTERESTOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CUSTOMINTERESTOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2._CUSTOMINTEREST +_CUSTOMINTERESTOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2._CUSTOMINTEREST +_CUSTOMINTERESTOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMINTERESTOPERATION.fields_by_name['create']) +_CUSTOMINTERESTOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMINTERESTOPERATION.oneofs_by_name['operation'] +_CUSTOMINTERESTOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMINTERESTOPERATION.fields_by_name['update']) +_CUSTOMINTERESTOPERATION.fields_by_name['update'].containing_oneof = _CUSTOMINTERESTOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMINTERESTSRESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMINTERESTRESULT +DESCRIPTOR.message_types_by_name['GetCustomInterestRequest'] = _GETCUSTOMINTERESTREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomInterestsRequest'] = _MUTATECUSTOMINTERESTSREQUEST +DESCRIPTOR.message_types_by_name['CustomInterestOperation'] = _CUSTOMINTERESTOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomInterestsResponse'] = _MUTATECUSTOMINTERESTSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomInterestResult'] = _MUTATECUSTOMINTERESTRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomInterestRequest = _reflection.GeneratedProtocolMessageType('GetCustomInterestRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMINTERESTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.custom_interest_service_pb2' + , + '__doc__': """Request message for [CustomInterestService.GetCustomInterest][google.a + ds.googleads.v5.services.CustomInterestService.GetCustomInterest]. + + Attributes: + resource_name: + Required. The resource name of the custom interest to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomInterestRequest) + }) +_sym_db.RegisterMessage(GetCustomInterestRequest) + +MutateCustomInterestsRequest = _reflection.GeneratedProtocolMessageType('MutateCustomInterestsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMINTERESTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.custom_interest_service_pb2' + , + '__doc__': """Request message for [CustomInterestService.MutateCustomInterests][goog + le.ads.googleads.v5.services.CustomInterestService.MutateCustomInteres + ts]. + + Attributes: + customer_id: + Required. The ID of the customer whose custom interests are + being modified. + operations: + Required. The list of operations to perform on individual + custom interests. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomInterestsRequest) + }) +_sym_db.RegisterMessage(MutateCustomInterestsRequest) + +CustomInterestOperation = _reflection.GeneratedProtocolMessageType('CustomInterestOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMINTERESTOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.custom_interest_service_pb2' + , + '__doc__': """A single operation (create, update) on a custom interest. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + custom interest. + update: + Update operation: The custom interest is expected to have a + valid resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomInterestOperation) + }) +_sym_db.RegisterMessage(CustomInterestOperation) + +MutateCustomInterestsResponse = _reflection.GeneratedProtocolMessageType('MutateCustomInterestsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMINTERESTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.custom_interest_service_pb2' + , + '__doc__': """Response message for custom interest mutate. + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomInterestsResponse) + }) +_sym_db.RegisterMessage(MutateCustomInterestsResponse) + +MutateCustomInterestResult = _reflection.GeneratedProtocolMessageType('MutateCustomInterestResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMINTERESTRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.custom_interest_service_pb2' + , + '__doc__': """The result for the custom interest mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomInterestResult) + }) +_sym_db.RegisterMessage(MutateCustomInterestResult) + + +DESCRIPTOR._options = None +_GETCUSTOMINTERESTREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMINTERESTSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMINTERESTSREQUEST.fields_by_name['operations']._options = None + +_CUSTOMINTERESTSERVICE = _descriptor.ServiceDescriptor( + name='CustomInterestService', + full_name='google.ads.googleads.v5.services.CustomInterestService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=978, + serialized_end=1483, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomInterest', + full_name='google.ads.googleads.v5.services.CustomInterestService.GetCustomInterest', + index=0, + containing_service=None, + input_type=_GETCUSTOMINTERESTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2._CUSTOMINTEREST, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/customInterests/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomInterests', + full_name='google.ads.googleads.v5.services.CustomInterestService.MutateCustomInterests', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMINTERESTSREQUEST, + output_type=_MUTATECUSTOMINTERESTSRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/customInterests:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMINTERESTSERVICE) + +DESCRIPTOR.services_by_name['CustomInterestService'] = _CUSTOMINTERESTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2_grpc.py new file mode 100644 index 000000000..14b9703cb --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/custom_interest_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import custom_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2 +from google.ads.google_ads.v5.proto.services import custom_interest_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2 + + +class CustomInterestServiceStub(object): + """Proto file describing the Custom Interest service. + + Service to manage custom interests. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomInterest = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomInterestService/GetCustomInterest', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.GetCustomInterestRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2.CustomInterest.FromString, + ) + self.MutateCustomInterests = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomInterestService/MutateCustomInterests', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsResponse.FromString, + ) + + +class CustomInterestServiceServicer(object): + """Proto file describing the Custom Interest service. + + Service to manage custom interests. + """ + + def GetCustomInterest(self, request, context): + """Returns the requested custom interest in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomInterests(self, request, context): + """Creates or updates custom interests. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomInterestServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomInterest': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomInterest, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.GetCustomInterestRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2.CustomInterest.SerializeToString, + ), + 'MutateCustomInterests': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomInterests, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomInterestService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomInterestService(object): + """Proto file describing the Custom Interest service. + + Service to manage custom interests. + """ + + @staticmethod + def GetCustomInterest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomInterestService/GetCustomInterest', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.GetCustomInterestRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2.CustomInterest.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomInterests(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomInterestService/MutateCustomInterests', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_custom__interest__service__pb2.MutateCustomInterestsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2.py new file mode 100644 index 000000000..ba103c4a6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2.py @@ -0,0 +1,368 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_client_link_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_client_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_client_link_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036CustomerClientLinkServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/services/customer_client_link_service.proto\x12 google.ads.googleads.v5.services\x1a\x42google/ads/googleads_v5/proto/resources/customer_client_link.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"j\n\x1cGetCustomerClientLinkRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/CustomerClientLink\"\x92\x01\n\x1fMutateCustomerClientLinkRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\toperation\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v5.services.CustomerClientLinkOperationB\x03\xe0\x41\x02\"\xed\x01\n\x1b\x43ustomerClientLinkOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CustomerClientLinkH\x00\x12G\n\x06update\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CustomerClientLinkH\x00\x42\x0b\n\toperation\"t\n MutateCustomerClientLinkResponse\x12P\n\x06result\x18\x01 \x01(\x0b\x32@.google.ads.googleads.v5.services.MutateCustomerClientLinkResult\"7\n\x1eMutateCustomerClientLinkResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x99\x04\n\x19\x43ustomerClientLinkService\x12\xdd\x01\n\x15GetCustomerClientLink\x12>.google.ads.googleads.v5.services.GetCustomerClientLinkRequest\x1a\x35.google.ads.googleads.v5.resources.CustomerClientLink\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/customerClientLinks/*}\xda\x41\rresource_name\x12\xfe\x01\n\x18MutateCustomerClientLink\x12\x41.google.ads.googleads.v5.services.MutateCustomerClientLinkRequest\x1a\x42.google.ads.googleads.v5.services.MutateCustomerClientLinkResponse\"[\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/customerClientLinks:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1e\x43ustomerClientLinkServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERCLIENTLINKREQUEST = _descriptor.Descriptor( + name='GetCustomerClientLinkRequest', + full_name='google.ads.googleads.v5.services.GetCustomerClientLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerClientLinkRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/CustomerClientLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=328, + serialized_end=434, +) + + +_MUTATECUSTOMERCLIENTLINKREQUEST = _descriptor.Descriptor( + name='MutateCustomerClientLinkRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkRequest.operation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=437, + serialized_end=583, +) + + +_CUSTOMERCLIENTLINKOPERATION = _descriptor.Descriptor( + name='CustomerClientLinkOperation', + full_name='google.ads.googleads.v5.services.CustomerClientLinkOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomerClientLinkOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomerClientLinkOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomerClientLinkOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerClientLinkOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=586, + serialized_end=823, +) + + +_MUTATECUSTOMERCLIENTLINKRESPONSE = _descriptor.Descriptor( + name='MutateCustomerClientLinkResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkResponse.result', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=825, + serialized_end=941, +) + + +_MUTATECUSTOMERCLIENTLINKRESULT = _descriptor.Descriptor( + name='MutateCustomerClientLinkResult', + full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerClientLinkResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=943, + serialized_end=998, +) + +_MUTATECUSTOMERCLIENTLINKREQUEST.fields_by_name['operation'].message_type = _CUSTOMERCLIENTLINKOPERATION +_CUSTOMERCLIENTLINKOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CUSTOMERCLIENTLINKOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2._CUSTOMERCLIENTLINK +_CUSTOMERCLIENTLINKOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2._CUSTOMERCLIENTLINK +_CUSTOMERCLIENTLINKOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERCLIENTLINKOPERATION.fields_by_name['create']) +_CUSTOMERCLIENTLINKOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMERCLIENTLINKOPERATION.oneofs_by_name['operation'] +_CUSTOMERCLIENTLINKOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERCLIENTLINKOPERATION.fields_by_name['update']) +_CUSTOMERCLIENTLINKOPERATION.fields_by_name['update'].containing_oneof = _CUSTOMERCLIENTLINKOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMERCLIENTLINKRESPONSE.fields_by_name['result'].message_type = _MUTATECUSTOMERCLIENTLINKRESULT +DESCRIPTOR.message_types_by_name['GetCustomerClientLinkRequest'] = _GETCUSTOMERCLIENTLINKREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerClientLinkRequest'] = _MUTATECUSTOMERCLIENTLINKREQUEST +DESCRIPTOR.message_types_by_name['CustomerClientLinkOperation'] = _CUSTOMERCLIENTLINKOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerClientLinkResponse'] = _MUTATECUSTOMERCLIENTLINKRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerClientLinkResult'] = _MUTATECUSTOMERCLIENTLINKRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerClientLinkRequest = _reflection.GeneratedProtocolMessageType('GetCustomerClientLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERCLIENTLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_link_service_pb2' + , + '__doc__': """Request message for [CustomerClientLinkService.GetCustomerClientLink][ + google.ads.googleads.v5.services.CustomerClientLinkService.GetCustomer + ClientLink]. + + Attributes: + resource_name: + Required. The resource name of the customer client link to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerClientLinkRequest) + }) +_sym_db.RegisterMessage(GetCustomerClientLinkRequest) + +MutateCustomerClientLinkRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerClientLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERCLIENTLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_link_service_pb2' + , + '__doc__': """Request message for [CustomerClientLinkService.MutateCustomerClientLin + k][google.ads.googleads.v5.services.CustomerClientLinkService.MutateCu + stomerClientLink]. + + Attributes: + customer_id: + Required. The ID of the customer whose customer link are being + modified. + operation: + Required. The operation to perform on the individual + CustomerClientLink. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerClientLinkRequest) + }) +_sym_db.RegisterMessage(MutateCustomerClientLinkRequest) + +CustomerClientLinkOperation = _reflection.GeneratedProtocolMessageType('CustomerClientLinkOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERCLIENTLINKOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_link_service_pb2' + , + '__doc__': """A single operation (create, update) on a CustomerClientLink. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + link. + update: + Update operation: The link is expected to have a valid + resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerClientLinkOperation) + }) +_sym_db.RegisterMessage(CustomerClientLinkOperation) + +MutateCustomerClientLinkResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerClientLinkResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERCLIENTLINKRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_link_service_pb2' + , + '__doc__': """Response message for a CustomerClientLink mutate. + + Attributes: + result: + A result that identifies the resource affected by the mutate + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerClientLinkResponse) + }) +_sym_db.RegisterMessage(MutateCustomerClientLinkResponse) + +MutateCustomerClientLinkResult = _reflection.GeneratedProtocolMessageType('MutateCustomerClientLinkResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERCLIENTLINKRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_link_service_pb2' + , + '__doc__': """The result for a single customer client link mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerClientLinkResult) + }) +_sym_db.RegisterMessage(MutateCustomerClientLinkResult) + + +DESCRIPTOR._options = None +_GETCUSTOMERCLIENTLINKREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERCLIENTLINKREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERCLIENTLINKREQUEST.fields_by_name['operation']._options = None + +_CUSTOMERCLIENTLINKSERVICE = _descriptor.ServiceDescriptor( + name='CustomerClientLinkService', + full_name='google.ads.googleads.v5.services.CustomerClientLinkService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1001, + serialized_end=1538, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerClientLink', + full_name='google.ads.googleads.v5.services.CustomerClientLinkService.GetCustomerClientLink', + index=0, + containing_service=None, + input_type=_GETCUSTOMERCLIENTLINKREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2._CUSTOMERCLIENTLINK, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/customerClientLinks/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerClientLink', + full_name='google.ads.googleads.v5.services.CustomerClientLinkService.MutateCustomerClientLink', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERCLIENTLINKREQUEST, + output_type=_MUTATECUSTOMERCLIENTLINKRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/customerClientLinks:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERCLIENTLINKSERVICE) + +DESCRIPTOR.services_by_name['CustomerClientLinkService'] = _CUSTOMERCLIENTLINKSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2_grpc.py new file mode 100644 index 000000000..12a3cf4d9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_client_link_service_pb2_grpc.py @@ -0,0 +1,103 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_client_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2 +from google.ads.google_ads.v5.proto.services import customer_client_link_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2 + + +class CustomerClientLinkServiceStub(object): + """Service to manage customer client links. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerClientLink = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerClientLinkService/GetCustomerClientLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.GetCustomerClientLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2.CustomerClientLink.FromString, + ) + self.MutateCustomerClientLink = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerClientLinkService/MutateCustomerClientLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkResponse.FromString, + ) + + +class CustomerClientLinkServiceServicer(object): + """Service to manage customer client links. + """ + + def GetCustomerClientLink(self, request, context): + """Returns the requested CustomerClientLink in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerClientLink(self, request, context): + """Creates or updates a customer client link. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerClientLinkServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerClientLink': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerClientLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.GetCustomerClientLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2.CustomerClientLink.SerializeToString, + ), + 'MutateCustomerClientLink': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerClientLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerClientLinkService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerClientLinkService(object): + """Service to manage customer client links. + """ + + @staticmethod + def GetCustomerClientLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerClientLinkService/GetCustomerClientLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.GetCustomerClientLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2.CustomerClientLink.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerClientLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerClientLinkService/MutateCustomerClientLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__link__service__pb2.MutateCustomerClientLinkResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_client_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_client_service_pb2.py new file mode 100644 index 000000000..511ed620c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_client_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_client_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_client_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_client_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032CustomerClientServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/services/customer_client_service.proto\x12 google.ads.googleads.v5.services\x1a=google/ads/googleads_v5/proto/resources/customer_client.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetCustomerClientRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/CustomerClient2\x84\x02\n\x15\x43ustomerClientService\x12\xcd\x01\n\x11GetCustomerClient\x12:.google.ads.googleads.v5.services.GetCustomerClientRequest\x1a\x31.google.ads.googleads.v5.resources.CustomerClient\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/customerClients/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x43ustomerClientServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERCLIENTREQUEST = _descriptor.Descriptor( + name='GetCustomerClientRequest', + full_name='google.ads.googleads.v5.services.GetCustomerClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerClientRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/CustomerClient', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=284, + serialized_end=382, +) + +DESCRIPTOR.message_types_by_name['GetCustomerClientRequest'] = _GETCUSTOMERCLIENTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerClientRequest = _reflection.GeneratedProtocolMessageType('GetCustomerClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERCLIENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_client_service_pb2' + , + '__doc__': """Request message for [CustomerClientService.GetCustomerClient][google.a + ds.googleads.v5.services.CustomerClientService.GetCustomerClient]. + + Attributes: + resource_name: + Required. The resource name of the client to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerClientRequest) + }) +_sym_db.RegisterMessage(GetCustomerClientRequest) + + +DESCRIPTOR._options = None +_GETCUSTOMERCLIENTREQUEST.fields_by_name['resource_name']._options = None + +_CUSTOMERCLIENTSERVICE = _descriptor.ServiceDescriptor( + name='CustomerClientService', + full_name='google.ads.googleads.v5.services.CustomerClientService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=385, + serialized_end=645, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerClient', + full_name='google.ads.googleads.v5.services.CustomerClientService.GetCustomerClient', + index=0, + containing_service=None, + input_type=_GETCUSTOMERCLIENTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2._CUSTOMERCLIENT, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/customerClients/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERCLIENTSERVICE) + +DESCRIPTOR.services_by_name['CustomerClientService'] = _CUSTOMERCLIENTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_client_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_client_service_pb2_grpc.py new file mode 100644 index 000000000..88932f6c5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_client_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_client_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2 +from google.ads.google_ads.v5.proto.services import customer_client_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__service__pb2 + + +class CustomerClientServiceStub(object): + """Proto file describing the Customer Client service. + + Service to get clients in a customer's hierarchy. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerClient = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerClientService/GetCustomerClient', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__service__pb2.GetCustomerClientRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2.CustomerClient.FromString, + ) + + +class CustomerClientServiceServicer(object): + """Proto file describing the Customer Client service. + + Service to get clients in a customer's hierarchy. + """ + + def GetCustomerClient(self, request, context): + """Returns the requested client in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerClientServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerClient': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerClient, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__service__pb2.GetCustomerClientRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2.CustomerClient.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerClientService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerClientService(object): + """Proto file describing the Customer Client service. + + Service to get clients in a customer's hierarchy. + """ + + @staticmethod + def GetCustomerClient(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerClientService/GetCustomerClient', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__client__service__pb2.GetCustomerClientRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2.CustomerClient.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2.py new file mode 100644 index 000000000..f9d801538 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_extension_setting_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_extension_setting_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB$CustomerExtensionSettingServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/services/customer_extension_setting_service.proto\x12 google.ads.googleads.v5.services\x1aHgoogle/ads/googleads_v5/proto/resources/customer_extension_setting.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"v\n\"GetCustomerExtensionSettingRequest\x12P\n\rresource_name\x18\x01 \x01(\tB9\xe0\x41\x02\xfa\x41\x33\n1googleads.googleapis.com/CustomerExtensionSetting\"\xd0\x01\n&MutateCustomerExtensionSettingsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\\\n\noperations\x18\x02 \x03(\x0b\x32\x43.google.ads.googleads.v5.services.CustomerExtensionSettingOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x91\x02\n!CustomerExtensionSettingOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12M\n\x06\x63reate\x18\x01 \x01(\x0b\x32;.google.ads.googleads.v5.resources.CustomerExtensionSettingH\x00\x12M\n\x06update\x18\x02 \x01(\x0b\x32;.google.ads.googleads.v5.resources.CustomerExtensionSettingH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xb5\x01\n\'MutateCustomerExtensionSettingsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12W\n\x07results\x18\x02 \x03(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCustomerExtensionSettingResult\"=\n$MutateCustomerExtensionSettingResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xd3\x04\n\x1f\x43ustomerExtensionSettingService\x12\xf5\x01\n\x1bGetCustomerExtensionSetting\x12\x44.google.ads.googleads.v5.services.GetCustomerExtensionSettingRequest\x1a;.google.ads.googleads.v5.resources.CustomerExtensionSetting\"S\x82\xd3\xe4\x93\x02=\x12;/v5/{resource_name=customers/*/customerExtensionSettings/*}\xda\x41\rresource_name\x12\x9a\x02\n\x1fMutateCustomerExtensionSettings\x12H.google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest\x1aI.google.ads.googleads.v5.services.MutateCustomerExtensionSettingsResponse\"b\x82\xd3\xe4\x93\x02\x43\">/v5/customers/{customer_id=*}/customerExtensionSettings:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8b\x02\n$com.google.ads.googleads.v5.servicesB$CustomerExtensionSettingServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMEREXTENSIONSETTINGREQUEST = _descriptor.Descriptor( + name='GetCustomerExtensionSettingRequest', + full_name='google.ads.googleads.v5.services.GetCustomerExtensionSettingRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerExtensionSettingRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A3\n1googleads.googleapis.com/CustomerExtensionSetting', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=365, + serialized_end=483, +) + + +_MUTATECUSTOMEREXTENSIONSETTINGSREQUEST = _descriptor.Descriptor( + name='MutateCustomerExtensionSettingsRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=486, + serialized_end=694, +) + + +_CUSTOMEREXTENSIONSETTINGOPERATION = _descriptor.Descriptor( + name='CustomerExtensionSettingOperation', + full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerExtensionSettingOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=697, + serialized_end=970, +) + + +_MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE = _descriptor.Descriptor( + name='MutateCustomerExtensionSettingsResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=973, + serialized_end=1154, +) + + +_MUTATECUSTOMEREXTENSIONSETTINGRESULT = _descriptor.Descriptor( + name='MutateCustomerExtensionSettingResult', + full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerExtensionSettingResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1156, + serialized_end=1217, +) + +_MUTATECUSTOMEREXTENSIONSETTINGSREQUEST.fields_by_name['operations'].message_type = _CUSTOMEREXTENSIONSETTINGOPERATION +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2._CUSTOMEREXTENSIONSETTING +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2._CUSTOMEREXTENSIONSETTING +_CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['create']) +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['update']) +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['update'].containing_oneof = _CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['remove']) +_CUSTOMEREXTENSIONSETTINGOPERATION.fields_by_name['remove'].containing_oneof = _CUSTOMEREXTENSIONSETTINGOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMEREXTENSIONSETTINGRESULT +DESCRIPTOR.message_types_by_name['GetCustomerExtensionSettingRequest'] = _GETCUSTOMEREXTENSIONSETTINGREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerExtensionSettingsRequest'] = _MUTATECUSTOMEREXTENSIONSETTINGSREQUEST +DESCRIPTOR.message_types_by_name['CustomerExtensionSettingOperation'] = _CUSTOMEREXTENSIONSETTINGOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerExtensionSettingsResponse'] = _MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerExtensionSettingResult'] = _MUTATECUSTOMEREXTENSIONSETTINGRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerExtensionSettingRequest = _reflection.GeneratedProtocolMessageType('GetCustomerExtensionSettingRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMEREXTENSIONSETTINGREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_extension_setting_service_pb2' + , + '__doc__': """Request message for [CustomerExtensionSettingService.GetCustomerExtens + ionSetting][google.ads.googleads.v5.services.CustomerExtensionSettingS + ervice.GetCustomerExtensionSetting]. + + Attributes: + resource_name: + Required. The resource name of the customer extension setting + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerExtensionSettingRequest) + }) +_sym_db.RegisterMessage(GetCustomerExtensionSettingRequest) + +MutateCustomerExtensionSettingsRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerExtensionSettingsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMEREXTENSIONSETTINGSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_extension_setting_service_pb2' + , + '__doc__': """Request message for [CustomerExtensionSettingService.MutateCustomerExt + ensionSettings][google.ads.googleads.v5.services.CustomerExtensionSett + ingService.MutateCustomerExtensionSettings]. + + Attributes: + customer_id: + Required. The ID of the customer whose customer extension + settings are being modified. + operations: + Required. The list of operations to perform on individual + customer extension settings. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerExtensionSettingsRequest) + }) +_sym_db.RegisterMessage(MutateCustomerExtensionSettingsRequest) + +CustomerExtensionSettingOperation = _reflection.GeneratedProtocolMessageType('CustomerExtensionSettingOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMEREXTENSIONSETTINGOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_extension_setting_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a customer extension + setting. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + customer extension setting. + update: + Update operation: The customer extension setting is expected + to have a valid resource name. + remove: + Remove operation: A resource name for the removed customer + extension setting is expected, in this format: ``customers/{c + ustomer_id}/customerExtensionSettings/{extension_type}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerExtensionSettingOperation) + }) +_sym_db.RegisterMessage(CustomerExtensionSettingOperation) + +MutateCustomerExtensionSettingsResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerExtensionSettingsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_extension_setting_service_pb2' + , + '__doc__': """Response message for a customer extension setting mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerExtensionSettingsResponse) + }) +_sym_db.RegisterMessage(MutateCustomerExtensionSettingsResponse) + +MutateCustomerExtensionSettingResult = _reflection.GeneratedProtocolMessageType('MutateCustomerExtensionSettingResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMEREXTENSIONSETTINGRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_extension_setting_service_pb2' + , + '__doc__': """The result for the customer extension setting mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerExtensionSettingResult) + }) +_sym_db.RegisterMessage(MutateCustomerExtensionSettingResult) + + +DESCRIPTOR._options = None +_GETCUSTOMEREXTENSIONSETTINGREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMEREXTENSIONSETTINGSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMEREXTENSIONSETTINGSREQUEST.fields_by_name['operations']._options = None + +_CUSTOMEREXTENSIONSETTINGSERVICE = _descriptor.ServiceDescriptor( + name='CustomerExtensionSettingService', + full_name='google.ads.googleads.v5.services.CustomerExtensionSettingService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1220, + serialized_end=1815, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerExtensionSetting', + full_name='google.ads.googleads.v5.services.CustomerExtensionSettingService.GetCustomerExtensionSetting', + index=0, + containing_service=None, + input_type=_GETCUSTOMEREXTENSIONSETTINGREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2._CUSTOMEREXTENSIONSETTING, + serialized_options=b'\202\323\344\223\002=\022;/v5/{resource_name=customers/*/customerExtensionSettings/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerExtensionSettings', + full_name='google.ads.googleads.v5.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMEREXTENSIONSETTINGSREQUEST, + output_type=_MUTATECUSTOMEREXTENSIONSETTINGSRESPONSE, + serialized_options=b'\202\323\344\223\002C\">/v5/customers/{customer_id=*}/customerExtensionSettings:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMEREXTENSIONSETTINGSERVICE) + +DESCRIPTOR.services_by_name['CustomerExtensionSettingService'] = _CUSTOMEREXTENSIONSETTINGSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2_grpc.py new file mode 100644 index 000000000..078cd8bf5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_extension_setting_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2 +from google.ads.google_ads.v5.proto.services import customer_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2 + + +class CustomerExtensionSettingServiceStub(object): + """Proto file describing the CustomerExtensionSetting service. + + Service to manage customer extension settings. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerExtensionSetting = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerExtensionSettingService/GetCustomerExtensionSetting', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.GetCustomerExtensionSettingRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2.CustomerExtensionSetting.FromString, + ) + self.MutateCustomerExtensionSettings = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerExtensionSettingService/MutateCustomerExtensionSettings', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsResponse.FromString, + ) + + +class CustomerExtensionSettingServiceServicer(object): + """Proto file describing the CustomerExtensionSetting service. + + Service to manage customer extension settings. + """ + + def GetCustomerExtensionSetting(self, request, context): + """Returns the requested customer extension setting in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerExtensionSettings(self, request, context): + """Creates, updates, or removes customer extension settings. Operation + statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerExtensionSettingServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerExtensionSetting': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerExtensionSetting, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.GetCustomerExtensionSettingRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2.CustomerExtensionSetting.SerializeToString, + ), + 'MutateCustomerExtensionSettings': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerExtensionSettings, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerExtensionSettingService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerExtensionSettingService(object): + """Proto file describing the CustomerExtensionSetting service. + + Service to manage customer extension settings. + """ + + @staticmethod + def GetCustomerExtensionSetting(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerExtensionSettingService/GetCustomerExtensionSetting', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.GetCustomerExtensionSettingRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2.CustomerExtensionSetting.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerExtensionSettings(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerExtensionSettingService/MutateCustomerExtensionSettings', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.MutateCustomerExtensionSettingsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2.py new file mode 100644 index 000000000..c1dbbfeb0 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_feed_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import customer_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_feed_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030CustomerFeedServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/customer_feed_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a;google/ads/googleads_v5/proto/resources/customer_feed.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"^\n\x16GetCustomerFeedRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/CustomerFeed\"\xa3\x02\n\x1aMutateCustomerFeedsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12P\n\noperations\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.CustomerFeedOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xed\x01\n\x15\x43ustomerFeedOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x41\n\x06\x63reate\x18\x01 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CustomerFeedH\x00\x12\x41\n\x06update\x18\x02 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CustomerFeedH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x9d\x01\n\x1bMutateCustomerFeedsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12K\n\x07results\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.services.MutateCustomerFeedResult\"y\n\x18MutateCustomerFeedResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x46\n\rcustomer_feed\x18\x02 \x01(\x0b\x32/.google.ads.googleads.v5.resources.CustomerFeed2\xe7\x03\n\x13\x43ustomerFeedService\x12\xc5\x01\n\x0fGetCustomerFeed\x12\x38.google.ads.googleads.v5.services.GetCustomerFeedRequest\x1a/.google.ads.googleads.v5.resources.CustomerFeed\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/customerFeeds/*}\xda\x41\rresource_name\x12\xea\x01\n\x13MutateCustomerFeeds\x12<.google.ads.googleads.v5.services.MutateCustomerFeedsRequest\x1a=.google.ads.googleads.v5.services.MutateCustomerFeedsResponse\"V\x82\xd3\xe4\x93\x02\x37\"2/v5/customers/{customer_id=*}/customerFeeds:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18\x43ustomerFeedServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERFEEDREQUEST = _descriptor.Descriptor( + name='GetCustomerFeedRequest', + full_name='google.ads.googleads.v5.services.GetCustomerFeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerFeedRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/CustomerFeed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=404, + serialized_end=498, +) + + +_MUTATECUSTOMERFEEDSREQUEST = _descriptor.Descriptor( + name='MutateCustomerFeedsRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=501, + serialized_end=792, +) + + +_CUSTOMERFEEDOPERATION = _descriptor.Descriptor( + name='CustomerFeedOperation', + full_name='google.ads.googleads.v5.services.CustomerFeedOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomerFeedOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomerFeedOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomerFeedOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CustomerFeedOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerFeedOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=795, + serialized_end=1032, +) + + +_MUTATECUSTOMERFEEDSRESPONSE = _descriptor.Descriptor( + name='MutateCustomerFeedsResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerFeedsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomerFeedsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1035, + serialized_end=1192, +) + + +_MUTATECUSTOMERFEEDRESULT = _descriptor.Descriptor( + name='MutateCustomerFeedResult', + full_name='google.ads.googleads.v5.services.MutateCustomerFeedResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerFeedResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_feed', full_name='google.ads.googleads.v5.services.MutateCustomerFeedResult.customer_feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1194, + serialized_end=1315, +) + +_MUTATECUSTOMERFEEDSREQUEST.fields_by_name['operations'].message_type = _CUSTOMERFEEDOPERATION +_MUTATECUSTOMERFEEDSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CUSTOMERFEEDOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CUSTOMERFEEDOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2._CUSTOMERFEED +_CUSTOMERFEEDOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2._CUSTOMERFEED +_CUSTOMERFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERFEEDOPERATION.fields_by_name['create']) +_CUSTOMERFEEDOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMERFEEDOPERATION.oneofs_by_name['operation'] +_CUSTOMERFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERFEEDOPERATION.fields_by_name['update']) +_CUSTOMERFEEDOPERATION.fields_by_name['update'].containing_oneof = _CUSTOMERFEEDOPERATION.oneofs_by_name['operation'] +_CUSTOMERFEEDOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERFEEDOPERATION.fields_by_name['remove']) +_CUSTOMERFEEDOPERATION.fields_by_name['remove'].containing_oneof = _CUSTOMERFEEDOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMERFEEDSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECUSTOMERFEEDSRESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMERFEEDRESULT +_MUTATECUSTOMERFEEDRESULT.fields_by_name['customer_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2._CUSTOMERFEED +DESCRIPTOR.message_types_by_name['GetCustomerFeedRequest'] = _GETCUSTOMERFEEDREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerFeedsRequest'] = _MUTATECUSTOMERFEEDSREQUEST +DESCRIPTOR.message_types_by_name['CustomerFeedOperation'] = _CUSTOMERFEEDOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerFeedsResponse'] = _MUTATECUSTOMERFEEDSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerFeedResult'] = _MUTATECUSTOMERFEEDRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerFeedRequest = _reflection.GeneratedProtocolMessageType('GetCustomerFeedRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERFEEDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_feed_service_pb2' + , + '__doc__': """Request message for [CustomerFeedService.GetCustomerFeed][google.ads.g + oogleads.v5.services.CustomerFeedService.GetCustomerFeed]. + + Attributes: + resource_name: + Required. The resource name of the customer feed to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerFeedRequest) + }) +_sym_db.RegisterMessage(GetCustomerFeedRequest) + +MutateCustomerFeedsRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerFeedsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERFEEDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_feed_service_pb2' + , + '__doc__': """Request message for [CustomerFeedService.MutateCustomerFeeds][google.a + ds.googleads.v5.services.CustomerFeedService.MutateCustomerFeeds]. + + Attributes: + customer_id: + Required. The ID of the customer whose customer feeds are + being modified. + operations: + Required. The list of operations to perform on individual + customer feeds. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerFeedsRequest) + }) +_sym_db.RegisterMessage(MutateCustomerFeedsRequest) + +CustomerFeedOperation = _reflection.GeneratedProtocolMessageType('CustomerFeedOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERFEEDOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_feed_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a customer feed. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + customer feed. + update: + Update operation: The customer feed is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed customer + feed is expected, in this format: + ``customers/{customer_id}/customerFeeds/{feed_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerFeedOperation) + }) +_sym_db.RegisterMessage(CustomerFeedOperation) + +MutateCustomerFeedsResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerFeedsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERFEEDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_feed_service_pb2' + , + '__doc__': """Response message for a customer feed mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerFeedsResponse) + }) +_sym_db.RegisterMessage(MutateCustomerFeedsResponse) + +MutateCustomerFeedResult = _reflection.GeneratedProtocolMessageType('MutateCustomerFeedResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERFEEDRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_feed_service_pb2' + , + '__doc__': """The result for the customer feed mutate. + + Attributes: + resource_name: + Returned for successful operations. + customer_feed: + The mutated customer feed with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerFeedResult) + }) +_sym_db.RegisterMessage(MutateCustomerFeedResult) + + +DESCRIPTOR._options = None +_GETCUSTOMERFEEDREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERFEEDSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERFEEDSREQUEST.fields_by_name['operations']._options = None + +_CUSTOMERFEEDSERVICE = _descriptor.ServiceDescriptor( + name='CustomerFeedService', + full_name='google.ads.googleads.v5.services.CustomerFeedService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1318, + serialized_end=1805, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerFeed', + full_name='google.ads.googleads.v5.services.CustomerFeedService.GetCustomerFeed', + index=0, + containing_service=None, + input_type=_GETCUSTOMERFEEDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2._CUSTOMERFEED, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/customerFeeds/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerFeeds', + full_name='google.ads.googleads.v5.services.CustomerFeedService.MutateCustomerFeeds', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERFEEDSREQUEST, + output_type=_MUTATECUSTOMERFEEDSRESPONSE, + serialized_options=b'\202\323\344\223\0027\"2/v5/customers/{customer_id=*}/customerFeeds:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERFEEDSERVICE) + +DESCRIPTOR.services_by_name['CustomerFeedService'] = _CUSTOMERFEEDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2_grpc.py new file mode 100644 index 000000000..61d7c2d99 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_feed_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2 +from google.ads.google_ads.v5.proto.services import customer_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2 + + +class CustomerFeedServiceStub(object): + """Proto file describing the CustomerFeed service. + + Service to manage customer feeds. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerFeed = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerFeedService/GetCustomerFeed', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.GetCustomerFeedRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2.CustomerFeed.FromString, + ) + self.MutateCustomerFeeds = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerFeedService/MutateCustomerFeeds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsResponse.FromString, + ) + + +class CustomerFeedServiceServicer(object): + """Proto file describing the CustomerFeed service. + + Service to manage customer feeds. + """ + + def GetCustomerFeed(self, request, context): + """Returns the requested customer feed in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerFeeds(self, request, context): + """Creates, updates, or removes customer feeds. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerFeedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerFeed': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerFeed, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.GetCustomerFeedRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2.CustomerFeed.SerializeToString, + ), + 'MutateCustomerFeeds': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerFeeds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerFeedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerFeedService(object): + """Proto file describing the CustomerFeed service. + + Service to manage customer feeds. + """ + + @staticmethod + def GetCustomerFeed(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerFeedService/GetCustomerFeed', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.GetCustomerFeedRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2.CustomerFeed.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerFeeds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerFeedService/MutateCustomerFeeds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.MutateCustomerFeedsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_label_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_label_service_pb2.py new file mode 100644 index 000000000..00976d17b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_label_service_pb2.py @@ -0,0 +1,390 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031CustomerLabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/customer_label_service.proto\x12 google.ads.googleads.v5.services\x1a.google.ads.googleads.v5.services.MutateCustomerLabelsResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/customerLabels:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x80\x02\n$com.google.ads.googleads.v5.servicesB\x19\x43ustomerLabelServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERLABELREQUEST = _descriptor.Descriptor( + name='GetCustomerLabelRequest', + full_name='google.ads.googleads.v5.services.GetCustomerLabelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerLabelRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A(\n&googleads.googleapis.com/CustomerLabel', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=307, + serialized_end=403, +) + + +_MUTATECUSTOMERLABELSREQUEST = _descriptor.Descriptor( + name='MutateCustomerLabelsRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerLabelsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=406, + serialized_end=592, +) + + +_CUSTOMERLABELOPERATION = _descriptor.Descriptor( + name='CustomerLabelOperation', + full_name='google.ads.googleads.v5.services.CustomerLabelOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomerLabelOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CustomerLabelOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerLabelOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=594, + serialized_end=717, +) + + +_MUTATECUSTOMERLABELSRESPONSE = _descriptor.Descriptor( + name='MutateCustomerLabelsResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerLabelsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomerLabelsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=720, + serialized_end=879, +) + + +_MUTATECUSTOMERLABELRESULT = _descriptor.Descriptor( + name='MutateCustomerLabelResult', + full_name='google.ads.googleads.v5.services.MutateCustomerLabelResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerLabelResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=881, + serialized_end=931, +) + +_MUTATECUSTOMERLABELSREQUEST.fields_by_name['operations'].message_type = _CUSTOMERLABELOPERATION +_CUSTOMERLABELOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2._CUSTOMERLABEL +_CUSTOMERLABELOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERLABELOPERATION.fields_by_name['create']) +_CUSTOMERLABELOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMERLABELOPERATION.oneofs_by_name['operation'] +_CUSTOMERLABELOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERLABELOPERATION.fields_by_name['remove']) +_CUSTOMERLABELOPERATION.fields_by_name['remove'].containing_oneof = _CUSTOMERLABELOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMERLABELSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECUSTOMERLABELSRESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMERLABELRESULT +DESCRIPTOR.message_types_by_name['GetCustomerLabelRequest'] = _GETCUSTOMERLABELREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerLabelsRequest'] = _MUTATECUSTOMERLABELSREQUEST +DESCRIPTOR.message_types_by_name['CustomerLabelOperation'] = _CUSTOMERLABELOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerLabelsResponse'] = _MUTATECUSTOMERLABELSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerLabelResult'] = _MUTATECUSTOMERLABELRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerLabelRequest = _reflection.GeneratedProtocolMessageType('GetCustomerLabelRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERLABELREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_label_service_pb2' + , + '__doc__': """Request message for [CustomerLabelService.GetCustomerLabel][google.ads + .googleads.v5.services.CustomerLabelService.GetCustomerLabel]. + + Attributes: + resource_name: + Required. The resource name of the customer-label relationship + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerLabelRequest) + }) +_sym_db.RegisterMessage(GetCustomerLabelRequest) + +MutateCustomerLabelsRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerLabelsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERLABELSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_label_service_pb2' + , + '__doc__': """Request message for [CustomerLabelService.MutateCustomerLabels][google + .ads.googleads.v5.services.CustomerLabelService.MutateCustomerLabels]. + + Attributes: + customer_id: + Required. ID of the customer whose customer-label + relationships are being modified. + operations: + Required. The list of operations to perform on customer-label + relationships. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerLabelsRequest) + }) +_sym_db.RegisterMessage(MutateCustomerLabelsRequest) + +CustomerLabelOperation = _reflection.GeneratedProtocolMessageType('CustomerLabelOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERLABELOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_label_service_pb2' + , + '__doc__': """A single operation (create, remove) on a customer-label relationship. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + customer-label relationship. + remove: + Remove operation: A resource name for the customer-label + relationship being removed, in this format: + ``customers/{customer_id}/customerLabels/{label_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerLabelOperation) + }) +_sym_db.RegisterMessage(CustomerLabelOperation) + +MutateCustomerLabelsResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerLabelsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERLABELSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_label_service_pb2' + , + '__doc__': """Response message for a customer labels mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerLabelsResponse) + }) +_sym_db.RegisterMessage(MutateCustomerLabelsResponse) + +MutateCustomerLabelResult = _reflection.GeneratedProtocolMessageType('MutateCustomerLabelResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERLABELRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_label_service_pb2' + , + '__doc__': """The result for a customer label mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerLabelResult) + }) +_sym_db.RegisterMessage(MutateCustomerLabelResult) + + +DESCRIPTOR._options = None +_GETCUSTOMERLABELREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERLABELSREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERLABELSREQUEST.fields_by_name['operations']._options = None + +_CUSTOMERLABELSERVICE = _descriptor.ServiceDescriptor( + name='CustomerLabelService', + full_name='google.ads.googleads.v5.services.CustomerLabelService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=934, + serialized_end=1430, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerLabel', + full_name='google.ads.googleads.v5.services.CustomerLabelService.GetCustomerLabel', + index=0, + containing_service=None, + input_type=_GETCUSTOMERLABELREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2._CUSTOMERLABEL, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=customers/*/customerLabels/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerLabels', + full_name='google.ads.googleads.v5.services.CustomerLabelService.MutateCustomerLabels', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERLABELSREQUEST, + output_type=_MUTATECUSTOMERLABELSRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/customerLabels:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERLABELSERVICE) + +DESCRIPTOR.services_by_name['CustomerLabelService'] = _CUSTOMERLABELSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_label_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_label_service_pb2_grpc.py new file mode 100644 index 000000000..da8b5350b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_label_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2 +from google.ads.google_ads.v5.proto.services import customer_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2 + + +class CustomerLabelServiceStub(object): + """Proto file describing the Customer Label service. + + Service to manage labels on customers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerLabel = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerLabelService/GetCustomerLabel', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.GetCustomerLabelRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2.CustomerLabel.FromString, + ) + self.MutateCustomerLabels = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerLabelService/MutateCustomerLabels', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsResponse.FromString, + ) + + +class CustomerLabelServiceServicer(object): + """Proto file describing the Customer Label service. + + Service to manage labels on customers. + """ + + def GetCustomerLabel(self, request, context): + """Returns the requested customer-label relationship in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerLabels(self, request, context): + """Creates and removes customer-label relationships. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerLabelServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerLabel': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerLabel, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.GetCustomerLabelRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2.CustomerLabel.SerializeToString, + ), + 'MutateCustomerLabels': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerLabels, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerLabelService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerLabelService(object): + """Proto file describing the Customer Label service. + + Service to manage labels on customers. + """ + + @staticmethod + def GetCustomerLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerLabelService/GetCustomerLabel', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.GetCustomerLabelRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2.CustomerLabel.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerLabels(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerLabelService/MutateCustomerLabels', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.MutateCustomerLabelsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2.py new file mode 100644 index 000000000..51a659254 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2.py @@ -0,0 +1,492 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_manager_link_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_manager_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_manager_link_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037CustomerManagerLinkServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/customer_manager_link_service.proto\x12 google.ads.googleads.v5.services\x1a\x43google/ads/googleads_v5/proto/resources/customer_manager_link.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"l\n\x1dGetCustomerManagerLinkRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/CustomerManagerLink\"\x95\x01\n MutateCustomerManagerLinkRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\noperations\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.services.CustomerManagerLinkOperationB\x03\xe0\x41\x02\"y\n\x16MoveManagerLinkRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12+\n\x1eprevious_customer_manager_link\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bnew_manager\x18\x03 \x01(\tB\x03\xe0\x41\x02\"\xa6\x01\n\x1c\x43ustomerManagerLinkOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12H\n\x06update\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.CustomerManagerLinkH\x00\x42\x0b\n\toperation\"w\n!MutateCustomerManagerLinkResponse\x12R\n\x07results\x18\x01 \x03(\x0b\x32\x41.google.ads.googleads.v5.services.MutateCustomerManagerLinkResult\"0\n\x17MoveManagerLinkResponse\x12\x15\n\rresource_name\x18\x01 \x01(\t\"8\n\x1fMutateCustomerManagerLinkResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xb5\x06\n\x1a\x43ustomerManagerLinkService\x12\xe1\x01\n\x16GetCustomerManagerLink\x12?.google.ads.googleads.v5.services.GetCustomerManagerLinkRequest\x1a\x36.google.ads.googleads.v5.resources.CustomerManagerLink\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/customerManagerLinks/*}\xda\x41\rresource_name\x12\x83\x02\n\x19MutateCustomerManagerLink\x12\x42.google.ads.googleads.v5.services.MutateCustomerManagerLinkRequest\x1a\x43.google.ads.googleads.v5.services.MutateCustomerManagerLinkResponse\"]\x82\xd3\xe4\x93\x02>\"9/v5/customers/{customer_id=*}/customerManagerLinks:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x12\x8f\x02\n\x0fMoveManagerLink\x12\x38.google.ads.googleads.v5.services.MoveManagerLinkRequest\x1a\x39.google.ads.googleads.v5.services.MoveManagerLinkResponse\"\x86\x01\x82\xd3\xe4\x93\x02G\"B/v5/customers/{customer_id=*}/customerManagerLinks:moveManagerLink:\x01*\xda\x41\x36\x63ustomer_id,previous_customer_manager_link,new_manager\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1f\x43ustomerManagerLinkServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERMANAGERLINKREQUEST = _descriptor.Descriptor( + name='GetCustomerManagerLinkRequest', + full_name='google.ads.googleads.v5.services.GetCustomerManagerLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerManagerLinkRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/CustomerManagerLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=330, + serialized_end=438, +) + + +_MUTATECUSTOMERMANAGERLINKREQUEST = _descriptor.Descriptor( + name='MutateCustomerManagerLinkRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=441, + serialized_end=590, +) + + +_MOVEMANAGERLINKREQUEST = _descriptor.Descriptor( + name='MoveManagerLinkRequest', + full_name='google.ads.googleads.v5.services.MoveManagerLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MoveManagerLinkRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='previous_customer_manager_link', full_name='google.ads.googleads.v5.services.MoveManagerLinkRequest.previous_customer_manager_link', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='new_manager', full_name='google.ads.googleads.v5.services.MoveManagerLinkRequest.new_manager', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=592, + serialized_end=713, +) + + +_CUSTOMERMANAGERLINKOPERATION = _descriptor.Descriptor( + name='CustomerManagerLinkOperation', + full_name='google.ads.googleads.v5.services.CustomerManagerLinkOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomerManagerLinkOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomerManagerLinkOperation.update', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerManagerLinkOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=716, + serialized_end=882, +) + + +_MUTATECUSTOMERMANAGERLINKRESPONSE = _descriptor.Descriptor( + name='MutateCustomerManagerLinkResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=884, + serialized_end=1003, +) + + +_MOVEMANAGERLINKRESPONSE = _descriptor.Descriptor( + name='MoveManagerLinkResponse', + full_name='google.ads.googleads.v5.services.MoveManagerLinkResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MoveManagerLinkResponse.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1005, + serialized_end=1053, +) + + +_MUTATECUSTOMERMANAGERLINKRESULT = _descriptor.Descriptor( + name='MutateCustomerManagerLinkResult', + full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerManagerLinkResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1055, + serialized_end=1111, +) + +_MUTATECUSTOMERMANAGERLINKREQUEST.fields_by_name['operations'].message_type = _CUSTOMERMANAGERLINKOPERATION +_CUSTOMERMANAGERLINKOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CUSTOMERMANAGERLINKOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2._CUSTOMERMANAGERLINK +_CUSTOMERMANAGERLINKOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERMANAGERLINKOPERATION.fields_by_name['update']) +_CUSTOMERMANAGERLINKOPERATION.fields_by_name['update'].containing_oneof = _CUSTOMERMANAGERLINKOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMERMANAGERLINKRESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMERMANAGERLINKRESULT +DESCRIPTOR.message_types_by_name['GetCustomerManagerLinkRequest'] = _GETCUSTOMERMANAGERLINKREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerManagerLinkRequest'] = _MUTATECUSTOMERMANAGERLINKREQUEST +DESCRIPTOR.message_types_by_name['MoveManagerLinkRequest'] = _MOVEMANAGERLINKREQUEST +DESCRIPTOR.message_types_by_name['CustomerManagerLinkOperation'] = _CUSTOMERMANAGERLINKOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerManagerLinkResponse'] = _MUTATECUSTOMERMANAGERLINKRESPONSE +DESCRIPTOR.message_types_by_name['MoveManagerLinkResponse'] = _MOVEMANAGERLINKRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerManagerLinkResult'] = _MUTATECUSTOMERMANAGERLINKRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerManagerLinkRequest = _reflection.GeneratedProtocolMessageType('GetCustomerManagerLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERMANAGERLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Request message for [CustomerManagerLinkService.GetCustomerManagerLink + ][google.ads.googleads.v5.services.CustomerManagerLinkService.GetCusto + merManagerLink]. + + Attributes: + resource_name: + Required. The resource name of the CustomerManagerLink to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerManagerLinkRequest) + }) +_sym_db.RegisterMessage(GetCustomerManagerLinkRequest) + +MutateCustomerManagerLinkRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerManagerLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERMANAGERLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Request message for [CustomerManagerLinkService.MutateCustomerManagerL + ink][google.ads.googleads.v5.services.CustomerManagerLinkService.Mutat + eCustomerManagerLink]. + + Attributes: + customer_id: + Required. The ID of the customer whose customer manager links + are being modified. + operations: + Required. The list of operations to perform on individual + customer manager links. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerManagerLinkRequest) + }) +_sym_db.RegisterMessage(MutateCustomerManagerLinkRequest) + +MoveManagerLinkRequest = _reflection.GeneratedProtocolMessageType('MoveManagerLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _MOVEMANAGERLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Request message for [CustomerManagerLinkService.MoveManagerLink][googl + e.ads.googleads.v5.services.CustomerManagerLinkService.MoveManagerLink + ]. + + Attributes: + customer_id: + Required. The ID of the client customer that is being moved. + previous_customer_manager_link: + Required. The resource name of the previous + CustomerManagerLink. The resource name has the form: ``custome + rs/{customer_id}/customerManagerLinks/{manager_customer_id}~{m + anager_link_id}`` + new_manager: + Required. The resource name of the new manager customer that + the client wants to move to. Customer resource names have the + format: "customers/{customer\_id}" + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MoveManagerLinkRequest) + }) +_sym_db.RegisterMessage(MoveManagerLinkRequest) + +CustomerManagerLinkOperation = _reflection.GeneratedProtocolMessageType('CustomerManagerLinkOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERMANAGERLINKOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Updates the status of a CustomerManagerLink. The following actions are + possible: 1. Update operation with status ACTIVE accepts a pending + invitation. 2. Update operation with status REFUSED declines a pending + invitation. 3. Update operation with status INACTIVE terminates link + to manager. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + update: + Update operation: The link is expected to have a valid + resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerManagerLinkOperation) + }) +_sym_db.RegisterMessage(CustomerManagerLinkOperation) + +MutateCustomerManagerLinkResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerManagerLinkResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERMANAGERLINKRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Response message for a CustomerManagerLink mutate. + + Attributes: + results: + A result that identifies the resource affected by the mutate + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerManagerLinkResponse) + }) +_sym_db.RegisterMessage(MutateCustomerManagerLinkResponse) + +MoveManagerLinkResponse = _reflection.GeneratedProtocolMessageType('MoveManagerLinkResponse', (_message.Message,), { + 'DESCRIPTOR' : _MOVEMANAGERLINKRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """Response message for a CustomerManagerLink moveManagerLink. + + Attributes: + resource_name: + Returned for successful operations. Represents a + CustomerManagerLink resource of the newly created link between + client customer and new manager customer. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MoveManagerLinkResponse) + }) +_sym_db.RegisterMessage(MoveManagerLinkResponse) + +MutateCustomerManagerLinkResult = _reflection.GeneratedProtocolMessageType('MutateCustomerManagerLinkResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERMANAGERLINKRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_manager_link_service_pb2' + , + '__doc__': """The result for the customer manager link mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerManagerLinkResult) + }) +_sym_db.RegisterMessage(MutateCustomerManagerLinkResult) + + +DESCRIPTOR._options = None +_GETCUSTOMERMANAGERLINKREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERMANAGERLINKREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERMANAGERLINKREQUEST.fields_by_name['operations']._options = None +_MOVEMANAGERLINKREQUEST.fields_by_name['customer_id']._options = None +_MOVEMANAGERLINKREQUEST.fields_by_name['previous_customer_manager_link']._options = None +_MOVEMANAGERLINKREQUEST.fields_by_name['new_manager']._options = None + +_CUSTOMERMANAGERLINKSERVICE = _descriptor.ServiceDescriptor( + name='CustomerManagerLinkService', + full_name='google.ads.googleads.v5.services.CustomerManagerLinkService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1114, + serialized_end=1935, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerManagerLink', + full_name='google.ads.googleads.v5.services.CustomerManagerLinkService.GetCustomerManagerLink', + index=0, + containing_service=None, + input_type=_GETCUSTOMERMANAGERLINKREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2._CUSTOMERMANAGERLINK, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/customerManagerLinks/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerManagerLink', + full_name='google.ads.googleads.v5.services.CustomerManagerLinkService.MutateCustomerManagerLink', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERMANAGERLINKREQUEST, + output_type=_MUTATECUSTOMERMANAGERLINKRESPONSE, + serialized_options=b'\202\323\344\223\002>\"9/v5/customers/{customer_id=*}/customerManagerLinks:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MoveManagerLink', + full_name='google.ads.googleads.v5.services.CustomerManagerLinkService.MoveManagerLink', + index=2, + containing_service=None, + input_type=_MOVEMANAGERLINKREQUEST, + output_type=_MOVEMANAGERLINKRESPONSE, + serialized_options=b'\202\323\344\223\002G\"B/v5/customers/{customer_id=*}/customerManagerLinks:moveManagerLink:\001*\332A6customer_id,previous_customer_manager_link,new_manager', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERMANAGERLINKSERVICE) + +DESCRIPTOR.services_by_name['CustomerManagerLinkService'] = _CUSTOMERMANAGERLINKSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2_grpc.py new file mode 100644 index 000000000..e23858e42 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_manager_link_service_pb2_grpc.py @@ -0,0 +1,140 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_manager_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2 +from google.ads.google_ads.v5.proto.services import customer_manager_link_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2 + + +class CustomerManagerLinkServiceStub(object): + """Service to manage customer-manager links. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerManagerLink = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerManagerLinkService/GetCustomerManagerLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.GetCustomerManagerLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2.CustomerManagerLink.FromString, + ) + self.MutateCustomerManagerLink = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerManagerLinkService/MutateCustomerManagerLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkResponse.FromString, + ) + self.MoveManagerLink = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerManagerLinkService/MoveManagerLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkResponse.FromString, + ) + + +class CustomerManagerLinkServiceServicer(object): + """Service to manage customer-manager links. + """ + + def GetCustomerManagerLink(self, request, context): + """Returns the requested CustomerManagerLink in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerManagerLink(self, request, context): + """Creates or updates customer manager links. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MoveManagerLink(self, request, context): + """Moves a client customer to a new manager customer. + This simplifies the complex request that requires two operations to move + a client customer to a new manager. i.e: + 1. Update operation with Status INACTIVE (previous manager) and, + 2. Update operation with Status ACTIVE (new manager). + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerManagerLinkServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerManagerLink': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerManagerLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.GetCustomerManagerLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2.CustomerManagerLink.SerializeToString, + ), + 'MutateCustomerManagerLink': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerManagerLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkResponse.SerializeToString, + ), + 'MoveManagerLink': grpc.unary_unary_rpc_method_handler( + servicer.MoveManagerLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerManagerLinkService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerManagerLinkService(object): + """Service to manage customer-manager links. + """ + + @staticmethod + def GetCustomerManagerLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerManagerLinkService/GetCustomerManagerLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.GetCustomerManagerLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2.CustomerManagerLink.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerManagerLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerManagerLinkService/MutateCustomerManagerLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MutateCustomerManagerLinkResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MoveManagerLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerManagerLinkService/MoveManagerLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__manager__link__service__pb2.MoveManagerLinkResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2.py new file mode 100644 index 000000000..b92e01df4 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2.py @@ -0,0 +1,392 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_negative_criterion_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import customer_negative_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_negative_criterion_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB%CustomerNegativeCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nPgoogle/ads/googleads_v5/proto/services/customer_negative_criterion_service.proto\x12 google.ads.googleads.v5.services\x1aIgoogle/ads/googleads_v5/proto/resources/customer_negative_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"x\n#GetCustomerNegativeCriterionRequest\x12Q\n\rresource_name\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\n2googleads.googleapis.com/CustomerNegativeCriterion\"\xd0\x01\n%MutateCustomerNegativeCriteriaRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12]\n\noperations\x18\x02 \x03(\x0b\x32\x44.google.ads.googleads.v5.services.CustomerNegativeCriterionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x93\x01\n\"CustomerNegativeCriterionOperation\x12N\n\x06\x63reate\x18\x01 \x01(\x0b\x32<.google.ads.googleads.v5.resources.CustomerNegativeCriterionH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"\xb4\x01\n&MutateCustomerNegativeCriteriaResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12W\n\x07results\x18\x02 \x03(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResult\"=\n$MutateCustomerNegativeCriteriaResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xd2\x04\n CustomerNegativeCriterionService\x12\xf7\x01\n\x1cGetCustomerNegativeCriterion\x12\x45.google.ads.googleads.v5.services.GetCustomerNegativeCriterionRequest\x1a<.google.ads.googleads.v5.resources.CustomerNegativeCriterion\"R\x82\xd3\xe4\x93\x02<\x12:/v5/{resource_name=customers/*/customerNegativeCriteria/*}\xda\x41\rresource_name\x12\x96\x02\n\x1eMutateCustomerNegativeCriteria\x12G.google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest\x1aH.google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResponse\"a\x82\xd3\xe4\x93\x02\x42\"=/v5/customers/{customer_id=*}/customerNegativeCriteria:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8c\x02\n$com.google.ads.googleads.v5.servicesB%CustomerNegativeCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERNEGATIVECRITERIONREQUEST = _descriptor.Descriptor( + name='GetCustomerNegativeCriterionRequest', + full_name='google.ads.googleads.v5.services.GetCustomerNegativeCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerNegativeCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A4\n2googleads.googleapis.com/CustomerNegativeCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=333, + serialized_end=453, +) + + +_MUTATECUSTOMERNEGATIVECRITERIAREQUEST = _descriptor.Descriptor( + name='MutateCustomerNegativeCriteriaRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=456, + serialized_end=664, +) + + +_CUSTOMERNEGATIVECRITERIONOPERATION = _descriptor.Descriptor( + name='CustomerNegativeCriterionOperation', + full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=667, + serialized_end=814, +) + + +_MUTATECUSTOMERNEGATIVECRITERIARESPONSE = _descriptor.Descriptor( + name='MutateCustomerNegativeCriteriaResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=817, + serialized_end=997, +) + + +_MUTATECUSTOMERNEGATIVECRITERIARESULT = _descriptor.Descriptor( + name='MutateCustomerNegativeCriteriaResult', + full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=999, + serialized_end=1060, +) + +_MUTATECUSTOMERNEGATIVECRITERIAREQUEST.fields_by_name['operations'].message_type = _CUSTOMERNEGATIVECRITERIONOPERATION +_CUSTOMERNEGATIVECRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2._CUSTOMERNEGATIVECRITERION +_CUSTOMERNEGATIVECRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERNEGATIVECRITERIONOPERATION.fields_by_name['create']) +_CUSTOMERNEGATIVECRITERIONOPERATION.fields_by_name['create'].containing_oneof = _CUSTOMERNEGATIVECRITERIONOPERATION.oneofs_by_name['operation'] +_CUSTOMERNEGATIVECRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CUSTOMERNEGATIVECRITERIONOPERATION.fields_by_name['remove']) +_CUSTOMERNEGATIVECRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _CUSTOMERNEGATIVECRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATECUSTOMERNEGATIVECRITERIARESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATECUSTOMERNEGATIVECRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATECUSTOMERNEGATIVECRITERIARESULT +DESCRIPTOR.message_types_by_name['GetCustomerNegativeCriterionRequest'] = _GETCUSTOMERNEGATIVECRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerNegativeCriteriaRequest'] = _MUTATECUSTOMERNEGATIVECRITERIAREQUEST +DESCRIPTOR.message_types_by_name['CustomerNegativeCriterionOperation'] = _CUSTOMERNEGATIVECRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateCustomerNegativeCriteriaResponse'] = _MUTATECUSTOMERNEGATIVECRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerNegativeCriteriaResult'] = _MUTATECUSTOMERNEGATIVECRITERIARESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerNegativeCriterionRequest = _reflection.GeneratedProtocolMessageType('GetCustomerNegativeCriterionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERNEGATIVECRITERIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_negative_criterion_service_pb2' + , + '__doc__': """Request message for [CustomerNegativeCriterionService.GetCustomerNegat + iveCriterion][google.ads.googleads.v5.services.CustomerNegativeCriteri + onService.GetCustomerNegativeCriterion]. + + Attributes: + resource_name: + Required. The resource name of the criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerNegativeCriterionRequest) + }) +_sym_db.RegisterMessage(GetCustomerNegativeCriterionRequest) + +MutateCustomerNegativeCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerNegativeCriteriaRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERNEGATIVECRITERIAREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_negative_criterion_service_pb2' + , + '__doc__': """Request message for [CustomerNegativeCriterionService.MutateCustomerNe + gativeCriteria][google.ads.googleads.v5.services.CustomerNegativeCrite + rionService.MutateCustomerNegativeCriteria]. + + Attributes: + customer_id: + Required. The ID of the customer whose criteria are being + modified. + operations: + Required. The list of operations to perform on individual + criteria. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaRequest) + }) +_sym_db.RegisterMessage(MutateCustomerNegativeCriteriaRequest) + +CustomerNegativeCriterionOperation = _reflection.GeneratedProtocolMessageType('CustomerNegativeCriterionOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMERNEGATIVECRITERIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_negative_criterion_service_pb2' + , + '__doc__': """A single operation (create or remove) on a customer level negative + criterion. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + criterion. + remove: + Remove operation: A resource name for the removed criterion is + expected, in this format: ``customers/{customer_id}/customerN + egativeCriteria/{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerNegativeCriterionOperation) + }) +_sym_db.RegisterMessage(CustomerNegativeCriterionOperation) + +MutateCustomerNegativeCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerNegativeCriteriaResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERNEGATIVECRITERIARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_negative_criterion_service_pb2' + , + '__doc__': """Response message for customer negative criterion mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResponse) + }) +_sym_db.RegisterMessage(MutateCustomerNegativeCriteriaResponse) + +MutateCustomerNegativeCriteriaResult = _reflection.GeneratedProtocolMessageType('MutateCustomerNegativeCriteriaResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERNEGATIVECRITERIARESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_negative_criterion_service_pb2' + , + '__doc__': """The result for the criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResult) + }) +_sym_db.RegisterMessage(MutateCustomerNegativeCriteriaResult) + + +DESCRIPTOR._options = None +_GETCUSTOMERNEGATIVECRITERIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERNEGATIVECRITERIAREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERNEGATIVECRITERIAREQUEST.fields_by_name['operations']._options = None + +_CUSTOMERNEGATIVECRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='CustomerNegativeCriterionService', + full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1063, + serialized_end=1657, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomerNegativeCriterion', + full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionService.GetCustomerNegativeCriterion', + index=0, + containing_service=None, + input_type=_GETCUSTOMERNEGATIVECRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2._CUSTOMERNEGATIVECRITERION, + serialized_options=b'\202\323\344\223\002<\022:/v5/{resource_name=customers/*/customerNegativeCriteria/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomerNegativeCriteria', + full_name='google.ads.googleads.v5.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERNEGATIVECRITERIAREQUEST, + output_type=_MUTATECUSTOMERNEGATIVECRITERIARESPONSE, + serialized_options=b'\202\323\344\223\002B\"=/v5/customers/{customer_id=*}/customerNegativeCriteria:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERNEGATIVECRITERIONSERVICE) + +DESCRIPTOR.services_by_name['CustomerNegativeCriterionService'] = _CUSTOMERNEGATIVECRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..cd22d4c30 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_negative_criterion_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_negative_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2 +from google.ads.google_ads.v5.proto.services import customer_negative_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2 + + +class CustomerNegativeCriterionServiceStub(object): + """Proto file describing the Customer Negative Criterion service. + + Service to manage customer negative criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomerNegativeCriterion = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerNegativeCriterionService/GetCustomerNegativeCriterion', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.GetCustomerNegativeCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2.CustomerNegativeCriterion.FromString, + ) + self.MutateCustomerNegativeCriteria = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerNegativeCriterionService/MutateCustomerNegativeCriteria', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaResponse.FromString, + ) + + +class CustomerNegativeCriterionServiceServicer(object): + """Proto file describing the Customer Negative Criterion service. + + Service to manage customer negative criteria. + """ + + def GetCustomerNegativeCriterion(self, request, context): + """Returns the requested criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomerNegativeCriteria(self, request, context): + """Creates or removes criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerNegativeCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomerNegativeCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomerNegativeCriterion, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.GetCustomerNegativeCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2.CustomerNegativeCriterion.SerializeToString, + ), + 'MutateCustomerNegativeCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomerNegativeCriteria, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerNegativeCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerNegativeCriterionService(object): + """Proto file describing the Customer Negative Criterion service. + + Service to manage customer negative criteria. + """ + + @staticmethod + def GetCustomerNegativeCriterion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerNegativeCriterionService/GetCustomerNegativeCriterion', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.GetCustomerNegativeCriterionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2.CustomerNegativeCriterion.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomerNegativeCriteria(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerNegativeCriterionService/MutateCustomerNegativeCriteria', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.MutateCustomerNegativeCriteriaResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/customer_service_pb2.py b/google/ads/google_ads/v5/proto/services/customer_service_pb2.py new file mode 100644 index 000000000..63b62ad51 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_service_pb2.py @@ -0,0 +1,627 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/customer_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import access_role_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_access__role__pb2 +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/customer_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\024CustomerServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n=google/ads/googleads_v5/proto/services/customer_service.proto\x12 google.ads.googleads.v5.services\x1a\x35google/ads/googleads_v5/proto/enums/access_role.proto\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x36google/ads/googleads_v5/proto/resources/customer.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"V\n\x12GetCustomerRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/Customer\"\x80\x02\n\x15MutateCustomerRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\toperation\x18\x04 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.CustomerOperationB\x03\xe0\x41\x02\x12\x15\n\rvalidate_only\x18\x05 \x01(\x08\x12i\n\x15response_content_type\x18\x06 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xff\x01\n\x1b\x43reateCustomerClientRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12I\n\x0f\x63ustomer_client\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.CustomerB\x03\xe0\x41\x02\x12\x1a\n\remail_address\x18\x05 \x01(\tH\x00\x88\x01\x01\x12M\n\x0b\x61\x63\x63\x65ss_role\x18\x04 \x01(\x0e\x32\x38.google.ads.googleads.v5.enums.AccessRoleEnum.AccessRoleB\x10\n\x0e_email_address\"\x81\x01\n\x11\x43ustomerOperation\x12;\n\x06update\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.Customer\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"N\n\x1c\x43reateCustomerClientResponse\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x17\n\x0finvitation_link\x18\x03 \x01(\t\"`\n\x16MutateCustomerResponse\x12\x46\n\x06result\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateCustomerResult\"l\n\x14MutateCustomerResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12=\n\x08\x63ustomer\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.Customer\" \n\x1eListAccessibleCustomersRequest\"9\n\x1fListAccessibleCustomersResponse\x12\x16\n\x0eresource_names\x18\x01 \x03(\t2\xee\x06\n\x0f\x43ustomerService\x12\xa9\x01\n\x0bGetCustomer\x12\x34.google.ads.googleads.v5.services.GetCustomerRequest\x1a+.google.ads.googleads.v5.resources.Customer\"7\x82\xd3\xe4\x93\x02!\x12\x1f/v5/{resource_name=customers/*}\xda\x41\rresource_name\x12\xcc\x01\n\x0eMutateCustomer\x12\x37.google.ads.googleads.v5.services.MutateCustomerRequest\x1a\x38.google.ads.googleads.v5.services.MutateCustomerResponse\"G\x82\xd3\xe4\x93\x02)\"$/v5/customers/{customer_id=*}:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x12\xcd\x01\n\x17ListAccessibleCustomers\x12@.google.ads.googleads.v5.services.ListAccessibleCustomersRequest\x1a\x41.google.ads.googleads.v5.services.ListAccessibleCustomersResponse\"-\x82\xd3\xe4\x93\x02\'\x12%/v5/customers:listAccessibleCustomers\x12\xf2\x01\n\x14\x43reateCustomerClient\x12=.google.ads.googleads.v5.services.CreateCustomerClientRequest\x1a>.google.ads.googleads.v5.services.CreateCustomerClientResponse\"[\x82\xd3\xe4\x93\x02\x37\"2/v5/customers/{customer_id=*}:createCustomerClient:\x01*\xda\x41\x1b\x63ustomer_id,customer_client\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14\x43ustomerServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_access__role__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERREQUEST = _descriptor.Descriptor( + name='GetCustomerRequest', + full_name='google.ads.googleads.v5.services.GetCustomerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetCustomerRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/Customer', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=424, + serialized_end=510, +) + + +_MUTATECUSTOMERREQUEST = _descriptor.Descriptor( + name='MutateCustomerRequest', + full_name='google.ads.googleads.v5.services.MutateCustomerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateCustomerRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateCustomerRequest.operation', index=1, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateCustomerRequest.validate_only', index=2, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateCustomerRequest.response_content_type', index=3, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=513, + serialized_end=769, +) + + +_CREATECUSTOMERCLIENTREQUEST = _descriptor.Descriptor( + name='CreateCustomerClientRequest', + full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_client', full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest.customer_client', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='email_address', full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest.email_address', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='access_role', full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest.access_role', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_email_address', full_name='google.ads.googleads.v5.services.CreateCustomerClientRequest._email_address', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=772, + serialized_end=1027, +) + + +_CUSTOMEROPERATION = _descriptor.Descriptor( + name='CustomerOperation', + full_name='google.ads.googleads.v5.services.CustomerOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.CustomerOperation.update', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.CustomerOperation.update_mask', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1030, + serialized_end=1159, +) + + +_CREATECUSTOMERCLIENTRESPONSE = _descriptor.Descriptor( + name='CreateCustomerClientResponse', + full_name='google.ads.googleads.v5.services.CreateCustomerClientResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.CreateCustomerClientResponse.resource_name', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='invitation_link', full_name='google.ads.googleads.v5.services.CreateCustomerClientResponse.invitation_link', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1161, + serialized_end=1239, +) + + +_MUTATECUSTOMERRESPONSE = _descriptor.Descriptor( + name='MutateCustomerResponse', + full_name='google.ads.googleads.v5.services.MutateCustomerResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateCustomerResponse.result', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1241, + serialized_end=1337, +) + + +_MUTATECUSTOMERRESULT = _descriptor.Descriptor( + name='MutateCustomerResult', + full_name='google.ads.googleads.v5.services.MutateCustomerResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateCustomerResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer', full_name='google.ads.googleads.v5.services.MutateCustomerResult.customer', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1339, + serialized_end=1447, +) + + +_LISTACCESSIBLECUSTOMERSREQUEST = _descriptor.Descriptor( + name='ListAccessibleCustomersRequest', + full_name='google.ads.googleads.v5.services.ListAccessibleCustomersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1449, + serialized_end=1481, +) + + +_LISTACCESSIBLECUSTOMERSRESPONSE = _descriptor.Descriptor( + name='ListAccessibleCustomersResponse', + full_name='google.ads.googleads.v5.services.ListAccessibleCustomersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_names', full_name='google.ads.googleads.v5.services.ListAccessibleCustomersResponse.resource_names', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1483, + serialized_end=1540, +) + +_MUTATECUSTOMERREQUEST.fields_by_name['operation'].message_type = _CUSTOMEROPERATION +_MUTATECUSTOMERREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_CREATECUSTOMERCLIENTREQUEST.fields_by_name['customer_client'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER +_CREATECUSTOMERCLIENTREQUEST.fields_by_name['access_role'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_access__role__pb2._ACCESSROLEENUM_ACCESSROLE +_CREATECUSTOMERCLIENTREQUEST.oneofs_by_name['_email_address'].fields.append( + _CREATECUSTOMERCLIENTREQUEST.fields_by_name['email_address']) +_CREATECUSTOMERCLIENTREQUEST.fields_by_name['email_address'].containing_oneof = _CREATECUSTOMERCLIENTREQUEST.oneofs_by_name['_email_address'] +_CUSTOMEROPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER +_CUSTOMEROPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_MUTATECUSTOMERRESPONSE.fields_by_name['result'].message_type = _MUTATECUSTOMERRESULT +_MUTATECUSTOMERRESULT.fields_by_name['customer'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER +DESCRIPTOR.message_types_by_name['GetCustomerRequest'] = _GETCUSTOMERREQUEST +DESCRIPTOR.message_types_by_name['MutateCustomerRequest'] = _MUTATECUSTOMERREQUEST +DESCRIPTOR.message_types_by_name['CreateCustomerClientRequest'] = _CREATECUSTOMERCLIENTREQUEST +DESCRIPTOR.message_types_by_name['CustomerOperation'] = _CUSTOMEROPERATION +DESCRIPTOR.message_types_by_name['CreateCustomerClientResponse'] = _CREATECUSTOMERCLIENTRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerResponse'] = _MUTATECUSTOMERRESPONSE +DESCRIPTOR.message_types_by_name['MutateCustomerResult'] = _MUTATECUSTOMERRESULT +DESCRIPTOR.message_types_by_name['ListAccessibleCustomersRequest'] = _LISTACCESSIBLECUSTOMERSREQUEST +DESCRIPTOR.message_types_by_name['ListAccessibleCustomersResponse'] = _LISTACCESSIBLECUSTOMERSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerRequest = _reflection.GeneratedProtocolMessageType('GetCustomerRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETCUSTOMERREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Request message for [CustomerService.GetCustomer][google.ads.googleads + .v5.services.CustomerService.GetCustomer]. + + Attributes: + resource_name: + Required. The resource name of the customer to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetCustomerRequest) + }) +_sym_db.RegisterMessage(GetCustomerRequest) + +MutateCustomerRequest = _reflection.GeneratedProtocolMessageType('MutateCustomerRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Request message for [CustomerService.MutateCustomer][google.ads.google + ads.v5.services.CustomerService.MutateCustomer]. + + Attributes: + customer_id: + Required. The ID of the customer being modified. + operation: + Required. The operation to perform on the customer + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerRequest) + }) +_sym_db.RegisterMessage(MutateCustomerRequest) + +CreateCustomerClientRequest = _reflection.GeneratedProtocolMessageType('CreateCustomerClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATECUSTOMERCLIENTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Request message for [CustomerService.CreateCustomerClient][google.ads. + googleads.v5.services.CustomerService.CreateCustomerClient]. + + Attributes: + customer_id: + Required. The ID of the Manager under whom client customer is + being created. + customer_client: + Required. The new client customer to create. The resource name + on this customer will be ignored. + email_address: + Email address of the user who should be invited on the created + client customer. Accessible only to customers on the allow- + list. + access_role: + The proposed role of user on the created client customer. + Accessible only to customers on the allow-list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateCustomerClientRequest) + }) +_sym_db.RegisterMessage(CreateCustomerClientRequest) + +CustomerOperation = _reflection.GeneratedProtocolMessageType('CustomerOperation', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMEROPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """A single update on a customer. + + Attributes: + update: + Mutate operation. Only updates are supported for customer. + update_mask: + FieldMask that determines which resource fields are modified + in an update. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CustomerOperation) + }) +_sym_db.RegisterMessage(CustomerOperation) + +CreateCustomerClientResponse = _reflection.GeneratedProtocolMessageType('CreateCustomerClientResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATECUSTOMERCLIENTRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Response message for CreateCustomerClient mutate. + + Attributes: + resource_name: + The resource name of the newly created customer client. + invitation_link: + Link for inviting user to access the created customer. + Accessible to allowlisted customers only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateCustomerClientResponse) + }) +_sym_db.RegisterMessage(CreateCustomerClientResponse) + +MutateCustomerResponse = _reflection.GeneratedProtocolMessageType('MutateCustomerResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Response message for customer mutate. + + Attributes: + result: + Result for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerResponse) + }) +_sym_db.RegisterMessage(MutateCustomerResponse) + +MutateCustomerResult = _reflection.GeneratedProtocolMessageType('MutateCustomerResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATECUSTOMERRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """The result for the customer mutate. + + Attributes: + resource_name: + Returned for successful operations. + customer: + The mutated customer with only mutable fields after mutate. + The fields will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateCustomerResult) + }) +_sym_db.RegisterMessage(MutateCustomerResult) + +ListAccessibleCustomersRequest = _reflection.GeneratedProtocolMessageType('ListAccessibleCustomersRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTACCESSIBLECUSTOMERSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Request message for [CustomerService.ListAccessibleCustomers][google.a + ds.googleads.v5.services.CustomerService.ListAccessibleCustomers].""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListAccessibleCustomersRequest) + }) +_sym_db.RegisterMessage(ListAccessibleCustomersRequest) + +ListAccessibleCustomersResponse = _reflection.GeneratedProtocolMessageType('ListAccessibleCustomersResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTACCESSIBLECUSTOMERSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.customer_service_pb2' + , + '__doc__': """Response message for [CustomerService.ListAccessibleCustomers][google. + ads.googleads.v5.services.CustomerService.ListAccessibleCustomers]. + + Attributes: + resource_names: + Resource name of customers directly accessible by the user + authenticating the call. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListAccessibleCustomersResponse) + }) +_sym_db.RegisterMessage(ListAccessibleCustomersResponse) + + +DESCRIPTOR._options = None +_GETCUSTOMERREQUEST.fields_by_name['resource_name']._options = None +_MUTATECUSTOMERREQUEST.fields_by_name['customer_id']._options = None +_MUTATECUSTOMERREQUEST.fields_by_name['operation']._options = None +_CREATECUSTOMERCLIENTREQUEST.fields_by_name['customer_id']._options = None +_CREATECUSTOMERCLIENTREQUEST.fields_by_name['customer_client']._options = None + +_CUSTOMERSERVICE = _descriptor.ServiceDescriptor( + name='CustomerService', + full_name='google.ads.googleads.v5.services.CustomerService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1543, + serialized_end=2421, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomer', + full_name='google.ads.googleads.v5.services.CustomerService.GetCustomer', + index=0, + containing_service=None, + input_type=_GETCUSTOMERREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER, + serialized_options=b'\202\323\344\223\002!\022\037/v5/{resource_name=customers/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateCustomer', + full_name='google.ads.googleads.v5.services.CustomerService.MutateCustomer', + index=1, + containing_service=None, + input_type=_MUTATECUSTOMERREQUEST, + output_type=_MUTATECUSTOMERRESPONSE, + serialized_options=b'\202\323\344\223\002)\"$/v5/customers/{customer_id=*}:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ListAccessibleCustomers', + full_name='google.ads.googleads.v5.services.CustomerService.ListAccessibleCustomers', + index=2, + containing_service=None, + input_type=_LISTACCESSIBLECUSTOMERSREQUEST, + output_type=_LISTACCESSIBLECUSTOMERSRESPONSE, + serialized_options=b'\202\323\344\223\002\'\022%/v5/customers:listAccessibleCustomers', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='CreateCustomerClient', + full_name='google.ads.googleads.v5.services.CustomerService.CreateCustomerClient', + index=3, + containing_service=None, + input_type=_CREATECUSTOMERCLIENTREQUEST, + output_type=_CREATECUSTOMERCLIENTRESPONSE, + serialized_options=b'\202\323\344\223\0027\"2/v5/customers/{customer_id=*}:createCustomerClient:\001*\332A\033customer_id,customer_client', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERSERVICE) + +DESCRIPTOR.services_by_name['CustomerService'] = _CUSTOMERSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/customer_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/customer_service_pb2_grpc.py new file mode 100644 index 000000000..3f3f25a41 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/customer_service_pb2_grpc.py @@ -0,0 +1,176 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2 +from google.ads.google_ads.v5.proto.services import customer_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2 + + +class CustomerServiceStub(object): + """Proto file describing the Customer service. + + Service to manage customers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomer = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerService/GetCustomer', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.GetCustomerRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2.Customer.FromString, + ) + self.MutateCustomer = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerService/MutateCustomer', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerResponse.FromString, + ) + self.ListAccessibleCustomers = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerService/ListAccessibleCustomers', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersResponse.FromString, + ) + self.CreateCustomerClient = channel.unary_unary( + '/google.ads.googleads.v5.services.CustomerService/CreateCustomerClient', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientResponse.FromString, + ) + + +class CustomerServiceServicer(object): + """Proto file describing the Customer service. + + Service to manage customers. + """ + + def GetCustomer(self, request, context): + """Returns the requested customer in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCustomer(self, request, context): + """Updates a customer. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListAccessibleCustomers(self, request, context): + """Returns resource names of customers directly accessible by the + user authenticating the call. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateCustomerClient(self, request, context): + """Creates a new client under manager. The new client customer is returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomer': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomer, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.GetCustomerRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2.Customer.SerializeToString, + ), + 'MutateCustomer': grpc.unary_unary_rpc_method_handler( + servicer.MutateCustomer, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerResponse.SerializeToString, + ), + 'ListAccessibleCustomers': grpc.unary_unary_rpc_method_handler( + servicer.ListAccessibleCustomers, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersResponse.SerializeToString, + ), + 'CreateCustomerClient': grpc.unary_unary_rpc_method_handler( + servicer.CreateCustomerClient, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.CustomerService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class CustomerService(object): + """Proto file describing the Customer service. + + Service to manage customers. + """ + + @staticmethod + def GetCustomer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerService/GetCustomer', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.GetCustomerRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2.Customer.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateCustomer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerService/MutateCustomer', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.MutateCustomerResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListAccessibleCustomers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerService/ListAccessibleCustomers', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.ListAccessibleCustomersResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CreateCustomerClient(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.CustomerService/CreateCustomerClient', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.CreateCustomerClientResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2.py new file mode 100644 index 000000000..d522f83cf --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/detail_placement_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import detail_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/detail_placement_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037DetailPlacementViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/detail_placement_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x43google/ads/googleads_v5/proto/resources/detail_placement_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"l\n\x1dGetDetailPlacementViewRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/DetailPlacementView2\x9d\x02\n\x1a\x44\x65tailPlacementViewService\x12\xe1\x01\n\x16GetDetailPlacementView\x12?.google.ads.googleads.v5.services.GetDetailPlacementViewRequest\x1a\x36.google.ads.googleads.v5.resources.DetailPlacementView\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/detailPlacementViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1f\x44\x65tailPlacementViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETDETAILPLACEMENTVIEWREQUEST = _descriptor.Descriptor( + name='GetDetailPlacementViewRequest', + full_name='google.ads.googleads.v5.services.GetDetailPlacementViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetDetailPlacementViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/DetailPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=296, + serialized_end=404, +) + +DESCRIPTOR.message_types_by_name['GetDetailPlacementViewRequest'] = _GETDETAILPLACEMENTVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetDetailPlacementViewRequest = _reflection.GeneratedProtocolMessageType('GetDetailPlacementViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETDETAILPLACEMENTVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.detail_placement_view_service_pb2' + , + '__doc__': """Request message for [DetailPlacementViewService.GetDetailPlacementView + ][google.ads.googleads.v5.services.DetailPlacementViewService.GetDetai + lPlacementView]. + + Attributes: + resource_name: + Required. The resource name of the Detail Placement view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetDetailPlacementViewRequest) + }) +_sym_db.RegisterMessage(GetDetailPlacementViewRequest) + + +DESCRIPTOR._options = None +_GETDETAILPLACEMENTVIEWREQUEST.fields_by_name['resource_name']._options = None + +_DETAILPLACEMENTVIEWSERVICE = _descriptor.ServiceDescriptor( + name='DetailPlacementViewService', + full_name='google.ads.googleads.v5.services.DetailPlacementViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=407, + serialized_end=692, + methods=[ + _descriptor.MethodDescriptor( + name='GetDetailPlacementView', + full_name='google.ads.googleads.v5.services.DetailPlacementViewService.GetDetailPlacementView', + index=0, + containing_service=None, + input_type=_GETDETAILPLACEMENTVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2._DETAILPLACEMENTVIEW, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/detailPlacementViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_DETAILPLACEMENTVIEWSERVICE) + +DESCRIPTOR.services_by_name['DetailPlacementViewService'] = _DETAILPLACEMENTVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2_grpc.py new file mode 100644 index 000000000..2e7c91f19 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/detail_placement_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import detail_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2 +from google.ads.google_ads.v5.proto.services import detail_placement_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_detail__placement__view__service__pb2 + + +class DetailPlacementViewServiceStub(object): + """Proto file describing the Detail Placement View service. + + Service to fetch Detail Placement views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetDetailPlacementView = channel.unary_unary( + '/google.ads.googleads.v5.services.DetailPlacementViewService/GetDetailPlacementView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_detail__placement__view__service__pb2.GetDetailPlacementViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2.DetailPlacementView.FromString, + ) + + +class DetailPlacementViewServiceServicer(object): + """Proto file describing the Detail Placement View service. + + Service to fetch Detail Placement views. + """ + + def GetDetailPlacementView(self, request, context): + """Returns the requested Detail Placement view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DetailPlacementViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetDetailPlacementView': grpc.unary_unary_rpc_method_handler( + servicer.GetDetailPlacementView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_detail__placement__view__service__pb2.GetDetailPlacementViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2.DetailPlacementView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.DetailPlacementViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DetailPlacementViewService(object): + """Proto file describing the Detail Placement View service. + + Service to fetch Detail Placement views. + """ + + @staticmethod + def GetDetailPlacementView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.DetailPlacementViewService/GetDetailPlacementView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_detail__placement__view__service__pb2.GetDetailPlacementViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2.DetailPlacementView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2.py new file mode 100644 index 000000000..9ab0151a3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/display_keyword_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import display_keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/display_keyword_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036DisplayKeywordViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/services/display_keyword_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x42google/ads/googleads_v5/proto/resources/display_keyword_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"j\n\x1cGetDisplayKeywordViewRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/DisplayKeywordView2\x98\x02\n\x19\x44isplayKeywordViewService\x12\xdd\x01\n\x15GetDisplayKeywordView\x12>.google.ads.googleads.v5.services.GetDisplayKeywordViewRequest\x1a\x35.google.ads.googleads.v5.resources.DisplayKeywordView\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/displayKeywordViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1e\x44isplayKeywordViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETDISPLAYKEYWORDVIEWREQUEST = _descriptor.Descriptor( + name='GetDisplayKeywordViewRequest', + full_name='google.ads.googleads.v5.services.GetDisplayKeywordViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetDisplayKeywordViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/DisplayKeywordView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=294, + serialized_end=400, +) + +DESCRIPTOR.message_types_by_name['GetDisplayKeywordViewRequest'] = _GETDISPLAYKEYWORDVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetDisplayKeywordViewRequest = _reflection.GeneratedProtocolMessageType('GetDisplayKeywordViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETDISPLAYKEYWORDVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.display_keyword_view_service_pb2' + , + '__doc__': """Request message for [DisplayKeywordViewService.GetDisplayKeywordView][ + google.ads.googleads.v5.services.DisplayKeywordViewService.GetDisplayK + eywordView]. + + Attributes: + resource_name: + Required. The resource name of the display keyword view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetDisplayKeywordViewRequest) + }) +_sym_db.RegisterMessage(GetDisplayKeywordViewRequest) + + +DESCRIPTOR._options = None +_GETDISPLAYKEYWORDVIEWREQUEST.fields_by_name['resource_name']._options = None + +_DISPLAYKEYWORDVIEWSERVICE = _descriptor.ServiceDescriptor( + name='DisplayKeywordViewService', + full_name='google.ads.googleads.v5.services.DisplayKeywordViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=403, + serialized_end=683, + methods=[ + _descriptor.MethodDescriptor( + name='GetDisplayKeywordView', + full_name='google.ads.googleads.v5.services.DisplayKeywordViewService.GetDisplayKeywordView', + index=0, + containing_service=None, + input_type=_GETDISPLAYKEYWORDVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2._DISPLAYKEYWORDVIEW, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/displayKeywordViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_DISPLAYKEYWORDVIEWSERVICE) + +DESCRIPTOR.services_by_name['DisplayKeywordViewService'] = _DISPLAYKEYWORDVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2_grpc.py new file mode 100644 index 000000000..d313ad002 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/display_keyword_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import display_keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2 +from google.ads.google_ads.v5.proto.services import display_keyword_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_display__keyword__view__service__pb2 + + +class DisplayKeywordViewServiceStub(object): + """Proto file describing the Display Keyword View service. + + Service to manage display keyword views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetDisplayKeywordView = channel.unary_unary( + '/google.ads.googleads.v5.services.DisplayKeywordViewService/GetDisplayKeywordView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_display__keyword__view__service__pb2.GetDisplayKeywordViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2.DisplayKeywordView.FromString, + ) + + +class DisplayKeywordViewServiceServicer(object): + """Proto file describing the Display Keyword View service. + + Service to manage display keyword views. + """ + + def GetDisplayKeywordView(self, request, context): + """Returns the requested display keyword view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DisplayKeywordViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetDisplayKeywordView': grpc.unary_unary_rpc_method_handler( + servicer.GetDisplayKeywordView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_display__keyword__view__service__pb2.GetDisplayKeywordViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2.DisplayKeywordView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.DisplayKeywordViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DisplayKeywordViewService(object): + """Proto file describing the Display Keyword View service. + + Service to manage display keyword views. + """ + + @staticmethod + def GetDisplayKeywordView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.DisplayKeywordViewService/GetDisplayKeywordView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_display__keyword__view__service__pb2.GetDisplayKeywordViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2.DisplayKeywordView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/distance_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/distance_view_service_pb2.py new file mode 100644 index 000000000..88509b0d3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/distance_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/distance_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import distance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/distance_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030DistanceViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/distance_view_service.proto\x12 google.ads.googleads.v5.services\x1a;google/ads/googleads_v5/proto/resources/distance_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"^\n\x16GetDistanceViewRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/DistanceView2\xfa\x01\n\x13\x44istanceViewService\x12\xc5\x01\n\x0fGetDistanceView\x12\x38.google.ads.googleads.v5.services.GetDistanceViewRequest\x1a/.google.ads.googleads.v5.resources.DistanceView\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/distanceViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18\x44istanceViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETDISTANCEVIEWREQUEST = _descriptor.Descriptor( + name='GetDistanceViewRequest', + full_name='google.ads.googleads.v5.services.GetDistanceViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetDistanceViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/DistanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=374, +) + +DESCRIPTOR.message_types_by_name['GetDistanceViewRequest'] = _GETDISTANCEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetDistanceViewRequest = _reflection.GeneratedProtocolMessageType('GetDistanceViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETDISTANCEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.distance_view_service_pb2' + , + '__doc__': """Request message for [DistanceViewService.GetDistanceView][google.ads.g + oogleads.v5.services.DistanceViewService.GetDistanceView]. + + Attributes: + resource_name: + Required. The resource name of the distance view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetDistanceViewRequest) + }) +_sym_db.RegisterMessage(GetDistanceViewRequest) + + +DESCRIPTOR._options = None +_GETDISTANCEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_DISTANCEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='DistanceViewService', + full_name='google.ads.googleads.v5.services.DistanceViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=377, + serialized_end=627, + methods=[ + _descriptor.MethodDescriptor( + name='GetDistanceView', + full_name='google.ads.googleads.v5.services.DistanceViewService.GetDistanceView', + index=0, + containing_service=None, + input_type=_GETDISTANCEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2._DISTANCEVIEW, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/distanceViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_DISTANCEVIEWSERVICE) + +DESCRIPTOR.services_by_name['DistanceViewService'] = _DISTANCEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/distance_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/distance_view_service_pb2_grpc.py new file mode 100644 index 000000000..d6175dad9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/distance_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import distance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2 +from google.ads.google_ads.v5.proto.services import distance_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_distance__view__service__pb2 + + +class DistanceViewServiceStub(object): + """Proto file describing the Distance View service. + + Service to fetch distance views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetDistanceView = channel.unary_unary( + '/google.ads.googleads.v5.services.DistanceViewService/GetDistanceView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_distance__view__service__pb2.GetDistanceViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2.DistanceView.FromString, + ) + + +class DistanceViewServiceServicer(object): + """Proto file describing the Distance View service. + + Service to fetch distance views. + """ + + def GetDistanceView(self, request, context): + """Returns the attributes of the requested distance view. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DistanceViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetDistanceView': grpc.unary_unary_rpc_method_handler( + servicer.GetDistanceView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_distance__view__service__pb2.GetDistanceViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2.DistanceView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.DistanceViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DistanceViewService(object): + """Proto file describing the Distance View service. + + Service to fetch distance views. + """ + + @staticmethod + def GetDistanceView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.DistanceViewService/GetDistanceView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_distance__view__service__pb2.GetDistanceViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2.DistanceView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/domain_category_service_pb2.py b/google/ads/google_ads/v5/proto/services/domain_category_service_pb2.py new file mode 100644 index 000000000..b0d39f31a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/domain_category_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/domain_category_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import domain_category_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/domain_category_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032DomainCategoryServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/services/domain_category_service.proto\x12 google.ads.googleads.v5.services\x1a=google/ads/googleads_v5/proto/resources/domain_category.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetDomainCategoryRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/DomainCategory2\x85\x02\n\x15\x44omainCategoryService\x12\xce\x01\n\x11GetDomainCategory\x12:.google.ads.googleads.v5.services.GetDomainCategoryRequest\x1a\x31.google.ads.googleads.v5.resources.DomainCategory\"J\x82\xd3\xe4\x93\x02\x34\x12\x32/v5/{resource_name=customers/*/domainCategories/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x44omainCategoryServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETDOMAINCATEGORYREQUEST = _descriptor.Descriptor( + name='GetDomainCategoryRequest', + full_name='google.ads.googleads.v5.services.GetDomainCategoryRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetDomainCategoryRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/DomainCategory', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=284, + serialized_end=382, +) + +DESCRIPTOR.message_types_by_name['GetDomainCategoryRequest'] = _GETDOMAINCATEGORYREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetDomainCategoryRequest = _reflection.GeneratedProtocolMessageType('GetDomainCategoryRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETDOMAINCATEGORYREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.domain_category_service_pb2' + , + '__doc__': """Request message for [DomainCategoryService.GetDomainCategory][google.a + ds.googleads.v5.services.DomainCategoryService.GetDomainCategory]. + + Attributes: + resource_name: + Required. Resource name of the domain category to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetDomainCategoryRequest) + }) +_sym_db.RegisterMessage(GetDomainCategoryRequest) + + +DESCRIPTOR._options = None +_GETDOMAINCATEGORYREQUEST.fields_by_name['resource_name']._options = None + +_DOMAINCATEGORYSERVICE = _descriptor.ServiceDescriptor( + name='DomainCategoryService', + full_name='google.ads.googleads.v5.services.DomainCategoryService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=385, + serialized_end=646, + methods=[ + _descriptor.MethodDescriptor( + name='GetDomainCategory', + full_name='google.ads.googleads.v5.services.DomainCategoryService.GetDomainCategory', + index=0, + containing_service=None, + input_type=_GETDOMAINCATEGORYREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2._DOMAINCATEGORY, + serialized_options=b'\202\323\344\223\0024\0222/v5/{resource_name=customers/*/domainCategories/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_DOMAINCATEGORYSERVICE) + +DESCRIPTOR.services_by_name['DomainCategoryService'] = _DOMAINCATEGORYSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/domain_category_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/domain_category_service_pb2_grpc.py new file mode 100644 index 000000000..fec19387b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/domain_category_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import domain_category_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2 +from google.ads.google_ads.v5.proto.services import domain_category_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_domain__category__service__pb2 + + +class DomainCategoryServiceStub(object): + """Proto file describing the DomainCategory Service. + + Service to fetch domain categories. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetDomainCategory = channel.unary_unary( + '/google.ads.googleads.v5.services.DomainCategoryService/GetDomainCategory', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_domain__category__service__pb2.GetDomainCategoryRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2.DomainCategory.FromString, + ) + + +class DomainCategoryServiceServicer(object): + """Proto file describing the DomainCategory Service. + + Service to fetch domain categories. + """ + + def GetDomainCategory(self, request, context): + """Returns the requested domain category. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DomainCategoryServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetDomainCategory': grpc.unary_unary_rpc_method_handler( + servicer.GetDomainCategory, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_domain__category__service__pb2.GetDomainCategoryRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2.DomainCategory.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.DomainCategoryService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DomainCategoryService(object): + """Proto file describing the DomainCategory Service. + + Service to fetch domain categories. + """ + + @staticmethod + def GetDomainCategory(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.DomainCategoryService/GetDomainCategory', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_domain__category__service__pb2.GetDomainCategoryRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2.DomainCategory.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2.py new file mode 100644 index 000000000..c4576c704 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/dynamic_search_ads_search_term_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import dynamic_search_ads_search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/dynamic_search_ads_search_term_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB*DynamicSearchAdsSearchTermViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nXgoogle/ads/googleads_v5/proto/services/dynamic_search_ads_search_term_view_service.proto\x12 google.ads.googleads.v5.services\x1aQgoogle/ads/googleads_v5/proto/resources/dynamic_search_ads_search_term_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x82\x01\n(GetDynamicSearchAdsSearchTermViewRequest\x12V\n\rresource_name\x18\x01 \x01(\tB?\xe0\x41\x02\xfa\x41\x39\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView2\xd4\x02\n%DynamicSearchAdsSearchTermViewService\x12\x8d\x02\n!GetDynamicSearchAdsSearchTermView\x12J.google.ads.googleads.v5.services.GetDynamicSearchAdsSearchTermViewRequest\x1a\x41.google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView\"Y\x82\xd3\xe4\x93\x02\x43\x12\x41/v5/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x91\x02\n$com.google.ads.googleads.v5.servicesB*DynamicSearchAdsSearchTermViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETDYNAMICSEARCHADSSEARCHTERMVIEWREQUEST = _descriptor.Descriptor( + name='GetDynamicSearchAdsSearchTermViewRequest', + full_name='google.ads.googleads.v5.services.GetDynamicSearchAdsSearchTermViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetDynamicSearchAdsSearchTermViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A9\n7googleads.googleapis.com/DynamicSearchAdsSearchTermView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=325, + serialized_end=455, +) + +DESCRIPTOR.message_types_by_name['GetDynamicSearchAdsSearchTermViewRequest'] = _GETDYNAMICSEARCHADSSEARCHTERMVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetDynamicSearchAdsSearchTermViewRequest = _reflection.GeneratedProtocolMessageType('GetDynamicSearchAdsSearchTermViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETDYNAMICSEARCHADSSEARCHTERMVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.dynamic_search_ads_search_term_view_service_pb2' + , + '__doc__': """Request message for [DynamicSearchAdsSearchTermViewService.GetDynamicS + earchAdsSearchTermView][google.ads.googleads.v5.services.DynamicSearch + AdsSearchTermViewService.GetDynamicSearchAdsSearchTermView]. + + Attributes: + resource_name: + Required. The resource name of the dynamic search ads search + term view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetDynamicSearchAdsSearchTermViewRequest) + }) +_sym_db.RegisterMessage(GetDynamicSearchAdsSearchTermViewRequest) + + +DESCRIPTOR._options = None +_GETDYNAMICSEARCHADSSEARCHTERMVIEWREQUEST.fields_by_name['resource_name']._options = None + +_DYNAMICSEARCHADSSEARCHTERMVIEWSERVICE = _descriptor.ServiceDescriptor( + name='DynamicSearchAdsSearchTermViewService', + full_name='google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=458, + serialized_end=798, + methods=[ + _descriptor.MethodDescriptor( + name='GetDynamicSearchAdsSearchTermView', + full_name='google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService.GetDynamicSearchAdsSearchTermView', + index=0, + containing_service=None, + input_type=_GETDYNAMICSEARCHADSSEARCHTERMVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2._DYNAMICSEARCHADSSEARCHTERMVIEW, + serialized_options=b'\202\323\344\223\002C\022A/v5/{resource_name=customers/*/dynamicSearchAdsSearchTermViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_DYNAMICSEARCHADSSEARCHTERMVIEWSERVICE) + +DESCRIPTOR.services_by_name['DynamicSearchAdsSearchTermViewService'] = _DYNAMICSEARCHADSSEARCHTERMVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2_grpc.py new file mode 100644 index 000000000..b4c881ba6 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/dynamic_search_ads_search_term_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import dynamic_search_ads_search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2 +from google.ads.google_ads.v5.proto.services import dynamic_search_ads_search_term_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_dynamic__search__ads__search__term__view__service__pb2 + + +class DynamicSearchAdsSearchTermViewServiceStub(object): + """Proto file describing the Dynamic Search Ads Search Term View service. + + Service to fetch dynamic search ads views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetDynamicSearchAdsSearchTermView = channel.unary_unary( + '/google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService/GetDynamicSearchAdsSearchTermView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_dynamic__search__ads__search__term__view__service__pb2.GetDynamicSearchAdsSearchTermViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2.DynamicSearchAdsSearchTermView.FromString, + ) + + +class DynamicSearchAdsSearchTermViewServiceServicer(object): + """Proto file describing the Dynamic Search Ads Search Term View service. + + Service to fetch dynamic search ads views. + """ + + def GetDynamicSearchAdsSearchTermView(self, request, context): + """Returns the requested dynamic search ads search term view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DynamicSearchAdsSearchTermViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetDynamicSearchAdsSearchTermView': grpc.unary_unary_rpc_method_handler( + servicer.GetDynamicSearchAdsSearchTermView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_dynamic__search__ads__search__term__view__service__pb2.GetDynamicSearchAdsSearchTermViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2.DynamicSearchAdsSearchTermView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class DynamicSearchAdsSearchTermViewService(object): + """Proto file describing the Dynamic Search Ads Search Term View service. + + Service to fetch dynamic search ads views. + """ + + @staticmethod + def GetDynamicSearchAdsSearchTermView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService/GetDynamicSearchAdsSearchTermView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_dynamic__search__ads__search__term__view__service__pb2.GetDynamicSearchAdsSearchTermViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2.DynamicSearchAdsSearchTermView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2.py new file mode 100644 index 000000000..5c99ac7e3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/expanded_landing_page_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import expanded_landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/expanded_landing_page_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB#ExpandedLandingPageViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nOgoogle/ads/googleads_v5/proto/services/expanded_landing_page_view_service.proto\x12 google.ads.googleads.v5.services\x1aHgoogle/ads/googleads_v5/proto/resources/expanded_landing_page_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"t\n!GetExpandedLandingPageViewRequest\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0googleads.googleapis.com/ExpandedLandingPageView2\xb1\x02\n\x1e\x45xpandedLandingPageViewService\x12\xf1\x01\n\x1aGetExpandedLandingPageView\x12\x43.google.ads.googleads.v5.services.GetExpandedLandingPageViewRequest\x1a:.google.ads.googleads.v5.resources.ExpandedLandingPageView\"R\x82\xd3\xe4\x93\x02<\x12:/v5/{resource_name=customers/*/expandedLandingPageViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8a\x02\n$com.google.ads.googleads.v5.servicesB#ExpandedLandingPageViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETEXPANDEDLANDINGPAGEVIEWREQUEST = _descriptor.Descriptor( + name='GetExpandedLandingPageViewRequest', + full_name='google.ads.googleads.v5.services.GetExpandedLandingPageViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetExpandedLandingPageViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A2\n0googleads.googleapis.com/ExpandedLandingPageView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=306, + serialized_end=422, +) + +DESCRIPTOR.message_types_by_name['GetExpandedLandingPageViewRequest'] = _GETEXPANDEDLANDINGPAGEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetExpandedLandingPageViewRequest = _reflection.GeneratedProtocolMessageType('GetExpandedLandingPageViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETEXPANDEDLANDINGPAGEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.expanded_landing_page_view_service_pb2' + , + '__doc__': """Request message for [ExpandedLandingPageViewService.GetExpandedLanding + PageView][google.ads.googleads.v5.services.ExpandedLandingPageViewServ + ice.GetExpandedLandingPageView]. + + Attributes: + resource_name: + Required. The resource name of the expanded landing page view + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetExpandedLandingPageViewRequest) + }) +_sym_db.RegisterMessage(GetExpandedLandingPageViewRequest) + + +DESCRIPTOR._options = None +_GETEXPANDEDLANDINGPAGEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_EXPANDEDLANDINGPAGEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ExpandedLandingPageViewService', + full_name='google.ads.googleads.v5.services.ExpandedLandingPageViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=425, + serialized_end=730, + methods=[ + _descriptor.MethodDescriptor( + name='GetExpandedLandingPageView', + full_name='google.ads.googleads.v5.services.ExpandedLandingPageViewService.GetExpandedLandingPageView', + index=0, + containing_service=None, + input_type=_GETEXPANDEDLANDINGPAGEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2._EXPANDEDLANDINGPAGEVIEW, + serialized_options=b'\202\323\344\223\002<\022:/v5/{resource_name=customers/*/expandedLandingPageViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_EXPANDEDLANDINGPAGEVIEWSERVICE) + +DESCRIPTOR.services_by_name['ExpandedLandingPageViewService'] = _EXPANDEDLANDINGPAGEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2_grpc.py new file mode 100644 index 000000000..68d68fe2f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/expanded_landing_page_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import expanded_landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2 +from google.ads.google_ads.v5.proto.services import expanded_landing_page_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_expanded__landing__page__view__service__pb2 + + +class ExpandedLandingPageViewServiceStub(object): + """Proto file describing the expanded landing page view service. + + Service to fetch expanded landing page views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetExpandedLandingPageView = channel.unary_unary( + '/google.ads.googleads.v5.services.ExpandedLandingPageViewService/GetExpandedLandingPageView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_expanded__landing__page__view__service__pb2.GetExpandedLandingPageViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2.ExpandedLandingPageView.FromString, + ) + + +class ExpandedLandingPageViewServiceServicer(object): + """Proto file describing the expanded landing page view service. + + Service to fetch expanded landing page views. + """ + + def GetExpandedLandingPageView(self, request, context): + """Returns the requested expanded landing page view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ExpandedLandingPageViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetExpandedLandingPageView': grpc.unary_unary_rpc_method_handler( + servicer.GetExpandedLandingPageView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_expanded__landing__page__view__service__pb2.GetExpandedLandingPageViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2.ExpandedLandingPageView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ExpandedLandingPageViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ExpandedLandingPageViewService(object): + """Proto file describing the expanded landing page view service. + + Service to fetch expanded landing page views. + """ + + @staticmethod + def GetExpandedLandingPageView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ExpandedLandingPageViewService/GetExpandedLandingPageView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_expanded__landing__page__view__service__pb2.GetExpandedLandingPageViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2.ExpandedLandingPageView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2.py b/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2.py new file mode 100644 index 000000000..00461ecf2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2.py @@ -0,0 +1,443 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/extension_feed_item_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import extension_feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/extension_feed_item_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\035ExtensionFeedItemServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/services/extension_feed_item_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x41google/ads/googleads_v5/proto/resources/extension_feed_item.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"h\n\x1bGetExtensionFeedItemRequest\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*googleads.googleapis.com/ExtensionFeedItem\"\xad\x02\n\x1fMutateExtensionFeedItemsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\noperations\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.ExtensionFeedItemOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xfc\x01\n\x1a\x45xtensionFeedItemOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x46\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.ExtensionFeedItemH\x00\x12\x46\n\x06update\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.ExtensionFeedItemH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa7\x01\n MutateExtensionFeedItemsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12P\n\x07results\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v5.services.MutateExtensionFeedItemResult\"\x89\x01\n\x1dMutateExtensionFeedItemResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12Q\n\x13\x65xtension_feed_item\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.ExtensionFeedItem2\x94\x04\n\x18\x45xtensionFeedItemService\x12\xd9\x01\n\x14GetExtensionFeedItem\x12=.google.ads.googleads.v5.services.GetExtensionFeedItemRequest\x1a\x34.google.ads.googleads.v5.resources.ExtensionFeedItem\"L\x82\xd3\xe4\x93\x02\x36\x12\x34/v5/{resource_name=customers/*/extensionFeedItems/*}\xda\x41\rresource_name\x12\xfe\x01\n\x18MutateExtensionFeedItems\x12\x41.google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest\x1a\x42.google.ads.googleads.v5.services.MutateExtensionFeedItemsResponse\"[\x82\xd3\xe4\x93\x02<\"7/v5/customers/{customer_id=*}/extensionFeedItems:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x84\x02\n$com.google.ads.googleads.v5.servicesB\x1d\x45xtensionFeedItemServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETEXTENSIONFEEDITEMREQUEST = _descriptor.Descriptor( + name='GetExtensionFeedItemRequest', + full_name='google.ads.googleads.v5.services.GetExtensionFeedItemRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetExtensionFeedItemRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A,\n*googleads.googleapis.com/ExtensionFeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=416, + serialized_end=520, +) + + +_MUTATEEXTENSIONFEEDITEMSREQUEST = _descriptor.Descriptor( + name='MutateExtensionFeedItemsRequest', + full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=523, + serialized_end=824, +) + + +_EXTENSIONFEEDITEMOPERATION = _descriptor.Descriptor( + name='ExtensionFeedItemOperation', + full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.ExtensionFeedItemOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=827, + serialized_end=1079, +) + + +_MUTATEEXTENSIONFEEDITEMSRESPONSE = _descriptor.Descriptor( + name='MutateExtensionFeedItemsResponse', + full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1082, + serialized_end=1249, +) + + +_MUTATEEXTENSIONFEEDITEMRESULT = _descriptor.Descriptor( + name='MutateExtensionFeedItemResult', + full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_item', full_name='google.ads.googleads.v5.services.MutateExtensionFeedItemResult.extension_feed_item', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1252, + serialized_end=1389, +) + +_MUTATEEXTENSIONFEEDITEMSREQUEST.fields_by_name['operations'].message_type = _EXTENSIONFEEDITEMOPERATION +_MUTATEEXTENSIONFEEDITEMSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_EXTENSIONFEEDITEMOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_EXTENSIONFEEDITEMOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2._EXTENSIONFEEDITEM +_EXTENSIONFEEDITEMOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2._EXTENSIONFEEDITEM +_EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _EXTENSIONFEEDITEMOPERATION.fields_by_name['create']) +_EXTENSIONFEEDITEMOPERATION.fields_by_name['create'].containing_oneof = _EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'] +_EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _EXTENSIONFEEDITEMOPERATION.fields_by_name['update']) +_EXTENSIONFEEDITEMOPERATION.fields_by_name['update'].containing_oneof = _EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'] +_EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _EXTENSIONFEEDITEMOPERATION.fields_by_name['remove']) +_EXTENSIONFEEDITEMOPERATION.fields_by_name['remove'].containing_oneof = _EXTENSIONFEEDITEMOPERATION.oneofs_by_name['operation'] +_MUTATEEXTENSIONFEEDITEMSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEEXTENSIONFEEDITEMSRESPONSE.fields_by_name['results'].message_type = _MUTATEEXTENSIONFEEDITEMRESULT +_MUTATEEXTENSIONFEEDITEMRESULT.fields_by_name['extension_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2._EXTENSIONFEEDITEM +DESCRIPTOR.message_types_by_name['GetExtensionFeedItemRequest'] = _GETEXTENSIONFEEDITEMREQUEST +DESCRIPTOR.message_types_by_name['MutateExtensionFeedItemsRequest'] = _MUTATEEXTENSIONFEEDITEMSREQUEST +DESCRIPTOR.message_types_by_name['ExtensionFeedItemOperation'] = _EXTENSIONFEEDITEMOPERATION +DESCRIPTOR.message_types_by_name['MutateExtensionFeedItemsResponse'] = _MUTATEEXTENSIONFEEDITEMSRESPONSE +DESCRIPTOR.message_types_by_name['MutateExtensionFeedItemResult'] = _MUTATEEXTENSIONFEEDITEMRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetExtensionFeedItemRequest = _reflection.GeneratedProtocolMessageType('GetExtensionFeedItemRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETEXTENSIONFEEDITEMREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.extension_feed_item_service_pb2' + , + '__doc__': """Request message for [ExtensionFeedItemService.GetExtensionFeedItem][go + ogle.ads.googleads.v5.services.ExtensionFeedItemService.GetExtensionFe + edItem]. + + Attributes: + resource_name: + Required. The resource name of the extension feed item to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetExtensionFeedItemRequest) + }) +_sym_db.RegisterMessage(GetExtensionFeedItemRequest) + +MutateExtensionFeedItemsRequest = _reflection.GeneratedProtocolMessageType('MutateExtensionFeedItemsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEEXTENSIONFEEDITEMSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.extension_feed_item_service_pb2' + , + '__doc__': """Request message for [ExtensionFeedItemService.MutateExtensionFeedItems + ][google.ads.googleads.v5.services.ExtensionFeedItemService.MutateExte + nsionFeedItems]. + + Attributes: + customer_id: + Required. The ID of the customer whose extension feed items + are being modified. + operations: + Required. The list of operations to perform on individual + extension feed items. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateExtensionFeedItemsRequest) + }) +_sym_db.RegisterMessage(MutateExtensionFeedItemsRequest) + +ExtensionFeedItemOperation = _reflection.GeneratedProtocolMessageType('ExtensionFeedItemOperation', (_message.Message,), { + 'DESCRIPTOR' : _EXTENSIONFEEDITEMOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.extension_feed_item_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an extension feed item. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + extension feed item. + update: + Update operation: The extension feed item is expected to have + a valid resource name. + remove: + Remove operation: A resource name for the removed extension + feed item is expected, in this format: + ``customers/{customer_id}/extensionFeedItems/{feed_item_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ExtensionFeedItemOperation) + }) +_sym_db.RegisterMessage(ExtensionFeedItemOperation) + +MutateExtensionFeedItemsResponse = _reflection.GeneratedProtocolMessageType('MutateExtensionFeedItemsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEEXTENSIONFEEDITEMSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.extension_feed_item_service_pb2' + , + '__doc__': """Response message for an extension feed item mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateExtensionFeedItemsResponse) + }) +_sym_db.RegisterMessage(MutateExtensionFeedItemsResponse) + +MutateExtensionFeedItemResult = _reflection.GeneratedProtocolMessageType('MutateExtensionFeedItemResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEEXTENSIONFEEDITEMRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.extension_feed_item_service_pb2' + , + '__doc__': """The result for the extension feed item mutate. + + Attributes: + resource_name: + Returned for successful operations. + extension_feed_item: + The mutated extension feed item with only mutable fields after + mutate. The field will only be returned when + response\_content\_type is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateExtensionFeedItemResult) + }) +_sym_db.RegisterMessage(MutateExtensionFeedItemResult) + + +DESCRIPTOR._options = None +_GETEXTENSIONFEEDITEMREQUEST.fields_by_name['resource_name']._options = None +_MUTATEEXTENSIONFEEDITEMSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEEXTENSIONFEEDITEMSREQUEST.fields_by_name['operations']._options = None + +_EXTENSIONFEEDITEMSERVICE = _descriptor.ServiceDescriptor( + name='ExtensionFeedItemService', + full_name='google.ads.googleads.v5.services.ExtensionFeedItemService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1392, + serialized_end=1924, + methods=[ + _descriptor.MethodDescriptor( + name='GetExtensionFeedItem', + full_name='google.ads.googleads.v5.services.ExtensionFeedItemService.GetExtensionFeedItem', + index=0, + containing_service=None, + input_type=_GETEXTENSIONFEEDITEMREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2._EXTENSIONFEEDITEM, + serialized_options=b'\202\323\344\223\0026\0224/v5/{resource_name=customers/*/extensionFeedItems/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateExtensionFeedItems', + full_name='google.ads.googleads.v5.services.ExtensionFeedItemService.MutateExtensionFeedItems', + index=1, + containing_service=None, + input_type=_MUTATEEXTENSIONFEEDITEMSREQUEST, + output_type=_MUTATEEXTENSIONFEEDITEMSRESPONSE, + serialized_options=b'\202\323\344\223\002<\"7/v5/customers/{customer_id=*}/extensionFeedItems:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_EXTENSIONFEEDITEMSERVICE) + +DESCRIPTOR.services_by_name['ExtensionFeedItemService'] = _EXTENSIONFEEDITEMSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2_grpc.py new file mode 100644 index 000000000..d508f8c03 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/extension_feed_item_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import extension_feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2 +from google.ads.google_ads.v5.proto.services import extension_feed_item_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2 + + +class ExtensionFeedItemServiceStub(object): + """Proto file describing the ExtensionFeedItem service. + + Service to manage extension feed items. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetExtensionFeedItem = channel.unary_unary( + '/google.ads.googleads.v5.services.ExtensionFeedItemService/GetExtensionFeedItem', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.GetExtensionFeedItemRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2.ExtensionFeedItem.FromString, + ) + self.MutateExtensionFeedItems = channel.unary_unary( + '/google.ads.googleads.v5.services.ExtensionFeedItemService/MutateExtensionFeedItems', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsResponse.FromString, + ) + + +class ExtensionFeedItemServiceServicer(object): + """Proto file describing the ExtensionFeedItem service. + + Service to manage extension feed items. + """ + + def GetExtensionFeedItem(self, request, context): + """Returns the requested extension feed item in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateExtensionFeedItems(self, request, context): + """Creates, updates, or removes extension feed items. Operation + statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ExtensionFeedItemServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetExtensionFeedItem': grpc.unary_unary_rpc_method_handler( + servicer.GetExtensionFeedItem, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.GetExtensionFeedItemRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2.ExtensionFeedItem.SerializeToString, + ), + 'MutateExtensionFeedItems': grpc.unary_unary_rpc_method_handler( + servicer.MutateExtensionFeedItems, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ExtensionFeedItemService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ExtensionFeedItemService(object): + """Proto file describing the ExtensionFeedItem service. + + Service to manage extension feed items. + """ + + @staticmethod + def GetExtensionFeedItem(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ExtensionFeedItemService/GetExtensionFeedItem', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.GetExtensionFeedItemRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2.ExtensionFeedItem.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateExtensionFeedItems(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ExtensionFeedItemService/MutateExtensionFeedItems', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.MutateExtensionFeedItemsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/feed_item_service_pb2.py b/google/ads/google_ads/v5/proto/services/feed_item_service_pb2.py new file mode 100644 index 000000000..a61136d9a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_item_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/feed_item_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/feed_item_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\024FeedItemServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/services/feed_item_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x37google/ads/googleads_v5/proto/resources/feed_item.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"V\n\x12GetFeedItemRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/FeedItem\"\x9b\x02\n\x16MutateFeedItemsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12L\n\noperations\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v5.services.FeedItemOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xe1\x01\n\x11\x46\x65\x65\x64ItemOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12=\n\x06\x63reate\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.FeedItemH\x00\x12=\n\x06update\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.FeedItemH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x95\x01\n\x17MutateFeedItemsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12G\n\x07results\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.MutateFeedItemResult\"m\n\x14MutateFeedItemResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12>\n\tfeed_item\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.FeedItem2\xc3\x03\n\x0f\x46\x65\x65\x64ItemService\x12\xb5\x01\n\x0bGetFeedItem\x12\x34.google.ads.googleads.v5.services.GetFeedItemRequest\x1a+.google.ads.googleads.v5.resources.FeedItem\"C\x82\xd3\xe4\x93\x02-\x12+/v5/{resource_name=customers/*/feedItems/*}\xda\x41\rresource_name\x12\xda\x01\n\x0fMutateFeedItems\x12\x38.google.ads.googleads.v5.services.MutateFeedItemsRequest\x1a\x39.google.ads.googleads.v5.services.MutateFeedItemsResponse\"R\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/feedItems:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14\x46\x65\x65\x64ItemServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETFEEDITEMREQUEST = _descriptor.Descriptor( + name='GetFeedItemRequest', + full_name='google.ads.googleads.v5.services.GetFeedItemRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetFeedItemRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/FeedItem', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=396, + serialized_end=482, +) + + +_MUTATEFEEDITEMSREQUEST = _descriptor.Descriptor( + name='MutateFeedItemsRequest', + full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateFeedItemsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=485, + serialized_end=768, +) + + +_FEEDITEMOPERATION = _descriptor.Descriptor( + name='FeedItemOperation', + full_name='google.ads.googleads.v5.services.FeedItemOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.FeedItemOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.FeedItemOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.FeedItemOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.FeedItemOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.FeedItemOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=771, + serialized_end=996, +) + + +_MUTATEFEEDITEMSRESPONSE = _descriptor.Descriptor( + name='MutateFeedItemsResponse', + full_name='google.ads.googleads.v5.services.MutateFeedItemsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateFeedItemsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateFeedItemsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=999, + serialized_end=1148, +) + + +_MUTATEFEEDITEMRESULT = _descriptor.Descriptor( + name='MutateFeedItemResult', + full_name='google.ads.googleads.v5.services.MutateFeedItemResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateFeedItemResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item', full_name='google.ads.googleads.v5.services.MutateFeedItemResult.feed_item', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1150, + serialized_end=1259, +) + +_MUTATEFEEDITEMSREQUEST.fields_by_name['operations'].message_type = _FEEDITEMOPERATION +_MUTATEFEEDITEMSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_FEEDITEMOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_FEEDITEMOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2._FEEDITEM +_FEEDITEMOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2._FEEDITEM +_FEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDITEMOPERATION.fields_by_name['create']) +_FEEDITEMOPERATION.fields_by_name['create'].containing_oneof = _FEEDITEMOPERATION.oneofs_by_name['operation'] +_FEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDITEMOPERATION.fields_by_name['update']) +_FEEDITEMOPERATION.fields_by_name['update'].containing_oneof = _FEEDITEMOPERATION.oneofs_by_name['operation'] +_FEEDITEMOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDITEMOPERATION.fields_by_name['remove']) +_FEEDITEMOPERATION.fields_by_name['remove'].containing_oneof = _FEEDITEMOPERATION.oneofs_by_name['operation'] +_MUTATEFEEDITEMSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEFEEDITEMSRESPONSE.fields_by_name['results'].message_type = _MUTATEFEEDITEMRESULT +_MUTATEFEEDITEMRESULT.fields_by_name['feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2._FEEDITEM +DESCRIPTOR.message_types_by_name['GetFeedItemRequest'] = _GETFEEDITEMREQUEST +DESCRIPTOR.message_types_by_name['MutateFeedItemsRequest'] = _MUTATEFEEDITEMSREQUEST +DESCRIPTOR.message_types_by_name['FeedItemOperation'] = _FEEDITEMOPERATION +DESCRIPTOR.message_types_by_name['MutateFeedItemsResponse'] = _MUTATEFEEDITEMSRESPONSE +DESCRIPTOR.message_types_by_name['MutateFeedItemResult'] = _MUTATEFEEDITEMRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetFeedItemRequest = _reflection.GeneratedProtocolMessageType('GetFeedItemRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFEEDITEMREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_service_pb2' + , + '__doc__': """Request message for [FeedItemService.GetFeedItem][google.ads.googleads + .v5.services.FeedItemService.GetFeedItem]. + + Attributes: + resource_name: + Required. The resource name of the feed item to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetFeedItemRequest) + }) +_sym_db.RegisterMessage(GetFeedItemRequest) + +MutateFeedItemsRequest = _reflection.GeneratedProtocolMessageType('MutateFeedItemsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_service_pb2' + , + '__doc__': """Request message for [FeedItemService.MutateFeedItems][google.ads.googl + eads.v5.services.FeedItemService.MutateFeedItems]. + + Attributes: + customer_id: + Required. The ID of the customer whose feed items are being + modified. + operations: + Required. The list of operations to perform on individual feed + items. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemsRequest) + }) +_sym_db.RegisterMessage(MutateFeedItemsRequest) + +FeedItemOperation = _reflection.GeneratedProtocolMessageType('FeedItemOperation', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an feed item. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + feed item. + update: + Update operation: The feed item is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed feed item is + expected, in this format: + ``customers/{customer_id}/feedItems/{feed_id}~{feed_item_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.FeedItemOperation) + }) +_sym_db.RegisterMessage(FeedItemOperation) + +MutateFeedItemsResponse = _reflection.GeneratedProtocolMessageType('MutateFeedItemsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_service_pb2' + , + '__doc__': """Response message for an feed item mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemsResponse) + }) +_sym_db.RegisterMessage(MutateFeedItemsResponse) + +MutateFeedItemResult = _reflection.GeneratedProtocolMessageType('MutateFeedItemResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_service_pb2' + , + '__doc__': """The result for the feed item mutate. + + Attributes: + resource_name: + Returned for successful operations. + feed_item: + The mutated feed item with only mutable fields after mutate. + The field will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemResult) + }) +_sym_db.RegisterMessage(MutateFeedItemResult) + + +DESCRIPTOR._options = None +_GETFEEDITEMREQUEST.fields_by_name['resource_name']._options = None +_MUTATEFEEDITEMSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEFEEDITEMSREQUEST.fields_by_name['operations']._options = None + +_FEEDITEMSERVICE = _descriptor.ServiceDescriptor( + name='FeedItemService', + full_name='google.ads.googleads.v5.services.FeedItemService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1262, + serialized_end=1713, + methods=[ + _descriptor.MethodDescriptor( + name='GetFeedItem', + full_name='google.ads.googleads.v5.services.FeedItemService.GetFeedItem', + index=0, + containing_service=None, + input_type=_GETFEEDITEMREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2._FEEDITEM, + serialized_options=b'\202\323\344\223\002-\022+/v5/{resource_name=customers/*/feedItems/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateFeedItems', + full_name='google.ads.googleads.v5.services.FeedItemService.MutateFeedItems', + index=1, + containing_service=None, + input_type=_MUTATEFEEDITEMSREQUEST, + output_type=_MUTATEFEEDITEMSRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/feedItems:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_FEEDITEMSERVICE) + +DESCRIPTOR.services_by_name['FeedItemService'] = _FEEDITEMSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/feed_item_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/feed_item_service_pb2_grpc.py new file mode 100644 index 000000000..ffbf9e506 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_item_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2 +from google.ads.google_ads.v5.proto.services import feed_item_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2 + + +class FeedItemServiceStub(object): + """Proto file describing the FeedItem service. + + Service to manage feed items. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFeedItem = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedItemService/GetFeedItem', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.GetFeedItemRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2.FeedItem.FromString, + ) + self.MutateFeedItems = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedItemService/MutateFeedItems', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsResponse.FromString, + ) + + +class FeedItemServiceServicer(object): + """Proto file describing the FeedItem service. + + Service to manage feed items. + """ + + def GetFeedItem(self, request, context): + """Returns the requested feed item in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateFeedItems(self, request, context): + """Creates, updates, or removes feed items. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeedItemServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFeedItem': grpc.unary_unary_rpc_method_handler( + servicer.GetFeedItem, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.GetFeedItemRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2.FeedItem.SerializeToString, + ), + 'MutateFeedItems': grpc.unary_unary_rpc_method_handler( + servicer.MutateFeedItems, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.FeedItemService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeedItemService(object): + """Proto file describing the FeedItem service. + + Service to manage feed items. + """ + + @staticmethod + def GetFeedItem(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedItemService/GetFeedItem', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.GetFeedItemRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2.FeedItem.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateFeedItems(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedItemService/MutateFeedItems', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.MutateFeedItemsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2.py b/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2.py new file mode 100644 index 000000000..ea1c17ee8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2.py @@ -0,0 +1,354 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/feed_item_target_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import feed_item_target_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/feed_item_target_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032FeedItemTargetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/feed_item_target_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/feed_item_target.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetFeedItemTargetRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/FeedItemTarget\"\x8c\x01\n\x1cMutateFeedItemTargetsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\noperations\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.FeedItemTargetOperationB\x03\xe0\x41\x02\"}\n\x17\x46\x65\x65\x64ItemTargetOperation\x12\x43\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.FeedItemTargetH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"n\n\x1dMutateFeedItemTargetsResponse\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.MutateFeedItemTargetResult\"3\n\x1aMutateFeedItemTargetResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xf9\x03\n\x15\x46\x65\x65\x64ItemTargetService\x12\xcd\x01\n\x11GetFeedItemTarget\x12:.google.ads.googleads.v5.services.GetFeedItemTargetRequest\x1a\x31.google.ads.googleads.v5.resources.FeedItemTarget\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/feedItemTargets/*}\xda\x41\rresource_name\x12\xf2\x01\n\x15MutateFeedItemTargets\x12>.google.ads.googleads.v5.services.MutateFeedItemTargetsRequest\x1a?.google.ads.googleads.v5.services.MutateFeedItemTargetsResponse\"X\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/feedItemTargets:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1a\x46\x65\x65\x64ItemTargetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETFEEDITEMTARGETREQUEST = _descriptor.Descriptor( + name='GetFeedItemTargetRequest', + full_name='google.ads.googleads.v5.services.GetFeedItemTargetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetFeedItemTargetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/FeedItemTarget', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=384, +) + + +_MUTATEFEEDITEMTARGETSREQUEST = _descriptor.Descriptor( + name='MutateFeedItemTargetsRequest', + full_name='google.ads.googleads.v5.services.MutateFeedItemTargetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateFeedItemTargetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateFeedItemTargetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=387, + serialized_end=527, +) + + +_FEEDITEMTARGETOPERATION = _descriptor.Descriptor( + name='FeedItemTargetOperation', + full_name='google.ads.googleads.v5.services.FeedItemTargetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.FeedItemTargetOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.FeedItemTargetOperation.remove', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.FeedItemTargetOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=529, + serialized_end=654, +) + + +_MUTATEFEEDITEMTARGETSRESPONSE = _descriptor.Descriptor( + name='MutateFeedItemTargetsResponse', + full_name='google.ads.googleads.v5.services.MutateFeedItemTargetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateFeedItemTargetsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=656, + serialized_end=766, +) + + +_MUTATEFEEDITEMTARGETRESULT = _descriptor.Descriptor( + name='MutateFeedItemTargetResult', + full_name='google.ads.googleads.v5.services.MutateFeedItemTargetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateFeedItemTargetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=768, + serialized_end=819, +) + +_MUTATEFEEDITEMTARGETSREQUEST.fields_by_name['operations'].message_type = _FEEDITEMTARGETOPERATION +_FEEDITEMTARGETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2._FEEDITEMTARGET +_FEEDITEMTARGETOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDITEMTARGETOPERATION.fields_by_name['create']) +_FEEDITEMTARGETOPERATION.fields_by_name['create'].containing_oneof = _FEEDITEMTARGETOPERATION.oneofs_by_name['operation'] +_FEEDITEMTARGETOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDITEMTARGETOPERATION.fields_by_name['remove']) +_FEEDITEMTARGETOPERATION.fields_by_name['remove'].containing_oneof = _FEEDITEMTARGETOPERATION.oneofs_by_name['operation'] +_MUTATEFEEDITEMTARGETSRESPONSE.fields_by_name['results'].message_type = _MUTATEFEEDITEMTARGETRESULT +DESCRIPTOR.message_types_by_name['GetFeedItemTargetRequest'] = _GETFEEDITEMTARGETREQUEST +DESCRIPTOR.message_types_by_name['MutateFeedItemTargetsRequest'] = _MUTATEFEEDITEMTARGETSREQUEST +DESCRIPTOR.message_types_by_name['FeedItemTargetOperation'] = _FEEDITEMTARGETOPERATION +DESCRIPTOR.message_types_by_name['MutateFeedItemTargetsResponse'] = _MUTATEFEEDITEMTARGETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateFeedItemTargetResult'] = _MUTATEFEEDITEMTARGETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetFeedItemTargetRequest = _reflection.GeneratedProtocolMessageType('GetFeedItemTargetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFEEDITEMTARGETREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_target_service_pb2' + , + '__doc__': """Request message for [FeedItemTargetService.GetFeedItemTarget][google.a + ds.googleads.v5.services.FeedItemTargetService.GetFeedItemTarget]. + + Attributes: + resource_name: + Required. The resource name of the feed item targets to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetFeedItemTargetRequest) + }) +_sym_db.RegisterMessage(GetFeedItemTargetRequest) + +MutateFeedItemTargetsRequest = _reflection.GeneratedProtocolMessageType('MutateFeedItemTargetsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMTARGETSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_target_service_pb2' + , + '__doc__': """Request message for [FeedItemTargetService.MutateFeedItemTargets][goog + le.ads.googleads.v5.services.FeedItemTargetService.MutateFeedItemTarge + ts]. + + Attributes: + customer_id: + Required. The ID of the customer whose feed item targets are + being modified. + operations: + Required. The list of operations to perform on individual feed + item targets. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemTargetsRequest) + }) +_sym_db.RegisterMessage(MutateFeedItemTargetsRequest) + +FeedItemTargetOperation = _reflection.GeneratedProtocolMessageType('FeedItemTargetOperation', (_message.Message,), { + 'DESCRIPTOR' : _FEEDITEMTARGETOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_target_service_pb2' + , + '__doc__': """A single operation (create, remove) on an feed item target. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + feed item target. + remove: + Remove operation: A resource name for the removed feed item + target is expected, in this format: ``customers/{customer_id} + /feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_ty + pe}~{feed_item_target_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.FeedItemTargetOperation) + }) +_sym_db.RegisterMessage(FeedItemTargetOperation) + +MutateFeedItemTargetsResponse = _reflection.GeneratedProtocolMessageType('MutateFeedItemTargetsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMTARGETSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_target_service_pb2' + , + '__doc__': """Response message for an feed item target mutate. + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemTargetsResponse) + }) +_sym_db.RegisterMessage(MutateFeedItemTargetsResponse) + +MutateFeedItemTargetResult = _reflection.GeneratedProtocolMessageType('MutateFeedItemTargetResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDITEMTARGETRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_item_target_service_pb2' + , + '__doc__': """The result for the feed item target mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedItemTargetResult) + }) +_sym_db.RegisterMessage(MutateFeedItemTargetResult) + + +DESCRIPTOR._options = None +_GETFEEDITEMTARGETREQUEST.fields_by_name['resource_name']._options = None +_MUTATEFEEDITEMTARGETSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEFEEDITEMTARGETSREQUEST.fields_by_name['operations']._options = None + +_FEEDITEMTARGETSERVICE = _descriptor.ServiceDescriptor( + name='FeedItemTargetService', + full_name='google.ads.googleads.v5.services.FeedItemTargetService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=822, + serialized_end=1327, + methods=[ + _descriptor.MethodDescriptor( + name='GetFeedItemTarget', + full_name='google.ads.googleads.v5.services.FeedItemTargetService.GetFeedItemTarget', + index=0, + containing_service=None, + input_type=_GETFEEDITEMTARGETREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2._FEEDITEMTARGET, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/feedItemTargets/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateFeedItemTargets', + full_name='google.ads.googleads.v5.services.FeedItemTargetService.MutateFeedItemTargets', + index=1, + containing_service=None, + input_type=_MUTATEFEEDITEMTARGETSREQUEST, + output_type=_MUTATEFEEDITEMTARGETSRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/feedItemTargets:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_FEEDITEMTARGETSERVICE) + +DESCRIPTOR.services_by_name['FeedItemTargetService'] = _FEEDITEMTARGETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2_grpc.py new file mode 100644 index 000000000..e1766a980 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_item_target_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import feed_item_target_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2 +from google.ads.google_ads.v5.proto.services import feed_item_target_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2 + + +class FeedItemTargetServiceStub(object): + """Proto file describing the FeedItemTarget service. + + Service to manage feed item targets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFeedItemTarget = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedItemTargetService/GetFeedItemTarget', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.GetFeedItemTargetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2.FeedItemTarget.FromString, + ) + self.MutateFeedItemTargets = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedItemTargetService/MutateFeedItemTargets', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsResponse.FromString, + ) + + +class FeedItemTargetServiceServicer(object): + """Proto file describing the FeedItemTarget service. + + Service to manage feed item targets. + """ + + def GetFeedItemTarget(self, request, context): + """Returns the requested feed item targets in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateFeedItemTargets(self, request, context): + """Creates or removes feed item targets. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeedItemTargetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFeedItemTarget': grpc.unary_unary_rpc_method_handler( + servicer.GetFeedItemTarget, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.GetFeedItemTargetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2.FeedItemTarget.SerializeToString, + ), + 'MutateFeedItemTargets': grpc.unary_unary_rpc_method_handler( + servicer.MutateFeedItemTargets, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.FeedItemTargetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeedItemTargetService(object): + """Proto file describing the FeedItemTarget service. + + Service to manage feed item targets. + """ + + @staticmethod + def GetFeedItemTarget(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedItemTargetService/GetFeedItemTarget', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.GetFeedItemTargetRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2.FeedItemTarget.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateFeedItemTargets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedItemTargetService/MutateFeedItemTargets', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.MutateFeedItemTargetsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2.py b/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2.py new file mode 100644 index 000000000..b13e3306b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/feed_mapping_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import feed_mapping_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/feed_mapping_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\027FeedMappingServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/services/feed_mapping_service.proto\x12 google.ads.googleads.v5.services\x1a:google/ads/googleads_v5/proto/resources/feed_mapping.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"\\\n\x15GetFeedMappingRequest\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$googleads.googleapis.com/FeedMapping\"\xb6\x01\n\x19MutateFeedMappingsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\noperations\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.FeedMappingOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"w\n\x14\x46\x65\x65\x64MappingOperation\x12@\n\x06\x63reate\x18\x01 \x01(\x0b\x32..google.ads.googleads.v5.resources.FeedMappingH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x9b\x01\n\x1aMutateFeedMappingsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12J\n\x07results\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.MutateFeedMappingResult\"0\n\x17MutateFeedMappingResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xde\x03\n\x12\x46\x65\x65\x64MappingService\x12\xc1\x01\n\x0eGetFeedMapping\x12\x37.google.ads.googleads.v5.services.GetFeedMappingRequest\x1a..google.ads.googleads.v5.resources.FeedMapping\"F\x82\xd3\xe4\x93\x02\x30\x12./v5/{resource_name=customers/*/feedMappings/*}\xda\x41\rresource_name\x12\xe6\x01\n\x12MutateFeedMappings\x12;.google.ads.googleads.v5.services.MutateFeedMappingsRequest\x1a<.google.ads.googleads.v5.services.MutateFeedMappingsResponse\"U\x82\xd3\xe4\x93\x02\x36\"1/v5/customers/{customer_id=*}/feedMappings:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfe\x01\n$com.google.ads.googleads.v5.servicesB\x17\x46\x65\x65\x64MappingServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETFEEDMAPPINGREQUEST = _descriptor.Descriptor( + name='GetFeedMappingRequest', + full_name='google.ads.googleads.v5.services.GetFeedMappingRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetFeedMappingRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A&\n$googleads.googleapis.com/FeedMapping', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=303, + serialized_end=395, +) + + +_MUTATEFEEDMAPPINGSREQUEST = _descriptor.Descriptor( + name='MutateFeedMappingsRequest', + full_name='google.ads.googleads.v5.services.MutateFeedMappingsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateFeedMappingsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateFeedMappingsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateFeedMappingsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateFeedMappingsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=398, + serialized_end=580, +) + + +_FEEDMAPPINGOPERATION = _descriptor.Descriptor( + name='FeedMappingOperation', + full_name='google.ads.googleads.v5.services.FeedMappingOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.FeedMappingOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.FeedMappingOperation.remove', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.FeedMappingOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=582, + serialized_end=701, +) + + +_MUTATEFEEDMAPPINGSRESPONSE = _descriptor.Descriptor( + name='MutateFeedMappingsResponse', + full_name='google.ads.googleads.v5.services.MutateFeedMappingsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateFeedMappingsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateFeedMappingsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=704, + serialized_end=859, +) + + +_MUTATEFEEDMAPPINGRESULT = _descriptor.Descriptor( + name='MutateFeedMappingResult', + full_name='google.ads.googleads.v5.services.MutateFeedMappingResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateFeedMappingResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=861, + serialized_end=909, +) + +_MUTATEFEEDMAPPINGSREQUEST.fields_by_name['operations'].message_type = _FEEDMAPPINGOPERATION +_FEEDMAPPINGOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2._FEEDMAPPING +_FEEDMAPPINGOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDMAPPINGOPERATION.fields_by_name['create']) +_FEEDMAPPINGOPERATION.fields_by_name['create'].containing_oneof = _FEEDMAPPINGOPERATION.oneofs_by_name['operation'] +_FEEDMAPPINGOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDMAPPINGOPERATION.fields_by_name['remove']) +_FEEDMAPPINGOPERATION.fields_by_name['remove'].containing_oneof = _FEEDMAPPINGOPERATION.oneofs_by_name['operation'] +_MUTATEFEEDMAPPINGSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEFEEDMAPPINGSRESPONSE.fields_by_name['results'].message_type = _MUTATEFEEDMAPPINGRESULT +DESCRIPTOR.message_types_by_name['GetFeedMappingRequest'] = _GETFEEDMAPPINGREQUEST +DESCRIPTOR.message_types_by_name['MutateFeedMappingsRequest'] = _MUTATEFEEDMAPPINGSREQUEST +DESCRIPTOR.message_types_by_name['FeedMappingOperation'] = _FEEDMAPPINGOPERATION +DESCRIPTOR.message_types_by_name['MutateFeedMappingsResponse'] = _MUTATEFEEDMAPPINGSRESPONSE +DESCRIPTOR.message_types_by_name['MutateFeedMappingResult'] = _MUTATEFEEDMAPPINGRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetFeedMappingRequest = _reflection.GeneratedProtocolMessageType('GetFeedMappingRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFEEDMAPPINGREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_mapping_service_pb2' + , + '__doc__': """Request message for [FeedMappingService.GetFeedMapping][google.ads.goo + gleads.v5.services.FeedMappingService.GetFeedMapping]. + + Attributes: + resource_name: + Required. The resource name of the feed mapping to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetFeedMappingRequest) + }) +_sym_db.RegisterMessage(GetFeedMappingRequest) + +MutateFeedMappingsRequest = _reflection.GeneratedProtocolMessageType('MutateFeedMappingsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDMAPPINGSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_mapping_service_pb2' + , + '__doc__': """Request message for [FeedMappingService.MutateFeedMappings][google.ads + .googleads.v5.services.FeedMappingService.MutateFeedMappings]. + + Attributes: + customer_id: + Required. The ID of the customer whose feed mappings are being + modified. + operations: + Required. The list of operations to perform on individual feed + mappings. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedMappingsRequest) + }) +_sym_db.RegisterMessage(MutateFeedMappingsRequest) + +FeedMappingOperation = _reflection.GeneratedProtocolMessageType('FeedMappingOperation', (_message.Message,), { + 'DESCRIPTOR' : _FEEDMAPPINGOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_mapping_service_pb2' + , + '__doc__': """A single operation (create, remove) on a feed mapping. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + feed mapping. + remove: + Remove operation: A resource name for the removed feed mapping + is expected, in this format: ``customers/{customer_id}/feedMa + ppings/{feed_id}~{feed_mapping_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.FeedMappingOperation) + }) +_sym_db.RegisterMessage(FeedMappingOperation) + +MutateFeedMappingsResponse = _reflection.GeneratedProtocolMessageType('MutateFeedMappingsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDMAPPINGSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_mapping_service_pb2' + , + '__doc__': """Response message for a feed mapping mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedMappingsResponse) + }) +_sym_db.RegisterMessage(MutateFeedMappingsResponse) + +MutateFeedMappingResult = _reflection.GeneratedProtocolMessageType('MutateFeedMappingResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDMAPPINGRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_mapping_service_pb2' + , + '__doc__': """The result for the feed mapping mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedMappingResult) + }) +_sym_db.RegisterMessage(MutateFeedMappingResult) + + +DESCRIPTOR._options = None +_GETFEEDMAPPINGREQUEST.fields_by_name['resource_name']._options = None +_MUTATEFEEDMAPPINGSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEFEEDMAPPINGSREQUEST.fields_by_name['operations']._options = None + +_FEEDMAPPINGSERVICE = _descriptor.ServiceDescriptor( + name='FeedMappingService', + full_name='google.ads.googleads.v5.services.FeedMappingService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=912, + serialized_end=1390, + methods=[ + _descriptor.MethodDescriptor( + name='GetFeedMapping', + full_name='google.ads.googleads.v5.services.FeedMappingService.GetFeedMapping', + index=0, + containing_service=None, + input_type=_GETFEEDMAPPINGREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2._FEEDMAPPING, + serialized_options=b'\202\323\344\223\0020\022./v5/{resource_name=customers/*/feedMappings/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateFeedMappings', + full_name='google.ads.googleads.v5.services.FeedMappingService.MutateFeedMappings', + index=1, + containing_service=None, + input_type=_MUTATEFEEDMAPPINGSREQUEST, + output_type=_MUTATEFEEDMAPPINGSRESPONSE, + serialized_options=b'\202\323\344\223\0026\"1/v5/customers/{customer_id=*}/feedMappings:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_FEEDMAPPINGSERVICE) + +DESCRIPTOR.services_by_name['FeedMappingService'] = _FEEDMAPPINGSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2_grpc.py new file mode 100644 index 000000000..624e744f2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_mapping_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import feed_mapping_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2 +from google.ads.google_ads.v5.proto.services import feed_mapping_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2 + + +class FeedMappingServiceStub(object): + """Proto file describing the FeedMapping service. + + Service to manage feed mappings. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFeedMapping = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedMappingService/GetFeedMapping', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.GetFeedMappingRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2.FeedMapping.FromString, + ) + self.MutateFeedMappings = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedMappingService/MutateFeedMappings', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsResponse.FromString, + ) + + +class FeedMappingServiceServicer(object): + """Proto file describing the FeedMapping service. + + Service to manage feed mappings. + """ + + def GetFeedMapping(self, request, context): + """Returns the requested feed mapping in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateFeedMappings(self, request, context): + """Creates or removes feed mappings. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeedMappingServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFeedMapping': grpc.unary_unary_rpc_method_handler( + servicer.GetFeedMapping, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.GetFeedMappingRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2.FeedMapping.SerializeToString, + ), + 'MutateFeedMappings': grpc.unary_unary_rpc_method_handler( + servicer.MutateFeedMappings, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.FeedMappingService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeedMappingService(object): + """Proto file describing the FeedMapping service. + + Service to manage feed mappings. + """ + + @staticmethod + def GetFeedMapping(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedMappingService/GetFeedMapping', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.GetFeedMappingRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2.FeedMapping.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateFeedMappings(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedMappingService/MutateFeedMappings', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.MutateFeedMappingsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2.py new file mode 100644 index 000000000..ec964b596 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/feed_placeholder_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import feed_placeholder_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/feed_placeholder_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037FeedPlaceholderViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/feed_placeholder_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x43google/ads/googleads_v5/proto/resources/feed_placeholder_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"l\n\x1dGetFeedPlaceholderViewRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/FeedPlaceholderView2\x9d\x02\n\x1a\x46\x65\x65\x64PlaceholderViewService\x12\xe1\x01\n\x16GetFeedPlaceholderView\x12?.google.ads.googleads.v5.services.GetFeedPlaceholderViewRequest\x1a\x36.google.ads.googleads.v5.resources.FeedPlaceholderView\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/feedPlaceholderViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1f\x46\x65\x65\x64PlaceholderViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETFEEDPLACEHOLDERVIEWREQUEST = _descriptor.Descriptor( + name='GetFeedPlaceholderViewRequest', + full_name='google.ads.googleads.v5.services.GetFeedPlaceholderViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetFeedPlaceholderViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/FeedPlaceholderView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=296, + serialized_end=404, +) + +DESCRIPTOR.message_types_by_name['GetFeedPlaceholderViewRequest'] = _GETFEEDPLACEHOLDERVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetFeedPlaceholderViewRequest = _reflection.GeneratedProtocolMessageType('GetFeedPlaceholderViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFEEDPLACEHOLDERVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_placeholder_view_service_pb2' + , + '__doc__': """Request message for [FeedPlaceholderViewService.GetFeedPlaceholderView + ][google.ads.googleads.v5.services.FeedPlaceholderViewService.GetFeedP + laceholderView]. + + Attributes: + resource_name: + Required. The resource name of the feed placeholder view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetFeedPlaceholderViewRequest) + }) +_sym_db.RegisterMessage(GetFeedPlaceholderViewRequest) + + +DESCRIPTOR._options = None +_GETFEEDPLACEHOLDERVIEWREQUEST.fields_by_name['resource_name']._options = None + +_FEEDPLACEHOLDERVIEWSERVICE = _descriptor.ServiceDescriptor( + name='FeedPlaceholderViewService', + full_name='google.ads.googleads.v5.services.FeedPlaceholderViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=407, + serialized_end=692, + methods=[ + _descriptor.MethodDescriptor( + name='GetFeedPlaceholderView', + full_name='google.ads.googleads.v5.services.FeedPlaceholderViewService.GetFeedPlaceholderView', + index=0, + containing_service=None, + input_type=_GETFEEDPLACEHOLDERVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2._FEEDPLACEHOLDERVIEW, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/feedPlaceholderViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_FEEDPLACEHOLDERVIEWSERVICE) + +DESCRIPTOR.services_by_name['FeedPlaceholderViewService'] = _FEEDPLACEHOLDERVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2_grpc.py new file mode 100644 index 000000000..368f467ca --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_placeholder_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import feed_placeholder_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2 +from google.ads.google_ads.v5.proto.services import feed_placeholder_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__placeholder__view__service__pb2 + + +class FeedPlaceholderViewServiceStub(object): + """Proto file describing the FeedPlaceholderView service. + + Service to fetch feed placeholder views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFeedPlaceholderView = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedPlaceholderViewService/GetFeedPlaceholderView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__placeholder__view__service__pb2.GetFeedPlaceholderViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2.FeedPlaceholderView.FromString, + ) + + +class FeedPlaceholderViewServiceServicer(object): + """Proto file describing the FeedPlaceholderView service. + + Service to fetch feed placeholder views. + """ + + def GetFeedPlaceholderView(self, request, context): + """Returns the requested feed placeholder view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeedPlaceholderViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFeedPlaceholderView': grpc.unary_unary_rpc_method_handler( + servicer.GetFeedPlaceholderView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__placeholder__view__service__pb2.GetFeedPlaceholderViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2.FeedPlaceholderView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.FeedPlaceholderViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeedPlaceholderViewService(object): + """Proto file describing the FeedPlaceholderView service. + + Service to fetch feed placeholder views. + """ + + @staticmethod + def GetFeedPlaceholderView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedPlaceholderViewService/GetFeedPlaceholderView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__placeholder__view__service__pb2.GetFeedPlaceholderViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2.FeedPlaceholderView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/feed_service_pb2.py b/google/ads/google_ads/v5/proto/services/feed_service_pb2.py new file mode 100644 index 000000000..36e983090 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/feed_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/feed_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\020FeedServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n9google/ads/googleads_v5/proto/services/feed_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x32google/ads/googleads_v5/proto/resources/feed.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"N\n\x0eGetFeedRequest\x12<\n\rresource_name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dgoogleads.googleapis.com/Feed\"\x93\x02\n\x12MutateFeedsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\noperations\x18\x02 \x03(\x0b\x32/.google.ads.googleads.v5.services.FeedOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xd5\x01\n\rFeedOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x39\n\x06\x63reate\x18\x01 \x01(\x0b\x32\'.google.ads.googleads.v5.resources.FeedH\x00\x12\x39\n\x06update\x18\x02 \x01(\x0b\x32\'.google.ads.googleads.v5.resources.FeedH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x8d\x01\n\x13MutateFeedsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12\x43\n\x07results\x18\x02 \x03(\x0b\x32\x32.google.ads.googleads.v5.services.MutateFeedResult\"`\n\x10MutateFeedResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x35\n\x04\x66\x65\x65\x64\x18\x02 \x01(\x0b\x32\'.google.ads.googleads.v5.resources.Feed2\x9f\x03\n\x0b\x46\x65\x65\x64Service\x12\xa5\x01\n\x07GetFeed\x12\x30.google.ads.googleads.v5.services.GetFeedRequest\x1a\'.google.ads.googleads.v5.resources.Feed\"?\x82\xd3\xe4\x93\x02)\x12\'/v5/{resource_name=customers/*/feeds/*}\xda\x41\rresource_name\x12\xca\x01\n\x0bMutateFeeds\x12\x34.google.ads.googleads.v5.services.MutateFeedsRequest\x1a\x35.google.ads.googleads.v5.services.MutateFeedsResponse\"N\x82\xd3\xe4\x93\x02/\"*/v5/customers/{customer_id=*}/feeds:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xf7\x01\n$com.google.ads.googleads.v5.servicesB\x10\x46\x65\x65\x64ServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETFEEDREQUEST = _descriptor.Descriptor( + name='GetFeedRequest', + full_name='google.ads.googleads.v5.services.GetFeedRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetFeedRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\037\n\035googleads.googleapis.com/Feed', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=386, + serialized_end=464, +) + + +_MUTATEFEEDSREQUEST = _descriptor.Descriptor( + name='MutateFeedsRequest', + full_name='google.ads.googleads.v5.services.MutateFeedsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateFeedsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateFeedsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateFeedsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateFeedsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateFeedsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=467, + serialized_end=742, +) + + +_FEEDOPERATION = _descriptor.Descriptor( + name='FeedOperation', + full_name='google.ads.googleads.v5.services.FeedOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.FeedOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.FeedOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.FeedOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.FeedOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.FeedOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=745, + serialized_end=958, +) + + +_MUTATEFEEDSRESPONSE = _descriptor.Descriptor( + name='MutateFeedsResponse', + full_name='google.ads.googleads.v5.services.MutateFeedsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateFeedsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateFeedsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=961, + serialized_end=1102, +) + + +_MUTATEFEEDRESULT = _descriptor.Descriptor( + name='MutateFeedResult', + full_name='google.ads.googleads.v5.services.MutateFeedResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateFeedResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.services.MutateFeedResult.feed', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1104, + serialized_end=1200, +) + +_MUTATEFEEDSREQUEST.fields_by_name['operations'].message_type = _FEEDOPERATION +_MUTATEFEEDSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_FEEDOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_FEEDOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2._FEED +_FEEDOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2._FEED +_FEEDOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDOPERATION.fields_by_name['create']) +_FEEDOPERATION.fields_by_name['create'].containing_oneof = _FEEDOPERATION.oneofs_by_name['operation'] +_FEEDOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDOPERATION.fields_by_name['update']) +_FEEDOPERATION.fields_by_name['update'].containing_oneof = _FEEDOPERATION.oneofs_by_name['operation'] +_FEEDOPERATION.oneofs_by_name['operation'].fields.append( + _FEEDOPERATION.fields_by_name['remove']) +_FEEDOPERATION.fields_by_name['remove'].containing_oneof = _FEEDOPERATION.oneofs_by_name['operation'] +_MUTATEFEEDSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEFEEDSRESPONSE.fields_by_name['results'].message_type = _MUTATEFEEDRESULT +_MUTATEFEEDRESULT.fields_by_name['feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2._FEED +DESCRIPTOR.message_types_by_name['GetFeedRequest'] = _GETFEEDREQUEST +DESCRIPTOR.message_types_by_name['MutateFeedsRequest'] = _MUTATEFEEDSREQUEST +DESCRIPTOR.message_types_by_name['FeedOperation'] = _FEEDOPERATION +DESCRIPTOR.message_types_by_name['MutateFeedsResponse'] = _MUTATEFEEDSRESPONSE +DESCRIPTOR.message_types_by_name['MutateFeedResult'] = _MUTATEFEEDRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetFeedRequest = _reflection.GeneratedProtocolMessageType('GetFeedRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFEEDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_service_pb2' + , + '__doc__': """Request message for [FeedService.GetFeed][google.ads.googleads.v5.serv + ices.FeedService.GetFeed]. + + Attributes: + resource_name: + Required. The resource name of the feed to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetFeedRequest) + }) +_sym_db.RegisterMessage(GetFeedRequest) + +MutateFeedsRequest = _reflection.GeneratedProtocolMessageType('MutateFeedsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_service_pb2' + , + '__doc__': """Request message for [FeedService.MutateFeeds][google.ads.googleads.v5. + services.FeedService.MutateFeeds]. + + Attributes: + customer_id: + Required. The ID of the customer whose feeds are being + modified. + operations: + Required. The list of operations to perform on individual + feeds. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedsRequest) + }) +_sym_db.RegisterMessage(MutateFeedsRequest) + +FeedOperation = _reflection.GeneratedProtocolMessageType('FeedOperation', (_message.Message,), { + 'DESCRIPTOR' : _FEEDOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an feed. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + feed. + update: + Update operation: The feed is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed feed is + expected, in this format: + ``customers/{customer_id}/feeds/{feed_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.FeedOperation) + }) +_sym_db.RegisterMessage(FeedOperation) + +MutateFeedsResponse = _reflection.GeneratedProtocolMessageType('MutateFeedsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_service_pb2' + , + '__doc__': """Response message for an feed mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedsResponse) + }) +_sym_db.RegisterMessage(MutateFeedsResponse) + +MutateFeedResult = _reflection.GeneratedProtocolMessageType('MutateFeedResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEFEEDRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.feed_service_pb2' + , + '__doc__': """The result for the feed mutate. + + Attributes: + resource_name: + Returned for successful operations. + feed: + The mutated feed with only mutable fields after mutate. The + field will only be returned when response\_content\_type is + set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateFeedResult) + }) +_sym_db.RegisterMessage(MutateFeedResult) + + +DESCRIPTOR._options = None +_GETFEEDREQUEST.fields_by_name['resource_name']._options = None +_MUTATEFEEDSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEFEEDSREQUEST.fields_by_name['operations']._options = None + +_FEEDSERVICE = _descriptor.ServiceDescriptor( + name='FeedService', + full_name='google.ads.googleads.v5.services.FeedService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1203, + serialized_end=1618, + methods=[ + _descriptor.MethodDescriptor( + name='GetFeed', + full_name='google.ads.googleads.v5.services.FeedService.GetFeed', + index=0, + containing_service=None, + input_type=_GETFEEDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2._FEED, + serialized_options=b'\202\323\344\223\002)\022\'/v5/{resource_name=customers/*/feeds/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateFeeds', + full_name='google.ads.googleads.v5.services.FeedService.MutateFeeds', + index=1, + containing_service=None, + input_type=_MUTATEFEEDSREQUEST, + output_type=_MUTATEFEEDSRESPONSE, + serialized_options=b'\202\323\344\223\002/\"*/v5/customers/{customer_id=*}/feeds:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_FEEDSERVICE) + +DESCRIPTOR.services_by_name['FeedService'] = _FEEDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/feed_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/feed_service_pb2_grpc.py new file mode 100644 index 000000000..036709b77 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/feed_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2 +from google.ads.google_ads.v5.proto.services import feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2 + + +class FeedServiceStub(object): + """Proto file describing the Feed service. + + Service to manage feeds. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetFeed = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedService/GetFeed', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.GetFeedRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2.Feed.FromString, + ) + self.MutateFeeds = channel.unary_unary( + '/google.ads.googleads.v5.services.FeedService/MutateFeeds', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsResponse.FromString, + ) + + +class FeedServiceServicer(object): + """Proto file describing the Feed service. + + Service to manage feeds. + """ + + def GetFeed(self, request, context): + """Returns the requested feed in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateFeeds(self, request, context): + """Creates, updates, or removes feeds. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_FeedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetFeed': grpc.unary_unary_rpc_method_handler( + servicer.GetFeed, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.GetFeedRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2.Feed.SerializeToString, + ), + 'MutateFeeds': grpc.unary_unary_rpc_method_handler( + servicer.MutateFeeds, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.FeedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class FeedService(object): + """Proto file describing the Feed service. + + Service to manage feeds. + """ + + @staticmethod + def GetFeed(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedService/GetFeed', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.GetFeedRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2.Feed.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateFeeds(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.FeedService/MutateFeeds', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.MutateFeedsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/gender_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/gender_view_service_pb2.py new file mode 100644 index 000000000..f65c280bf --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/gender_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/gender_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import gender_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/gender_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\026GenderViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n@google/ads/googleads_v5/proto/services/gender_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x39google/ads/googleads_v5/proto/resources/gender_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"Z\n\x14GetGenderViewRequest\x12\x42\n\rresource_name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#googleads.googleapis.com/GenderView2\xf0\x01\n\x11GenderViewService\x12\xbd\x01\n\rGetGenderView\x12\x36.google.ads.googleads.v5.services.GetGenderViewRequest\x1a-.google.ads.googleads.v5.resources.GenderView\"E\x82\xd3\xe4\x93\x02/\x12-/v5/{resource_name=customers/*/genderViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfd\x01\n$com.google.ads.googleads.v5.servicesB\x16GenderViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETGENDERVIEWREQUEST = _descriptor.Descriptor( + name='GetGenderViewRequest', + full_name='google.ads.googleads.v5.services.GetGenderViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetGenderViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A%\n#googleads.googleapis.com/GenderView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=276, + serialized_end=366, +) + +DESCRIPTOR.message_types_by_name['GetGenderViewRequest'] = _GETGENDERVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGenderViewRequest = _reflection.GeneratedProtocolMessageType('GetGenderViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETGENDERVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.gender_view_service_pb2' + , + '__doc__': """Request message for [GenderViewService.GetGenderView][google.ads.googl + eads.v5.services.GenderViewService.GetGenderView]. + + Attributes: + resource_name: + Required. The resource name of the gender view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetGenderViewRequest) + }) +_sym_db.RegisterMessage(GetGenderViewRequest) + + +DESCRIPTOR._options = None +_GETGENDERVIEWREQUEST.fields_by_name['resource_name']._options = None + +_GENDERVIEWSERVICE = _descriptor.ServiceDescriptor( + name='GenderViewService', + full_name='google.ads.googleads.v5.services.GenderViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=369, + serialized_end=609, + methods=[ + _descriptor.MethodDescriptor( + name='GetGenderView', + full_name='google.ads.googleads.v5.services.GenderViewService.GetGenderView', + index=0, + containing_service=None, + input_type=_GETGENDERVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2._GENDERVIEW, + serialized_options=b'\202\323\344\223\002/\022-/v5/{resource_name=customers/*/genderViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GENDERVIEWSERVICE) + +DESCRIPTOR.services_by_name['GenderViewService'] = _GENDERVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/gender_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/gender_view_service_pb2_grpc.py new file mode 100644 index 000000000..2ed17b097 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/gender_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import gender_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2 +from google.ads.google_ads.v5.proto.services import gender_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_gender__view__service__pb2 + + +class GenderViewServiceStub(object): + """Proto file describing the Gender View service. + + Service to manage gender views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGenderView = channel.unary_unary( + '/google.ads.googleads.v5.services.GenderViewService/GetGenderView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_gender__view__service__pb2.GetGenderViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2.GenderView.FromString, + ) + + +class GenderViewServiceServicer(object): + """Proto file describing the Gender View service. + + Service to manage gender views. + """ + + def GetGenderView(self, request, context): + """Returns the requested gender view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GenderViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGenderView': grpc.unary_unary_rpc_method_handler( + servicer.GetGenderView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_gender__view__service__pb2.GetGenderViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2.GenderView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GenderViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GenderViewService(object): + """Proto file describing the Gender View service. + + Service to manage gender views. + """ + + @staticmethod + def GetGenderView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GenderViewService/GetGenderView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_gender__view__service__pb2.GetGenderViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2.GenderView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2.py new file mode 100644 index 000000000..ab06267de --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2.py @@ -0,0 +1,492 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/geo_target_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/geo_target_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\035GeoTargetConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nHgoogle/ads/googleads_v5/proto/services/geo_target_constant_service.proto\x12 google.ads.googleads.v5.services\x1a\x41google/ads/googleads_v5/proto/resources/geo_target_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"h\n\x1bGetGeoTargetConstantRequest\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*googleads.googleapis.com/GeoTargetConstant\"\x95\x03\n SuggestGeoTargetConstantsRequest\x12\x13\n\x06locale\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x63ountry_code\x18\x07 \x01(\tH\x02\x88\x01\x01\x12j\n\x0elocation_names\x18\x01 \x01(\x0b\x32P.google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.LocationNamesH\x00\x12\x64\n\x0bgeo_targets\x18\x02 \x01(\x0b\x32M.google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.GeoTargetsH\x00\x1a\x1e\n\rLocationNames\x12\r\n\x05names\x18\x02 \x03(\t\x1a*\n\nGeoTargets\x12\x1c\n\x14geo_target_constants\x18\x02 \x03(\tB\x07\n\x05queryB\t\n\x07_localeB\x0f\n\r_country_code\"\x8b\x01\n!SuggestGeoTargetConstantsResponse\x12\x66\n\x1fgeo_target_constant_suggestions\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v5.services.GeoTargetConstantSuggestion\"\xb3\x02\n\x1bGeoTargetConstantSuggestion\x12\x13\n\x06locale\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05reach\x18\x07 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bsearch_term\x18\x08 \x01(\tH\x02\x88\x01\x01\x12Q\n\x13geo_target_constant\x18\x04 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.GeoTargetConstant\x12Y\n\x1bgeo_target_constant_parents\x18\x05 \x03(\x0b\x32\x34.google.ads.googleads.v5.resources.GeoTargetConstantB\t\n\x07_localeB\x08\n\x06_reachB\x0e\n\x0c_search_term2\xd9\x03\n\x18GeoTargetConstantService\x12\xcd\x01\n\x14GetGeoTargetConstant\x12=.google.ads.googleads.v5.services.GetGeoTargetConstantRequest\x1a\x34.google.ads.googleads.v5.resources.GeoTargetConstant\"@\x82\xd3\xe4\x93\x02*\x12(/v5/{resource_name=geoTargetConstants/*}\xda\x41\rresource_name\x12\xcf\x01\n\x19SuggestGeoTargetConstants\x12\x42.google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest\x1a\x43.google.ads.googleads.v5.services.SuggestGeoTargetConstantsResponse\")\x82\xd3\xe4\x93\x02#\"\x1e/v5/geoTargetConstants:suggest:\x01*\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x84\x02\n$com.google.ads.googleads.v5.servicesB\x1dGeoTargetConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETGEOTARGETCONSTANTREQUEST = _descriptor.Descriptor( + name='GetGeoTargetConstantRequest', + full_name='google.ads.googleads.v5.services.GetGeoTargetConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetGeoTargetConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A,\n*googleads.googleapis.com/GeoTargetConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=292, + serialized_end=396, +) + + +_SUGGESTGEOTARGETCONSTANTSREQUEST_LOCATIONNAMES = _descriptor.Descriptor( + name='LocationNames', + full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.LocationNames', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='names', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.LocationNames.names', index=0, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=693, + serialized_end=723, +) + +_SUGGESTGEOTARGETCONSTANTSREQUEST_GEOTARGETS = _descriptor.Descriptor( + name='GeoTargets', + full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.GeoTargets', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='geo_target_constants', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.GeoTargets.geo_target_constants', index=0, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=725, + serialized_end=767, +) + +_SUGGESTGEOTARGETCONSTANTSREQUEST = _descriptor.Descriptor( + name='SuggestGeoTargetConstantsRequest', + full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='locale', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.locale', index=0, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.country_code', index=1, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_names', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.location_names', index=2, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_targets', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.geo_targets', index=3, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_SUGGESTGEOTARGETCONSTANTSREQUEST_LOCATIONNAMES, _SUGGESTGEOTARGETCONSTANTSREQUEST_GEOTARGETS, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='query', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.query', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_locale', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest._locale', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_country_code', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest._country_code', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=399, + serialized_end=804, +) + + +_SUGGESTGEOTARGETCONSTANTSRESPONSE = _descriptor.Descriptor( + name='SuggestGeoTargetConstantsResponse', + full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='geo_target_constant_suggestions', full_name='google.ads.googleads.v5.services.SuggestGeoTargetConstantsResponse.geo_target_constant_suggestions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=807, + serialized_end=946, +) + + +_GEOTARGETCONSTANTSUGGESTION = _descriptor.Descriptor( + name='GeoTargetConstantSuggestion', + full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='locale', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion.locale', index=0, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reach', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion.reach', index=1, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_term', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion.search_term', index=2, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion.geo_target_constant', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constant_parents', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion.geo_target_constant_parents', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_locale', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion._locale', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_reach', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion._reach', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_search_term', full_name='google.ads.googleads.v5.services.GeoTargetConstantSuggestion._search_term', + index=2, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=949, + serialized_end=1256, +) + +_SUGGESTGEOTARGETCONSTANTSREQUEST_LOCATIONNAMES.containing_type = _SUGGESTGEOTARGETCONSTANTSREQUEST +_SUGGESTGEOTARGETCONSTANTSREQUEST_GEOTARGETS.containing_type = _SUGGESTGEOTARGETCONSTANTSREQUEST +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['location_names'].message_type = _SUGGESTGEOTARGETCONSTANTSREQUEST_LOCATIONNAMES +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['geo_targets'].message_type = _SUGGESTGEOTARGETCONSTANTSREQUEST_GEOTARGETS +_SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['query'].fields.append( + _SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['location_names']) +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['location_names'].containing_oneof = _SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['query'] +_SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['query'].fields.append( + _SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['geo_targets']) +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['geo_targets'].containing_oneof = _SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['query'] +_SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['_locale'].fields.append( + _SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['locale']) +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['locale'].containing_oneof = _SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['_locale'] +_SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['_country_code'].fields.append( + _SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['country_code']) +_SUGGESTGEOTARGETCONSTANTSREQUEST.fields_by_name['country_code'].containing_oneof = _SUGGESTGEOTARGETCONSTANTSREQUEST.oneofs_by_name['_country_code'] +_SUGGESTGEOTARGETCONSTANTSRESPONSE.fields_by_name['geo_target_constant_suggestions'].message_type = _GEOTARGETCONSTANTSUGGESTION +_GEOTARGETCONSTANTSUGGESTION.fields_by_name['geo_target_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT +_GEOTARGETCONSTANTSUGGESTION.fields_by_name['geo_target_constant_parents'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT +_GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_locale'].fields.append( + _GEOTARGETCONSTANTSUGGESTION.fields_by_name['locale']) +_GEOTARGETCONSTANTSUGGESTION.fields_by_name['locale'].containing_oneof = _GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_locale'] +_GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_reach'].fields.append( + _GEOTARGETCONSTANTSUGGESTION.fields_by_name['reach']) +_GEOTARGETCONSTANTSUGGESTION.fields_by_name['reach'].containing_oneof = _GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_reach'] +_GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_search_term'].fields.append( + _GEOTARGETCONSTANTSUGGESTION.fields_by_name['search_term']) +_GEOTARGETCONSTANTSUGGESTION.fields_by_name['search_term'].containing_oneof = _GEOTARGETCONSTANTSUGGESTION.oneofs_by_name['_search_term'] +DESCRIPTOR.message_types_by_name['GetGeoTargetConstantRequest'] = _GETGEOTARGETCONSTANTREQUEST +DESCRIPTOR.message_types_by_name['SuggestGeoTargetConstantsRequest'] = _SUGGESTGEOTARGETCONSTANTSREQUEST +DESCRIPTOR.message_types_by_name['SuggestGeoTargetConstantsResponse'] = _SUGGESTGEOTARGETCONSTANTSRESPONSE +DESCRIPTOR.message_types_by_name['GeoTargetConstantSuggestion'] = _GEOTARGETCONSTANTSUGGESTION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGeoTargetConstantRequest = _reflection.GeneratedProtocolMessageType('GetGeoTargetConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETGEOTARGETCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """Request message for [GeoTargetConstantService.GetGeoTargetConstant][go + ogle.ads.googleads.v5.services.GeoTargetConstantService.GetGeoTargetCo + nstant]. + + Attributes: + resource_name: + Required. The resource name of the geo target constant to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetGeoTargetConstantRequest) + }) +_sym_db.RegisterMessage(GetGeoTargetConstantRequest) + +SuggestGeoTargetConstantsRequest = _reflection.GeneratedProtocolMessageType('SuggestGeoTargetConstantsRequest', (_message.Message,), { + + 'LocationNames' : _reflection.GeneratedProtocolMessageType('LocationNames', (_message.Message,), { + 'DESCRIPTOR' : _SUGGESTGEOTARGETCONSTANTSREQUEST_LOCATIONNAMES, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """A list of location names. + + Attributes: + names: + A list of location names. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.LocationNames) + }) + , + + 'GeoTargets' : _reflection.GeneratedProtocolMessageType('GeoTargets', (_message.Message,), { + 'DESCRIPTOR' : _SUGGESTGEOTARGETCONSTANTSREQUEST_GEOTARGETS, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """A list of geo target constant resource names. + + Attributes: + geo_target_constants: + A list of geo target constant resource names. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest.GeoTargets) + }) + , + 'DESCRIPTOR' : _SUGGESTGEOTARGETCONSTANTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """Request message for [GeoTargetConstantService.SuggestGeoTargetConstant + s][google.ads.googleads.v5.services.GeoTargetConstantService.SuggestGe + oTargetConstants]. + + Attributes: + locale: + If possible, returned geo targets are translated using this + locale. If not, en is used by default. This is also used as a + hint for returned geo targets. + country_code: + Returned geo targets are restricted to this country code. + query: + Required. A selector of geo target constants. + location_names: + The location names to search by. At most 25 names can be set. + geo_targets: + The geo target constant resource names to filter by. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SuggestGeoTargetConstantsRequest) + }) +_sym_db.RegisterMessage(SuggestGeoTargetConstantsRequest) +_sym_db.RegisterMessage(SuggestGeoTargetConstantsRequest.LocationNames) +_sym_db.RegisterMessage(SuggestGeoTargetConstantsRequest.GeoTargets) + +SuggestGeoTargetConstantsResponse = _reflection.GeneratedProtocolMessageType('SuggestGeoTargetConstantsResponse', (_message.Message,), { + 'DESCRIPTOR' : _SUGGESTGEOTARGETCONSTANTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """Response message for [GeoTargetConstantService.SuggestGeoTargetConstan + ts][google.ads.googleads.v5.services.GeoTargetConstantService.SuggestG + eoTargetConstants]. + + Attributes: + geo_target_constant_suggestions: + Geo target constant suggestions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SuggestGeoTargetConstantsResponse) + }) +_sym_db.RegisterMessage(SuggestGeoTargetConstantsResponse) + +GeoTargetConstantSuggestion = _reflection.GeneratedProtocolMessageType('GeoTargetConstantSuggestion', (_message.Message,), { + 'DESCRIPTOR' : _GEOTARGETCONSTANTSUGGESTION, + '__module__' : 'google.ads.googleads_v5.proto.services.geo_target_constant_service_pb2' + , + '__doc__': """A geo target constant suggestion. + + Attributes: + locale: + The language this GeoTargetConstantSuggestion is currently + translated to. It affects the name of geo target fields. For + example, if locale=en, then name=Spain. If locale=es, then + name=España. The default locale will be returned if no + translation exists for the locale in the request. + reach: + Approximate user population that will be targeted, rounded to + the nearest 100. + search_term: + If the request searched by location name, this is the location + name that matched the geo target. + geo_target_constant: + The GeoTargetConstant result. + geo_target_constant_parents: + The list of parents of the geo target constant. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GeoTargetConstantSuggestion) + }) +_sym_db.RegisterMessage(GeoTargetConstantSuggestion) + + +DESCRIPTOR._options = None +_GETGEOTARGETCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_GEOTARGETCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='GeoTargetConstantService', + full_name='google.ads.googleads.v5.services.GeoTargetConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1259, + serialized_end=1732, + methods=[ + _descriptor.MethodDescriptor( + name='GetGeoTargetConstant', + full_name='google.ads.googleads.v5.services.GeoTargetConstantService.GetGeoTargetConstant', + index=0, + containing_service=None, + input_type=_GETGEOTARGETCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT, + serialized_options=b'\202\323\344\223\002*\022(/v5/{resource_name=geoTargetConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='SuggestGeoTargetConstants', + full_name='google.ads.googleads.v5.services.GeoTargetConstantService.SuggestGeoTargetConstants', + index=1, + containing_service=None, + input_type=_SUGGESTGEOTARGETCONSTANTSREQUEST, + output_type=_SUGGESTGEOTARGETCONSTANTSRESPONSE, + serialized_options=b'\202\323\344\223\002#\"\036/v5/geoTargetConstants:suggest:\001*', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GEOTARGETCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['GeoTargetConstantService'] = _GEOTARGETCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2_grpc.py new file mode 100644 index 000000000..44e71430c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/geo_target_constant_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.ads.google_ads.v5.proto.services import geo_target_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2 + + +class GeoTargetConstantServiceStub(object): + """Proto file describing the Geo target constant service. + + Service to fetch geo target constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGeoTargetConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.GeoTargetConstantService/GetGeoTargetConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.GetGeoTargetConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2.GeoTargetConstant.FromString, + ) + self.SuggestGeoTargetConstants = channel.unary_unary( + '/google.ads.googleads.v5.services.GeoTargetConstantService/SuggestGeoTargetConstants', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsResponse.FromString, + ) + + +class GeoTargetConstantServiceServicer(object): + """Proto file describing the Geo target constant service. + + Service to fetch geo target constants. + """ + + def GetGeoTargetConstant(self, request, context): + """Returns the requested geo target constant in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SuggestGeoTargetConstants(self, request, context): + """Returns GeoTargetConstant suggestions by location name or by resource name. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GeoTargetConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGeoTargetConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetGeoTargetConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.GetGeoTargetConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2.GeoTargetConstant.SerializeToString, + ), + 'SuggestGeoTargetConstants': grpc.unary_unary_rpc_method_handler( + servicer.SuggestGeoTargetConstants, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GeoTargetConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GeoTargetConstantService(object): + """Proto file describing the Geo target constant service. + + Service to fetch geo target constants. + """ + + @staticmethod + def GetGeoTargetConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GeoTargetConstantService/GetGeoTargetConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.GetGeoTargetConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2.GeoTargetConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SuggestGeoTargetConstants(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GeoTargetConstantService/SuggestGeoTargetConstants', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geo__target__constant__service__pb2.SuggestGeoTargetConstantsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2.py new file mode 100644 index 000000000..c629729ea --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/geographic_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import geographic_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/geographic_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032GeographicViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nDgoogle/ads/googleads_v5/proto/services/geographic_view_service.proto\x12 google.ads.googleads.v5.services\x1a=google/ads/googleads_v5/proto/resources/geographic_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetGeographicViewRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/GeographicView2\x84\x02\n\x15GeographicViewService\x12\xcd\x01\n\x11GetGeographicView\x12:.google.ads.googleads.v5.services.GetGeographicViewRequest\x1a\x31.google.ads.googleads.v5.resources.GeographicView\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/geographicViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1aGeographicViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETGEOGRAPHICVIEWREQUEST = _descriptor.Descriptor( + name='GetGeographicViewRequest', + full_name='google.ads.googleads.v5.services.GetGeographicViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetGeographicViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/GeographicView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=284, + serialized_end=382, +) + +DESCRIPTOR.message_types_by_name['GetGeographicViewRequest'] = _GETGEOGRAPHICVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGeographicViewRequest = _reflection.GeneratedProtocolMessageType('GetGeographicViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETGEOGRAPHICVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.geographic_view_service_pb2' + , + '__doc__': """Request message for [GeographicViewService.GetGeographicView][google.a + ds.googleads.v5.services.GeographicViewService.GetGeographicView]. + + Attributes: + resource_name: + Required. The resource name of the geographic view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetGeographicViewRequest) + }) +_sym_db.RegisterMessage(GetGeographicViewRequest) + + +DESCRIPTOR._options = None +_GETGEOGRAPHICVIEWREQUEST.fields_by_name['resource_name']._options = None + +_GEOGRAPHICVIEWSERVICE = _descriptor.ServiceDescriptor( + name='GeographicViewService', + full_name='google.ads.googleads.v5.services.GeographicViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=385, + serialized_end=645, + methods=[ + _descriptor.MethodDescriptor( + name='GetGeographicView', + full_name='google.ads.googleads.v5.services.GeographicViewService.GetGeographicView', + index=0, + containing_service=None, + input_type=_GETGEOGRAPHICVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2._GEOGRAPHICVIEW, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/geographicViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GEOGRAPHICVIEWSERVICE) + +DESCRIPTOR.services_by_name['GeographicViewService'] = _GEOGRAPHICVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2_grpc.py new file mode 100644 index 000000000..7b5757bf2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/geographic_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import geographic_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2 +from google.ads.google_ads.v5.proto.services import geographic_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geographic__view__service__pb2 + + +class GeographicViewServiceStub(object): + """Proto file describing the GeographicViewService. + + Service to manage geographic views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGeographicView = channel.unary_unary( + '/google.ads.googleads.v5.services.GeographicViewService/GetGeographicView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geographic__view__service__pb2.GetGeographicViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2.GeographicView.FromString, + ) + + +class GeographicViewServiceServicer(object): + """Proto file describing the GeographicViewService. + + Service to manage geographic views. + """ + + def GetGeographicView(self, request, context): + """Returns the requested geographic view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GeographicViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGeographicView': grpc.unary_unary_rpc_method_handler( + servicer.GetGeographicView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geographic__view__service__pb2.GetGeographicViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2.GeographicView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GeographicViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GeographicViewService(object): + """Proto file describing the GeographicViewService. + + Service to manage geographic views. + """ + + @staticmethod + def GetGeographicView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GeographicViewService/GetGeographicView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_geographic__view__service__pb2.GetGeographicViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2.GeographicView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2.py b/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2.py new file mode 100644 index 000000000..1f47ebdb1 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2.py @@ -0,0 +1,267 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/google_ads_field_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import google_ads_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/google_ads_field_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032GoogleAdsFieldServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/google_ads_field_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/google_ads_field.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetGoogleAdsFieldRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/GoogleAdsField\"Y\n\x1cSearchGoogleAdsFieldsRequest\x12\x12\n\x05query\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"\x99\x01\n\x1dSearchGoogleAdsFieldsResponse\x12\x42\n\x07results\x18\x01 \x03(\x0b\x32\x31.google.ads.googleads.v5.resources.GoogleAdsField\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1b\n\x13total_results_count\x18\x03 \x01(\x03\x32\xc2\x03\n\x15GoogleAdsFieldService\x12\xc1\x01\n\x11GetGoogleAdsField\x12:.google.ads.googleads.v5.services.GetGoogleAdsFieldRequest\x1a\x31.google.ads.googleads.v5.resources.GoogleAdsField\"=\x82\xd3\xe4\x93\x02\'\x12%/v5/{resource_name=googleAdsFields/*}\xda\x41\rresource_name\x12\xc7\x01\n\x15SearchGoogleAdsFields\x12>.google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest\x1a?.google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse\"-\x82\xd3\xe4\x93\x02\x1f\"\x1a/v5/googleAdsFields:search:\x01*\xda\x41\x05query\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1aGoogleAdsFieldServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETGOOGLEADSFIELDREQUEST = _descriptor.Descriptor( + name='GetGoogleAdsFieldRequest', + full_name='google.ads.googleads.v5.services.GetGoogleAdsFieldRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetGoogleAdsFieldRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/GoogleAdsField', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=384, +) + + +_SEARCHGOOGLEADSFIELDSREQUEST = _descriptor.Descriptor( + name='SearchGoogleAdsFieldsRequest', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='query', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest.query', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest.page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest.page_size', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=386, + serialized_end=475, +) + + +_SEARCHGOOGLEADSFIELDSRESPONSE = _descriptor.Descriptor( + name='SearchGoogleAdsFieldsResponse', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_results_count', full_name='google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse.total_results_count', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=478, + serialized_end=631, +) + +_SEARCHGOOGLEADSFIELDSRESPONSE.fields_by_name['results'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2._GOOGLEADSFIELD +DESCRIPTOR.message_types_by_name['GetGoogleAdsFieldRequest'] = _GETGOOGLEADSFIELDREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsFieldsRequest'] = _SEARCHGOOGLEADSFIELDSREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsFieldsResponse'] = _SEARCHGOOGLEADSFIELDSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGoogleAdsFieldRequest = _reflection.GeneratedProtocolMessageType('GetGoogleAdsFieldRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETGOOGLEADSFIELDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_field_service_pb2' + , + '__doc__': """Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.a + ds.googleads.v5.services.GoogleAdsFieldService.GetGoogleAdsField]. + + Attributes: + resource_name: + Required. The resource name of the field to get. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetGoogleAdsFieldRequest) + }) +_sym_db.RegisterMessage(GetGoogleAdsFieldRequest) + +SearchGoogleAdsFieldsRequest = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsFieldsRequest', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSFIELDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_field_service_pb2' + , + '__doc__': """Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][goog + le.ads.googleads.v5.services.GoogleAdsFieldService.SearchGoogleAdsFiel + ds]. + + Attributes: + query: + Required. The query string. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When too + large a page is requested, the server may decide to further + limit the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsFieldsRequest) + }) +_sym_db.RegisterMessage(SearchGoogleAdsFieldsRequest) + +SearchGoogleAdsFieldsResponse = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsFieldsResponse', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSFIELDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_field_service_pb2' + , + '__doc__': """Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][goo + gle.ads.googleads.v5.services.GoogleAdsFieldService.SearchGoogleAdsFie + lds]. + + Attributes: + results: + The list of fields that matched the query. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + total_results_count: + Total number of results that match the query ignoring the + LIMIT clause. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsFieldsResponse) + }) +_sym_db.RegisterMessage(SearchGoogleAdsFieldsResponse) + + +DESCRIPTOR._options = None +_GETGOOGLEADSFIELDREQUEST.fields_by_name['resource_name']._options = None +_SEARCHGOOGLEADSFIELDSREQUEST.fields_by_name['query']._options = None + +_GOOGLEADSFIELDSERVICE = _descriptor.ServiceDescriptor( + name='GoogleAdsFieldService', + full_name='google.ads.googleads.v5.services.GoogleAdsFieldService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=634, + serialized_end=1084, + methods=[ + _descriptor.MethodDescriptor( + name='GetGoogleAdsField', + full_name='google.ads.googleads.v5.services.GoogleAdsFieldService.GetGoogleAdsField', + index=0, + containing_service=None, + input_type=_GETGOOGLEADSFIELDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2._GOOGLEADSFIELD, + serialized_options=b'\202\323\344\223\002\'\022%/v5/{resource_name=googleAdsFields/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='SearchGoogleAdsFields', + full_name='google.ads.googleads.v5.services.GoogleAdsFieldService.SearchGoogleAdsFields', + index=1, + containing_service=None, + input_type=_SEARCHGOOGLEADSFIELDSREQUEST, + output_type=_SEARCHGOOGLEADSFIELDSRESPONSE, + serialized_options=b'\202\323\344\223\002\037\"\032/v5/googleAdsFields:search:\001*\332A\005query', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GOOGLEADSFIELDSERVICE) + +DESCRIPTOR.services_by_name['GoogleAdsFieldService'] = _GOOGLEADSFIELDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2_grpc.py new file mode 100644 index 000000000..7dbe997b3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/google_ads_field_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import google_ads_field_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2 +from google.ads.google_ads.v5.proto.services import google_ads_field_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2 + + +class GoogleAdsFieldServiceStub(object): + """Proto file describing the GoogleAdsFieldService + + Service to fetch Google Ads API fields. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGoogleAdsField = channel.unary_unary( + '/google.ads.googleads.v5.services.GoogleAdsFieldService/GetGoogleAdsField', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.GetGoogleAdsFieldRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2.GoogleAdsField.FromString, + ) + self.SearchGoogleAdsFields = channel.unary_unary( + '/google.ads.googleads.v5.services.GoogleAdsFieldService/SearchGoogleAdsFields', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsResponse.FromString, + ) + + +class GoogleAdsFieldServiceServicer(object): + """Proto file describing the GoogleAdsFieldService + + Service to fetch Google Ads API fields. + """ + + def GetGoogleAdsField(self, request, context): + """Returns just the requested field. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SearchGoogleAdsFields(self, request, context): + """Returns all fields that match the search query. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GoogleAdsFieldServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGoogleAdsField': grpc.unary_unary_rpc_method_handler( + servicer.GetGoogleAdsField, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.GetGoogleAdsFieldRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2.GoogleAdsField.SerializeToString, + ), + 'SearchGoogleAdsFields': grpc.unary_unary_rpc_method_handler( + servicer.SearchGoogleAdsFields, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GoogleAdsFieldService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GoogleAdsFieldService(object): + """Proto file describing the GoogleAdsFieldService + + Service to fetch Google Ads API fields. + """ + + @staticmethod + def GetGoogleAdsField(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GoogleAdsFieldService/GetGoogleAdsField', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.GetGoogleAdsFieldRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_google__ads__field__pb2.GoogleAdsField.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SearchGoogleAdsFields(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GoogleAdsFieldService/SearchGoogleAdsFields', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/google_ads_service_pb2.py b/google/ads/google_ads/v5/proto/services/google_ads_service_pb2.py new file mode 100644 index 000000000..bd40e1743 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/google_ads_service_pb2.py @@ -0,0 +1,3114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/google_ads_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import metrics_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_metrics__pb2 +from google.ads.google_ads.v5.proto.common import segments_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_segments__pb2 +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.enums import summary_row_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_summary__row__setting__pb2 +from google.ads.google_ads.v5.proto.resources import account_budget_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__pb2 +from google.ads.google_ads.v5.proto.resources import account_budget_proposal_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2 +from google.ads.google_ads.v5.proto.resources import account_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__link__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_ad_asset_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_ad_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__label__pb2 +from google.ads.google_ads.v5.proto.resources import ad_group_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__simulation__pb2 +from google.ads.google_ads.v5.proto.resources import ad_parameter_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__parameter__pb2 +from google.ads.google_ads.v5.proto.resources import ad_schedule_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2 +from google.ads.google_ads.v5.proto.resources import age_range_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_age__range__view__pb2 +from google.ads.google_ads.v5.proto.resources import asset_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_asset__pb2 +from google.ads.google_ads.v5.proto.resources import batch_job_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2 +from google.ads.google_ads.v5.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.ads.google_ads.v5.proto.resources import billing_setup_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_asset_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_audience_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_bid_modifier_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_criterion_simulation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_draft_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_experiment_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2 +from google.ads.google_ads.v5.proto.resources import campaign_shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2 +from google.ads.google_ads.v5.proto.resources import carrier_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2 +from google.ads.google_ads.v5.proto.resources import change_status_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2 +from google.ads.google_ads.v5.proto.resources import click_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2 +from google.ads.google_ads.v5.proto.resources import conversion_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2 +from google.ads.google_ads.v5.proto.resources import currency_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2 +from google.ads.google_ads.v5.proto.resources import custom_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2 +from google.ads.google_ads.v5.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2 +from google.ads.google_ads.v5.proto.resources import customer_client_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2 +from google.ads.google_ads.v5.proto.resources import customer_client_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2 +from google.ads.google_ads.v5.proto.resources import customer_extension_setting_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2 +from google.ads.google_ads.v5.proto.resources import customer_feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2 +from google.ads.google_ads.v5.proto.resources import customer_label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2 +from google.ads.google_ads.v5.proto.resources import customer_manager_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2 +from google.ads.google_ads.v5.proto.resources import customer_negative_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2 +from google.ads.google_ads.v5.proto.resources import detail_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2 +from google.ads.google_ads.v5.proto.resources import display_keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2 +from google.ads.google_ads.v5.proto.resources import distance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2 +from google.ads.google_ads.v5.proto.resources import domain_category_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2 +from google.ads.google_ads.v5.proto.resources import dynamic_search_ads_search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2 +from google.ads.google_ads.v5.proto.resources import expanded_landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2 +from google.ads.google_ads.v5.proto.resources import extension_feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2 +from google.ads.google_ads.v5.proto.resources import feed_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2 +from google.ads.google_ads.v5.proto.resources import feed_item_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2 +from google.ads.google_ads.v5.proto.resources import feed_item_target_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2 +from google.ads.google_ads.v5.proto.resources import feed_mapping_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2 +from google.ads.google_ads.v5.proto.resources import feed_placeholder_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2 +from google.ads.google_ads.v5.proto.resources import gender_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2 +from google.ads.google_ads.v5.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.ads.google_ads.v5.proto.resources import geographic_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2 +from google.ads.google_ads.v5.proto.resources import group_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2 +from google.ads.google_ads.v5.proto.resources import hotel_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2 +from google.ads.google_ads.v5.proto.resources import hotel_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2 +from google.ads.google_ads.v5.proto.resources import income_range_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_ad_group_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_ad_group_keyword_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__keyword__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_keyword_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.ads.google_ads.v5.proto.resources import label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2 +from google.ads.google_ads.v5.proto.resources import landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2 +from google.ads.google_ads.v5.proto.resources import language_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2 +from google.ads.google_ads.v5.proto.resources import location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2 +from google.ads.google_ads.v5.proto.resources import managed_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2 +from google.ads.google_ads.v5.proto.resources import media_file_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2 +from google.ads.google_ads.v5.proto.resources import mobile_app_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2 +from google.ads.google_ads.v5.proto.resources import mobile_device_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2 +from google.ads.google_ads.v5.proto.resources import offline_user_data_job_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2 +from google.ads.google_ads.v5.proto.resources import operating_system_version_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2 +from google.ads.google_ads.v5.proto.resources import paid_organic_search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_paid__organic__search__term__view__pb2 +from google.ads.google_ads.v5.proto.resources import parental_status_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2 +from google.ads.google_ads.v5.proto.resources import product_bidding_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2 +from google.ads.google_ads.v5.proto.resources import product_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2 +from google.ads.google_ads.v5.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2 +from google.ads.google_ads.v5.proto.resources import remarketing_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2 +from google.ads.google_ads.v5.proto.resources import search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2 +from google.ads.google_ads.v5.proto.resources import shared_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2 +from google.ads.google_ads.v5.proto.resources import shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2 +from google.ads.google_ads.v5.proto.resources import shopping_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2 +from google.ads.google_ads.v5.proto.resources import third_party_app_analytics_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2 +from google.ads.google_ads.v5.proto.resources import topic_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__constant__pb2 +from google.ads.google_ads.v5.proto.resources import topic_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__view__pb2 +from google.ads.google_ads.v5.proto.resources import user_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2 +from google.ads.google_ads.v5.proto.resources import user_list_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2 +from google.ads.google_ads.v5.proto.resources import user_location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2 +from google.ads.google_ads.v5.proto.resources import video_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_ad_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_ad_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_bid_modifier_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_criterion_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__label__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_group_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_parameter_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__parameter__service__pb2 +from google.ads.google_ads.v5.proto.services import ad_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2 +from google.ads.google_ads.v5.proto.services import asset_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_asset__service__pb2 +from google.ads.google_ads.v5.proto.services import bidding_strategy_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_asset_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_bid_modifier_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_budget_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_draft_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_experiment_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2 +from google.ads.google_ads.v5.proto.services import campaign_shared_set_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2 +from google.ads.google_ads.v5.proto.services import conversion_action_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2 +from google.ads.google_ads.v5.proto.services import customer_extension_setting_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2 +from google.ads.google_ads.v5.proto.services import customer_feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2 +from google.ads.google_ads.v5.proto.services import customer_label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2 +from google.ads.google_ads.v5.proto.services import customer_negative_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2 +from google.ads.google_ads.v5.proto.services import customer_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2 +from google.ads.google_ads.v5.proto.services import extension_feed_item_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2 +from google.ads.google_ads.v5.proto.services import feed_item_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2 +from google.ads.google_ads.v5.proto.services import feed_item_target_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2 +from google.ads.google_ads.v5.proto.services import feed_mapping_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2 +from google.ads.google_ads.v5.proto.services import feed_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_keyword_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__keyword__service__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_keyword_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2 +from google.ads.google_ads.v5.proto.services import label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2 +from google.ads.google_ads.v5.proto.services import media_file_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2 +from google.ads.google_ads.v5.proto.services import remarketing_action_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2 +from google.ads.google_ads.v5.proto.services import shared_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2 +from google.ads.google_ads.v5.proto.services import shared_set_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2 +from google.ads.google_ads.v5.proto.services import user_list_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/google_ads_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025GoogleAdsServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/services/google_ads_service.proto\x12 google.ads.googleads.v5.services\x1a\x32google/ads/googleads_v5/proto/common/metrics.proto\x1a\x33google/ads/googleads_v5/proto/common/segments.proto\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a=google/ads/googleads_v5/proto/enums/summary_row_setting.proto\x1agoogle/ads/googleads_v5/proto/resources/ad_schedule_view.proto\x1agoogle/ads/googleads_v5/proto/resources/bidding_strategy.proto\x1a;google/ads/googleads_v5/proto/resources/billing_setup.proto\x1a\x36google/ads/googleads_v5/proto/resources/campaign.proto\x1agoogle/ads/googleads_v5/proto/resources/carrier_constant.proto\x1a;google/ads/googleads_v5/proto/resources/change_status.proto\x1a\x38google/ads/googleads_v5/proto/resources/click_view.proto\x1a?google/ads/googleads_v5/proto/resources/conversion_action.proto\x1a?google/ads/googleads_v5/proto/resources/currency_constant.proto\x1a=google/ads/googleads_v5/proto/resources/custom_interest.proto\x1a\x36google/ads/googleads_v5/proto/resources/customer.proto\x1a=google/ads/googleads_v5/proto/resources/customer_client.proto\x1a\x42google/ads/googleads_v5/proto/resources/customer_client_link.proto\x1aHgoogle/ads/googleads_v5/proto/resources/customer_extension_setting.proto\x1a;google/ads/googleads_v5/proto/resources/customer_feed.proto\x1agoogle/ads/googleads_v5/proto/resources/feed_item_target.proto\x1a:google/ads/googleads_v5/proto/resources/feed_mapping.proto\x1a\x43google/ads/googleads_v5/proto/resources/feed_placeholder_view.proto\x1a\x39google/ads/googleads_v5/proto/resources/gender_view.proto\x1a\x41google/ads/googleads_v5/proto/resources/geo_target_constant.proto\x1a=google/ads/googleads_v5/proto/resources/geographic_view.proto\x1a\x42google/ads/googleads_v5/proto/resources/group_placement_view.proto\x1a>google/ads/googleads_v5/proto/resources/hotel_group_view.proto\x1a\x44google/ads/googleads_v5/proto/resources/hotel_performance_view.proto\x1a?google/ads/googleads_v5/proto/resources/income_range_view.proto\x1a:google/ads/googleads_v5/proto/resources/keyword_plan.proto\x1a\x43google/ads/googleads_v5/proto/resources/keyword_plan_ad_group.proto\x1aKgoogle/ads/googleads_v5/proto/resources/keyword_plan_ad_group_keyword.proto\x1a\x43google/ads/googleads_v5/proto/resources/keyword_plan_campaign.proto\x1aKgoogle/ads/googleads_v5/proto/resources/keyword_plan_campaign_keyword.proto\x1a:google/ads/googleads_v5/proto/resources/keyword_view.proto\x1a\x33google/ads/googleads_v5/proto/resources/label.proto\x1a?google/ads/googleads_v5/proto/resources/landing_page_view.proto\x1a?google/ads/googleads_v5/proto/resources/language_constant.proto\x1a;google/ads/googleads_v5/proto/resources/location_view.proto\x1a\x44google/ads/googleads_v5/proto/resources/managed_placement_view.proto\x1a\x38google/ads/googleads_v5/proto/resources/media_file.proto\x1aJgoogle/ads/googleads_v5/proto/resources/mobile_app_category_constant.proto\x1a\x44google/ads/googleads_v5/proto/resources/mobile_device_constant.proto\x1a\x43google/ads/googleads_v5/proto/resources/offline_user_data_job.proto\x1aOgoogle/ads/googleads_v5/proto/resources/operating_system_version_constant.proto\x1aKgoogle/ads/googleads_v5/proto/resources/paid_organic_search_term_view.proto\x1a\x42google/ads/googleads_v5/proto/resources/parental_status_view.proto\x1aOgoogle/ads/googleads_v5/proto/resources/product_bidding_category_constant.proto\x1a@google/ads/googleads_v5/proto/resources/product_group_view.proto\x1agoogle/ads/googleads_v5/proto/resources/search_term_view.proto\x1a>google/ads/googleads_v5/proto/resources/shared_criterion.proto\x1a\x38google/ads/googleads_v5/proto/resources/shared_set.proto\x1aGgoogle/ads/googleads_v5/proto/resources/shopping_performance_view.proto\x1aLgoogle/ads/googleads_v5/proto/resources/third_party_app_analytics_link.proto\x1agoogle/ads/googleads_v5/proto/services/feed_item_service.proto\x1a\x45google/ads/googleads_v5/proto/services/feed_item_target_service.proto\x1a\x41google/ads/googleads_v5/proto/services/feed_mapping_service.proto\x1a\x39google/ads/googleads_v5/proto/services/feed_service.proto\x1aRgoogle/ads/googleads_v5/proto/services/keyword_plan_ad_group_keyword_service.proto\x1aJgoogle/ads/googleads_v5/proto/services/keyword_plan_ad_group_service.proto\x1aRgoogle/ads/googleads_v5/proto/services/keyword_plan_campaign_keyword_service.proto\x1aJgoogle/ads/googleads_v5/proto/services/keyword_plan_campaign_service.proto\x1a\x41google/ads/googleads_v5/proto/services/keyword_plan_service.proto\x1a:google/ads/googleads_v5/proto/services/label_service.proto\x1a?google/ads/googleads_v5/proto/services/media_file_service.proto\x1aGgoogle/ads/googleads_v5/proto/services/remarketing_action_service.proto\x1a\x45google/ads/googleads_v5/proto/services/shared_criterion_service.proto\x1a?google/ads/googleads_v5/proto/services/shared_set_service.proto\x1a>google/ads/googleads_v5/proto/services/user_list_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"\x8d\x02\n\x16SearchGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x15\n\rvalidate_only\x18\x05 \x01(\x08\x12\"\n\x1areturn_total_results_count\x18\x07 \x01(\x08\x12\x63\n\x13summary_row_setting\x18\x08 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.SummaryRowSettingEnum.SummaryRowSetting\"\x85\x02\n\x17SearchGoogleAdsResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..google.ads.googleads.v5.services.GoogleAdsRow\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1b\n\x13total_results_count\x18\x03 \x01(\x03\x12.\n\nfield_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x0bsummary_row\x18\x06 \x01(\x0b\x32..google.ads.googleads.v5.services.GoogleAdsRow\"\xb1\x01\n\x1cSearchGoogleAdsStreamRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x63\n\x13summary_row_setting\x18\x03 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.SummaryRowSettingEnum.SummaryRowSetting\"\xd5\x01\n\x1dSearchGoogleAdsStreamResponse\x12?\n\x07results\x18\x01 \x03(\x0b\x32..google.ads.googleads.v5.services.GoogleAdsRow\x12.\n\nfield_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x0bsummary_row\x18\x03 \x01(\x0b\x32..google.ads.googleads.v5.services.GoogleAdsRow\"\x8e\x41\n\x0cGoogleAdsRow\x12H\n\x0e\x61\x63\x63ount_budget\x18* \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.AccountBudget\x12Y\n\x17\x61\x63\x63ount_budget_proposal\x18+ \x01(\x0b\x32\x38.google.ads.googleads.v5.resources.AccountBudgetProposal\x12\x45\n\x0c\x61\x63\x63ount_link\x18\x8f\x01 \x01(\x0b\x32..google.ads.googleads.v5.resources.AccountLink\x12<\n\x08\x61\x64_group\x18\x03 \x01(\x0b\x32*.google.ads.googleads.v5.resources.AdGroup\x12\x41\n\x0b\x61\x64_group_ad\x18\x10 \x01(\x0b\x32,.google.ads.googleads.v5.resources.AdGroupAd\x12V\n\x16\x61\x64_group_ad_asset_view\x18\x83\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.AdGroupAdAssetView\x12L\n\x11\x61\x64_group_ad_label\x18x \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.AdGroupAdLabel\x12V\n\x16\x61\x64_group_audience_view\x18\x39 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.AdGroupAudienceView\x12T\n\x15\x61\x64_group_bid_modifier\x18\x18 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.AdGroupBidModifier\x12O\n\x12\x61\x64_group_criterion\x18\x11 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.AdGroupCriterion\x12Z\n\x18\x61\x64_group_criterion_label\x18y \x01(\x0b\x32\x38.google.ads.googleads.v5.resources.AdGroupCriterionLabel\x12\x64\n\x1d\x61\x64_group_criterion_simulation\x18n \x01(\x0b\x32=.google.ads.googleads.v5.resources.AdGroupCriterionSimulation\x12^\n\x1a\x61\x64_group_extension_setting\x18p \x01(\x0b\x32:.google.ads.googleads.v5.resources.AdGroupExtensionSetting\x12\x45\n\rad_group_feed\x18\x43 \x01(\x0b\x32..google.ads.googleads.v5.resources.AdGroupFeed\x12G\n\x0e\x61\x64_group_label\x18s \x01(\x0b\x32/.google.ads.googleads.v5.resources.AdGroupLabel\x12Q\n\x13\x61\x64_group_simulation\x18k \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.AdGroupSimulation\x12\x45\n\x0c\x61\x64_parameter\x18\x82\x01 \x01(\x0b\x32..google.ads.googleads.v5.resources.AdParameter\x12G\n\x0e\x61ge_range_view\x18\x30 \x01(\x0b\x32/.google.ads.googleads.v5.resources.AgeRangeView\x12K\n\x10\x61\x64_schedule_view\x18Y \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.AdScheduleView\x12J\n\x0f\x64omain_category\x18[ \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.DomainCategory\x12\x37\n\x05\x61sset\x18i \x01(\x0b\x32(.google.ads.googleads.v5.resources.Asset\x12?\n\tbatch_job\x18\x8b\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.BatchJob\x12L\n\x10\x62idding_strategy\x18\x12 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.BiddingStrategy\x12\x46\n\rbilling_setup\x18) \x01(\x0b\x32/.google.ads.googleads.v5.resources.BillingSetup\x12J\n\x0f\x63\x61mpaign_budget\x18\x13 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CampaignBudget\x12=\n\x08\x63\x61mpaign\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.Campaign\x12I\n\x0e\x63\x61mpaign_asset\x18\x8e\x01 \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.CampaignAsset\x12W\n\x16\x63\x61mpaign_audience_view\x18\x45 \x01(\x0b\x32\x37.google.ads.googleads.v5.resources.CampaignAudienceView\x12U\n\x15\x63\x61mpaign_bid_modifier\x18\x1a \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.CampaignBidModifier\x12P\n\x12\x63\x61mpaign_criterion\x18\x14 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignCriterion\x12\x65\n\x1d\x63\x61mpaign_criterion_simulation\x18o \x01(\x0b\x32>.google.ads.googleads.v5.resources.CampaignCriterionSimulation\x12H\n\x0e\x63\x61mpaign_draft\x18\x31 \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.CampaignDraft\x12R\n\x13\x63\x61mpaign_experiment\x18T \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CampaignExperiment\x12_\n\x1a\x63\x61mpaign_extension_setting\x18q \x01(\x0b\x32;.google.ads.googleads.v5.resources.CampaignExtensionSetting\x12\x46\n\rcampaign_feed\x18? \x01(\x0b\x32/.google.ads.googleads.v5.resources.CampaignFeed\x12H\n\x0e\x63\x61mpaign_label\x18l \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.CampaignLabel\x12Q\n\x13\x63\x61mpaign_shared_set\x18\x1e \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.CampaignSharedSet\x12L\n\x10\x63\x61rrier_constant\x18\x42 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.CarrierConstant\x12\x46\n\rchange_status\x18% \x01(\x0b\x32/.google.ads.googleads.v5.resources.ChangeStatus\x12N\n\x11\x63onversion_action\x18g \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.ConversionAction\x12@\n\nclick_view\x18z \x01(\x0b\x32,.google.ads.googleads.v5.resources.ClickView\x12O\n\x11\x63urrency_constant\x18\x86\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.CurrencyConstant\x12J\n\x0f\x63ustom_interest\x18h \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CustomInterest\x12=\n\x08\x63ustomer\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.Customer\x12U\n\x15\x63ustomer_manager_link\x18= \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.CustomerManagerLink\x12S\n\x14\x63ustomer_client_link\x18> \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.CustomerClientLink\x12J\n\x0f\x63ustomer_client\x18\x46 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.CustomerClient\x12_\n\x1a\x63ustomer_extension_setting\x18r \x01(\x0b\x32;.google.ads.googleads.v5.resources.CustomerExtensionSetting\x12\x46\n\rcustomer_feed\x18@ \x01(\x0b\x32/.google.ads.googleads.v5.resources.CustomerFeed\x12H\n\x0e\x63ustomer_label\x18| \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.CustomerLabel\x12\x61\n\x1b\x63ustomer_negative_criterion\x18X \x01(\x0b\x32<.google.ads.googleads.v5.resources.CustomerNegativeCriterion\x12U\n\x15\x64\x65tail_placement_view\x18v \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.DetailPlacementView\x12S\n\x14\x64isplay_keyword_view\x18/ \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.DisplayKeywordView\x12G\n\rdistance_view\x18\x84\x01 \x01(\x0b\x32/.google.ads.googleads.v5.resources.DistanceView\x12n\n#dynamic_search_ads_search_term_view\x18j \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.DynamicSearchAdsSearchTermView\x12_\n\x1a\x65xpanded_landing_page_view\x18\x80\x01 \x01(\x0b\x32:.google.ads.googleads.v5.resources.ExpandedLandingPageView\x12Q\n\x13\x65xtension_feed_item\x18U \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.ExtensionFeedItem\x12\x35\n\x04\x66\x65\x65\x64\x18. \x01(\x0b\x32\'.google.ads.googleads.v5.resources.Feed\x12>\n\tfeed_item\x18\x32 \x01(\x0b\x32+.google.ads.googleads.v5.resources.FeedItem\x12K\n\x10\x66\x65\x65\x64_item_target\x18t \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.FeedItemTarget\x12\x44\n\x0c\x66\x65\x65\x64_mapping\x18: \x01(\x0b\x32..google.ads.googleads.v5.resources.FeedMapping\x12U\n\x15\x66\x65\x65\x64_placeholder_view\x18\x61 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.FeedPlaceholderView\x12\x42\n\x0bgender_view\x18( \x01(\x0b\x32-.google.ads.googleads.v5.resources.GenderView\x12Q\n\x13geo_target_constant\x18\x17 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.GeoTargetConstant\x12J\n\x0fgeographic_view\x18} \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.GeographicView\x12S\n\x14group_placement_view\x18w \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.GroupPlacementView\x12K\n\x10hotel_group_view\x18\x33 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.HotelGroupView\x12W\n\x16hotel_performance_view\x18G \x01(\x0b\x32\x37.google.ads.googleads.v5.resources.HotelPerformanceView\x12N\n\x11income_range_view\x18\x8a\x01 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.IncomeRangeView\x12\x44\n\x0ckeyword_view\x18\x15 \x01(\x0b\x32..google.ads.googleads.v5.resources.KeywordView\x12\x44\n\x0ckeyword_plan\x18 \x01(\x0b\x32..google.ads.googleads.v5.resources.KeywordPlan\x12U\n\x15keyword_plan_campaign\x18! \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.KeywordPlanCampaign\x12\x65\n\x1dkeyword_plan_campaign_keyword\x18\x8c\x01 \x01(\x0b\x32=.google.ads.googleads.v5.resources.KeywordPlanCampaignKeyword\x12T\n\x15keyword_plan_ad_group\x18# \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.KeywordPlanAdGroup\x12\x64\n\x1dkeyword_plan_ad_group_keyword\x18\x8d\x01 \x01(\x0b\x32<.google.ads.googleads.v5.resources.KeywordPlanAdGroupKeyword\x12\x37\n\x05label\x18\x34 \x01(\x0b\x32(.google.ads.googleads.v5.resources.Label\x12M\n\x11landing_page_view\x18~ \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.LandingPageView\x12N\n\x11language_constant\x18\x37 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.LanguageConstant\x12\x46\n\rlocation_view\x18{ \x01(\x0b\x32/.google.ads.googleads.v5.resources.LocationView\x12W\n\x16managed_placement_view\x18\x35 \x01(\x0b\x32\x37.google.ads.googleads.v5.resources.ManagedPlacementView\x12@\n\nmedia_file\x18Z \x01(\x0b\x32,.google.ads.googleads.v5.resources.MediaFile\x12\x62\n\x1cmobile_app_category_constant\x18W \x01(\x0b\x32<.google.ads.googleads.v5.resources.MobileAppCategoryConstant\x12W\n\x16mobile_device_constant\x18\x62 \x01(\x0b\x32\x37.google.ads.googleads.v5.resources.MobileDeviceConstant\x12U\n\x15offline_user_data_job\x18\x89\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.OfflineUserDataJob\x12l\n!operating_system_version_constant\x18V \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.OperatingSystemVersionConstant\x12\x64\n\x1dpaid_organic_search_term_view\x18\x81\x01 \x01(\x0b\x32<.google.ads.googleads.v5.resources.PaidOrganicSearchTermView\x12S\n\x14parental_status_view\x18- \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.ParentalStatusView\x12l\n!product_bidding_category_constant\x18m \x01(\x0b\x32\x41.google.ads.googleads.v5.resources.ProductBiddingCategoryConstant\x12O\n\x12product_group_view\x18\x36 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.ProductGroupView\x12I\n\x0erecommendation\x18\x16 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.Recommendation\x12K\n\x10search_term_view\x18\x44 \x01(\x0b\x32\x31.google.ads.googleads.v5.resources.SearchTermView\x12L\n\x10shared_criterion\x18\x1d \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.SharedCriterion\x12@\n\nshared_set\x18\x1b \x01(\x0b\x32,.google.ads.googleads.v5.resources.SharedSet\x12]\n\x19shopping_performance_view\x18u \x01(\x0b\x32:.google.ads.googleads.v5.resources.ShoppingPerformanceView\x12\x66\n\x1ethird_party_app_analytics_link\x18\x90\x01 \x01(\x0b\x32=.google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink\x12@\n\ntopic_view\x18, \x01(\x0b\x32,.google.ads.googleads.v5.resources.TopicView\x12\x46\n\ruser_interest\x18; \x01(\x0b\x32/.google.ads.googleads.v5.resources.UserInterest\x12>\n\tuser_list\x18& \x01(\x0b\x32+.google.ads.googleads.v5.resources.UserList\x12P\n\x12user_location_view\x18\x87\x01 \x01(\x0b\x32\x33.google.ads.googleads.v5.resources.UserLocationView\x12P\n\x12remarketing_action\x18< \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.RemarketingAction\x12H\n\x0etopic_constant\x18\x1f \x01(\x0b\x32\x30.google.ads.googleads.v5.resources.TopicConstant\x12\x37\n\x05video\x18\' \x01(\x0b\x32(.google.ads.googleads.v5.resources.Video\x12\x38\n\x07metrics\x18\x04 \x01(\x0b\x32\'.google.ads.googleads.v5.common.Metrics\x12:\n\x08segments\x18\x66 \x01(\x0b\x32(.google.ads.googleads.v5.common.Segments\"\xa0\x02\n\x16MutateGoogleAdsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12Q\n\x11mutate_operations\x18\x02 \x03(\x0b\x32\x31.google.ads.googleads.v5.services.MutateOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xab\x01\n\x17MutateGoogleAdsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12]\n\x1amutate_operation_responses\x18\x01 \x03(\x0b\x32\x39.google.ads.googleads.v5.services.MutateOperationResponse\"\xf7\"\n\x0fMutateOperation\x12`\n\x1b\x61\x64_group_ad_label_operation\x18\x11 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.AdGroupAdLabelOperationH\x00\x12U\n\x15\x61\x64_group_ad_operation\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v5.services.AdGroupAdOperationH\x00\x12h\n\x1f\x61\x64_group_bid_modifier_operation\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v5.services.AdGroupBidModifierOperationH\x00\x12n\n\"ad_group_criterion_label_operation\x18\x12 \x01(\x0b\x32@.google.ads.googleads.v5.services.AdGroupCriterionLabelOperationH\x00\x12\x63\n\x1c\x61\x64_group_criterion_operation\x18\x03 \x01(\x0b\x32;.google.ads.googleads.v5.services.AdGroupCriterionOperationH\x00\x12r\n$ad_group_extension_setting_operation\x18\x13 \x01(\x0b\x32\x42.google.ads.googleads.v5.services.AdGroupExtensionSettingOperationH\x00\x12Y\n\x17\x61\x64_group_feed_operation\x18\x14 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.AdGroupFeedOperationH\x00\x12[\n\x18\x61\x64_group_label_operation\x18\x15 \x01(\x0b\x32\x37.google.ads.googleads.v5.services.AdGroupLabelOperationH\x00\x12P\n\x12\x61\x64_group_operation\x18\x05 \x01(\x0b\x32\x32.google.ads.googleads.v5.services.AdGroupOperationH\x00\x12\x45\n\x0c\x61\x64_operation\x18\x31 \x01(\x0b\x32-.google.ads.googleads.v5.services.AdOperationH\x00\x12X\n\x16\x61\x64_parameter_operation\x18\x16 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.AdParameterOperationH\x00\x12K\n\x0f\x61sset_operation\x18\x17 \x01(\x0b\x32\x30.google.ads.googleads.v5.services.AssetOperationH\x00\x12`\n\x1a\x62idding_strategy_operation\x18\x06 \x01(\x0b\x32:.google.ads.googleads.v5.services.BiddingStrategyOperationH\x00\x12\\\n\x18\x63\x61mpaign_asset_operation\x18\x34 \x01(\x0b\x32\x38.google.ads.googleads.v5.services.CampaignAssetOperationH\x00\x12i\n\x1f\x63\x61mpaign_bid_modifier_operation\x18\x07 \x01(\x0b\x32>.google.ads.googleads.v5.services.CampaignBidModifierOperationH\x00\x12^\n\x19\x63\x61mpaign_budget_operation\x18\x08 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.CampaignBudgetOperationH\x00\x12\x64\n\x1c\x63\x61mpaign_criterion_operation\x18\r \x01(\x0b\x32<.google.ads.googleads.v5.services.CampaignCriterionOperationH\x00\x12\\\n\x18\x63\x61mpaign_draft_operation\x18\x18 \x01(\x0b\x32\x38.google.ads.googleads.v5.services.CampaignDraftOperationH\x00\x12\x66\n\x1d\x63\x61mpaign_experiment_operation\x18\x19 \x01(\x0b\x32=.google.ads.googleads.v5.services.CampaignExperimentOperationH\x00\x12s\n$campaign_extension_setting_operation\x18\x1a \x01(\x0b\x32\x43.google.ads.googleads.v5.services.CampaignExtensionSettingOperationH\x00\x12Z\n\x17\x63\x61mpaign_feed_operation\x18\x1b \x01(\x0b\x32\x37.google.ads.googleads.v5.services.CampaignFeedOperationH\x00\x12\\\n\x18\x63\x61mpaign_label_operation\x18\x1c \x01(\x0b\x32\x38.google.ads.googleads.v5.services.CampaignLabelOperationH\x00\x12Q\n\x12\x63\x61mpaign_operation\x18\n \x01(\x0b\x32\x33.google.ads.googleads.v5.services.CampaignOperationH\x00\x12\x65\n\x1d\x63\x61mpaign_shared_set_operation\x18\x0b \x01(\x0b\x32<.google.ads.googleads.v5.services.CampaignSharedSetOperationH\x00\x12\x62\n\x1b\x63onversion_action_operation\x18\x0c \x01(\x0b\x32;.google.ads.googleads.v5.services.ConversionActionOperationH\x00\x12s\n$customer_extension_setting_operation\x18\x1e \x01(\x0b\x32\x43.google.ads.googleads.v5.services.CustomerExtensionSettingOperationH\x00\x12Z\n\x17\x63ustomer_feed_operation\x18\x1f \x01(\x0b\x32\x37.google.ads.googleads.v5.services.CustomerFeedOperationH\x00\x12\\\n\x18\x63ustomer_label_operation\x18 \x01(\x0b\x32\x38.google.ads.googleads.v5.services.CustomerLabelOperationH\x00\x12u\n%customer_negative_criterion_operation\x18\" \x01(\x0b\x32\x44.google.ads.googleads.v5.services.CustomerNegativeCriterionOperationH\x00\x12Q\n\x12\x63ustomer_operation\x18# \x01(\x0b\x32\x33.google.ads.googleads.v5.services.CustomerOperationH\x00\x12\x65\n\x1d\x65xtension_feed_item_operation\x18$ \x01(\x0b\x32<.google.ads.googleads.v5.services.ExtensionFeedItemOperationH\x00\x12R\n\x13\x66\x65\x65\x64_item_operation\x18% \x01(\x0b\x32\x33.google.ads.googleads.v5.services.FeedItemOperationH\x00\x12_\n\x1a\x66\x65\x65\x64_item_target_operation\x18& \x01(\x0b\x32\x39.google.ads.googleads.v5.services.FeedItemTargetOperationH\x00\x12X\n\x16\x66\x65\x65\x64_mapping_operation\x18\' \x01(\x0b\x32\x36.google.ads.googleads.v5.services.FeedMappingOperationH\x00\x12I\n\x0e\x66\x65\x65\x64_operation\x18( \x01(\x0b\x32/.google.ads.googleads.v5.services.FeedOperationH\x00\x12h\n\x1fkeyword_plan_ad_group_operation\x18, \x01(\x0b\x32=.google.ads.googleads.v5.services.KeywordPlanAdGroupOperationH\x00\x12w\n\'keyword_plan_ad_group_keyword_operation\x18\x32 \x01(\x0b\x32\x44.google.ads.googleads.v5.services.KeywordPlanAdGroupKeywordOperationH\x00\x12x\n\'keyword_plan_campaign_keyword_operation\x18\x33 \x01(\x0b\x32\x45.google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperationH\x00\x12i\n\x1fkeyword_plan_campaign_operation\x18- \x01(\x0b\x32>.google.ads.googleads.v5.services.KeywordPlanCampaignOperationH\x00\x12X\n\x16keyword_plan_operation\x18\x30 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.KeywordPlanOperationH\x00\x12K\n\x0flabel_operation\x18) \x01(\x0b\x32\x30.google.ads.googleads.v5.services.LabelOperationH\x00\x12T\n\x14media_file_operation\x18* \x01(\x0b\x32\x34.google.ads.googleads.v5.services.MediaFileOperationH\x00\x12\x64\n\x1cremarketing_action_operation\x18+ \x01(\x0b\x32<.google.ads.googleads.v5.services.RemarketingActionOperationH\x00\x12`\n\x1ashared_criterion_operation\x18\x0e \x01(\x0b\x32:.google.ads.googleads.v5.services.SharedCriterionOperationH\x00\x12T\n\x14shared_set_operation\x18\x0f \x01(\x0b\x32\x34.google.ads.googleads.v5.services.SharedSetOperationH\x00\x12R\n\x13user_list_operation\x18\x10 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.UserListOperationH\x00\x42\x0b\n\toperation\"\xfe\"\n\x17MutateOperationResponse\x12`\n\x18\x61\x64_group_ad_label_result\x18\x11 \x01(\x0b\x32<.google.ads.googleads.v5.services.MutateAdGroupAdLabelResultH\x00\x12U\n\x12\x61\x64_group_ad_result\x18\x01 \x01(\x0b\x32\x37.google.ads.googleads.v5.services.MutateAdGroupAdResultH\x00\x12h\n\x1c\x61\x64_group_bid_modifier_result\x18\x02 \x01(\x0b\x32@.google.ads.googleads.v5.services.MutateAdGroupBidModifierResultH\x00\x12n\n\x1f\x61\x64_group_criterion_label_result\x18\x12 \x01(\x0b\x32\x43.google.ads.googleads.v5.services.MutateAdGroupCriterionLabelResultH\x00\x12\x63\n\x19\x61\x64_group_criterion_result\x18\x03 \x01(\x0b\x32>.google.ads.googleads.v5.services.MutateAdGroupCriterionResultH\x00\x12r\n!ad_group_extension_setting_result\x18\x13 \x01(\x0b\x32\x45.google.ads.googleads.v5.services.MutateAdGroupExtensionSettingResultH\x00\x12Y\n\x14\x61\x64_group_feed_result\x18\x14 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.MutateAdGroupFeedResultH\x00\x12[\n\x15\x61\x64_group_label_result\x18\x15 \x01(\x0b\x32:.google.ads.googleads.v5.services.MutateAdGroupLabelResultH\x00\x12P\n\x0f\x61\x64_group_result\x18\x05 \x01(\x0b\x32\x35.google.ads.googleads.v5.services.MutateAdGroupResultH\x00\x12X\n\x13\x61\x64_parameter_result\x18\x16 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.MutateAdParameterResultH\x00\x12\x45\n\tad_result\x18\x31 \x01(\x0b\x32\x30.google.ads.googleads.v5.services.MutateAdResultH\x00\x12K\n\x0c\x61sset_result\x18\x17 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.MutateAssetResultH\x00\x12`\n\x17\x62idding_strategy_result\x18\x06 \x01(\x0b\x32=.google.ads.googleads.v5.services.MutateBiddingStrategyResultH\x00\x12\\\n\x15\x63\x61mpaign_asset_result\x18\x34 \x01(\x0b\x32;.google.ads.googleads.v5.services.MutateCampaignAssetResultH\x00\x12i\n\x1c\x63\x61mpaign_bid_modifier_result\x18\x07 \x01(\x0b\x32\x41.google.ads.googleads.v5.services.MutateCampaignBidModifierResultH\x00\x12^\n\x16\x63\x61mpaign_budget_result\x18\x08 \x01(\x0b\x32<.google.ads.googleads.v5.services.MutateCampaignBudgetResultH\x00\x12\x64\n\x19\x63\x61mpaign_criterion_result\x18\r \x01(\x0b\x32?.google.ads.googleads.v5.services.MutateCampaignCriterionResultH\x00\x12\\\n\x15\x63\x61mpaign_draft_result\x18\x18 \x01(\x0b\x32;.google.ads.googleads.v5.services.MutateCampaignDraftResultH\x00\x12\x66\n\x1a\x63\x61mpaign_experiment_result\x18\x19 \x01(\x0b\x32@.google.ads.googleads.v5.services.MutateCampaignExperimentResultH\x00\x12s\n!campaign_extension_setting_result\x18\x1a \x01(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCampaignExtensionSettingResultH\x00\x12Z\n\x14\x63\x61mpaign_feed_result\x18\x1b \x01(\x0b\x32:.google.ads.googleads.v5.services.MutateCampaignFeedResultH\x00\x12\\\n\x15\x63\x61mpaign_label_result\x18\x1c \x01(\x0b\x32;.google.ads.googleads.v5.services.MutateCampaignLabelResultH\x00\x12Q\n\x0f\x63\x61mpaign_result\x18\n \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateCampaignResultH\x00\x12\x65\n\x1a\x63\x61mpaign_shared_set_result\x18\x0b \x01(\x0b\x32?.google.ads.googleads.v5.services.MutateCampaignSharedSetResultH\x00\x12\x62\n\x18\x63onversion_action_result\x18\x0c \x01(\x0b\x32>.google.ads.googleads.v5.services.MutateConversionActionResultH\x00\x12s\n!customer_extension_setting_result\x18\x1e \x01(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCustomerExtensionSettingResultH\x00\x12Z\n\x14\x63ustomer_feed_result\x18\x1f \x01(\x0b\x32:.google.ads.googleads.v5.services.MutateCustomerFeedResultH\x00\x12\\\n\x15\x63ustomer_label_result\x18 \x01(\x0b\x32;.google.ads.googleads.v5.services.MutateCustomerLabelResultH\x00\x12t\n\"customer_negative_criterion_result\x18\" \x01(\x0b\x32\x46.google.ads.googleads.v5.services.MutateCustomerNegativeCriteriaResultH\x00\x12Q\n\x0f\x63ustomer_result\x18# \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateCustomerResultH\x00\x12\x65\n\x1a\x65xtension_feed_item_result\x18$ \x01(\x0b\x32?.google.ads.googleads.v5.services.MutateExtensionFeedItemResultH\x00\x12R\n\x10\x66\x65\x65\x64_item_result\x18% \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateFeedItemResultH\x00\x12_\n\x17\x66\x65\x65\x64_item_target_result\x18& \x01(\x0b\x32<.google.ads.googleads.v5.services.MutateFeedItemTargetResultH\x00\x12X\n\x13\x66\x65\x65\x64_mapping_result\x18\' \x01(\x0b\x32\x39.google.ads.googleads.v5.services.MutateFeedMappingResultH\x00\x12I\n\x0b\x66\x65\x65\x64_result\x18( \x01(\x0b\x32\x32.google.ads.googleads.v5.services.MutateFeedResultH\x00\x12h\n\x1ckeyword_plan_ad_group_result\x18, \x01(\x0b\x32@.google.ads.googleads.v5.services.MutateKeywordPlanAdGroupResultH\x00\x12i\n\x1ckeyword_plan_campaign_result\x18- \x01(\x0b\x32\x41.google.ads.googleads.v5.services.MutateKeywordPlanCampaignResultH\x00\x12w\n$keyword_plan_ad_group_keyword_result\x18\x32 \x01(\x0b\x32G.google.ads.googleads.v5.services.MutateKeywordPlanAdGroupKeywordResultH\x00\x12x\n$keyword_plan_campaign_keyword_result\x18\x33 \x01(\x0b\x32H.google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordResultH\x00\x12Y\n\x13keyword_plan_result\x18\x30 \x01(\x0b\x32:.google.ads.googleads.v5.services.MutateKeywordPlansResultH\x00\x12K\n\x0clabel_result\x18) \x01(\x0b\x32\x33.google.ads.googleads.v5.services.MutateLabelResultH\x00\x12T\n\x11media_file_result\x18* \x01(\x0b\x32\x37.google.ads.googleads.v5.services.MutateMediaFileResultH\x00\x12\x64\n\x19remarketing_action_result\x18+ \x01(\x0b\x32?.google.ads.googleads.v5.services.MutateRemarketingActionResultH\x00\x12`\n\x17shared_criterion_result\x18\x0e \x01(\x0b\x32=.google.ads.googleads.v5.services.MutateSharedCriterionResultH\x00\x12T\n\x11shared_set_result\x18\x0f \x01(\x0b\x32\x37.google.ads.googleads.v5.services.MutateSharedSetResultH\x00\x12R\n\x10user_list_result\x18\x10 \x01(\x0b\x32\x36.google.ads.googleads.v5.services.MutateUserListResultH\x00\x42\n\n\x08response2\xc2\x05\n\x10GoogleAdsService\x12\xcc\x01\n\x06Search\x12\x38.google.ads.googleads.v5.services.SearchGoogleAdsRequest\x1a\x39.google.ads.googleads.v5.services.SearchGoogleAdsResponse\"M\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/googleAds:search:\x01*\xda\x41\x11\x63ustomer_id,query\x12\xe6\x01\n\x0cSearchStream\x12>.google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest\x1a?.google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse\"S\x82\xd3\xe4\x93\x02\x39\"4/v5/customers/{customer_id=*}/googleAds:searchStream:\x01*\xda\x41\x11\x63ustomer_id,query0\x01\x12\xd8\x01\n\x06Mutate\x12\x38.google.ads.googleads.v5.services.MutateGoogleAdsRequest\x1a\x39.google.ads.googleads.v5.services.MutateGoogleAdsResponse\"Y\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/googleAds:mutate:\x01*\xda\x41\x1d\x63ustomer_id,mutate_operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15GoogleAdsServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_metrics__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_segments__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_summary__row__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__link__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_age__range__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_asset__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__keyword__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_paid__organic__search__term__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__parameter__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_asset__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__keyword__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_SEARCHGOOGLEADSREQUEST = _descriptor.Descriptor( + name='SearchGoogleAdsRequest', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='query', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.query', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.page_token', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.page_size', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.validate_only', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='return_total_results_count', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.return_total_results_count', index=5, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='summary_row_setting', full_name='google.ads.googleads.v5.services.SearchGoogleAdsRequest.summary_row_setting', index=6, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10404, + serialized_end=10673, +) + + +_SEARCHGOOGLEADSRESPONSE = _descriptor.Descriptor( + name='SearchGoogleAdsResponse', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_results_count', full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse.total_results_count', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_mask', full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse.field_mask', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='summary_row', full_name='google.ads.googleads.v5.services.SearchGoogleAdsResponse.summary_row', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10676, + serialized_end=10937, +) + + +_SEARCHGOOGLEADSSTREAMREQUEST = _descriptor.Descriptor( + name='SearchGoogleAdsStreamRequest', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='query', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest.query', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='summary_row_setting', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest.summary_row_setting', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10940, + serialized_end=11117, +) + + +_SEARCHGOOGLEADSSTREAMRESPONSE = _descriptor.Descriptor( + name='SearchGoogleAdsStreamResponse', + full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='field_mask', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse.field_mask', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='summary_row', full_name='google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse.summary_row', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11120, + serialized_end=11333, +) + + +_GOOGLEADSROW = _descriptor.Descriptor( + name='GoogleAdsRow', + full_name='google.ads.googleads.v5.services.GoogleAdsRow', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='account_budget', full_name='google.ads.googleads.v5.services.GoogleAdsRow.account_budget', index=0, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_budget_proposal', full_name='google.ads.googleads.v5.services.GoogleAdsRow.account_budget_proposal', index=1, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_link', full_name='google.ads.googleads.v5.services.GoogleAdsRow.account_link', index=2, + number=143, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group', index=3, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_ad', index=4, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad_asset_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_ad_asset_view', index=5, + number=131, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad_label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_ad_label', index=6, + number=120, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_audience_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_audience_view', index=7, + number=57, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_bid_modifier', index=8, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_criterion', index=9, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_criterion_label', index=10, + number=121, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_simulation', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_criterion_simulation', index=11, + number=110, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_extension_setting', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_extension_setting', index=12, + number=112, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_feed', index=13, + number=67, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_label', index=14, + number=115, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_simulation', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_group_simulation', index=15, + number=107, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_parameter', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_parameter', index=16, + number=130, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='age_range_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.age_range_view', index=17, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_schedule_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.ad_schedule_view', index=18, + number=89, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='domain_category', full_name='google.ads.googleads.v5.services.GoogleAdsRow.domain_category', index=19, + number=91, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset', full_name='google.ads.googleads.v5.services.GoogleAdsRow.asset', index=20, + number=105, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='batch_job', full_name='google.ads.googleads.v5.services.GoogleAdsRow.batch_job', index=21, + number=139, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy', full_name='google.ads.googleads.v5.services.GoogleAdsRow.bidding_strategy', index=22, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='billing_setup', full_name='google.ads.googleads.v5.services.GoogleAdsRow.billing_setup', index=23, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_budget', index=24, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign', index=25, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_asset', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_asset', index=26, + number=142, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_audience_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_audience_view', index=27, + number=69, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_bid_modifier', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_bid_modifier', index=28, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_criterion', index=29, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion_simulation', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_criterion_simulation', index=30, + number=111, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_draft', index=31, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_experiment', index=32, + number=84, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_extension_setting', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_extension_setting', index=33, + number=113, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_feed', index=34, + number=63, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_label', index=35, + number=108, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_shared_set', full_name='google.ads.googleads.v5.services.GoogleAdsRow.campaign_shared_set', index=36, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='carrier_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.carrier_constant', index=37, + number=66, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='change_status', full_name='google.ads.googleads.v5.services.GoogleAdsRow.change_status', index=38, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action', full_name='google.ads.googleads.v5.services.GoogleAdsRow.conversion_action', index=39, + number=103, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='click_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.click_view', index=40, + number=122, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.currency_constant', index=41, + number=134, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_interest', full_name='google.ads.googleads.v5.services.GoogleAdsRow.custom_interest', index=42, + number=104, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer', index=43, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_manager_link', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_manager_link', index=44, + number=61, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_client_link', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_client_link', index=45, + number=62, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_client', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_client', index=46, + number=70, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_extension_setting', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_extension_setting', index=47, + number=114, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_feed', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_feed', index=48, + number=64, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_label', index=49, + number=124, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_negative_criterion', full_name='google.ads.googleads.v5.services.GoogleAdsRow.customer_negative_criterion', index=50, + number=88, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='detail_placement_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.detail_placement_view', index=51, + number=118, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='display_keyword_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.display_keyword_view', index=52, + number=47, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='distance_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.distance_view', index=53, + number=132, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dynamic_search_ads_search_term_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.dynamic_search_ads_search_term_view', index=54, + number=106, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='expanded_landing_page_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.expanded_landing_page_view', index=55, + number=128, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_item', full_name='google.ads.googleads.v5.services.GoogleAdsRow.extension_feed_item', index=56, + number=85, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed', full_name='google.ads.googleads.v5.services.GoogleAdsRow.feed', index=57, + number=46, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item', full_name='google.ads.googleads.v5.services.GoogleAdsRow.feed_item', index=58, + number=50, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target', full_name='google.ads.googleads.v5.services.GoogleAdsRow.feed_item_target', index=59, + number=116, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_mapping', full_name='google.ads.googleads.v5.services.GoogleAdsRow.feed_mapping', index=60, + number=58, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_placeholder_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.feed_placeholder_view', index=61, + number=97, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='gender_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.gender_view', index=62, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.geo_target_constant', index=63, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geographic_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.geographic_view', index=64, + number=125, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='group_placement_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.group_placement_view', index=65, + number=119, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_group_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.hotel_group_view', index=66, + number=51, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hotel_performance_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.hotel_performance_view', index=67, + number=71, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='income_range_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.income_range_view', index=68, + number=138, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_view', index=69, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_plan', index=70, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_plan_campaign', index=71, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_keyword', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_plan_campaign_keyword', index=72, + number=140, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_plan_ad_group', index=73, + number=35, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_keyword', full_name='google.ads.googleads.v5.services.GoogleAdsRow.keyword_plan_ad_group_keyword', index=74, + number=141, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='google.ads.googleads.v5.services.GoogleAdsRow.label', index=75, + number=52, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='landing_page_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.landing_page_view', index=76, + number=126, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.language_constant', index=77, + number=55, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='location_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.location_view', index=78, + number=123, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='managed_placement_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.managed_placement_view', index=79, + number=53, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file', full_name='google.ads.googleads.v5.services.GoogleAdsRow.media_file', index=80, + number=90, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_app_category_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.mobile_app_category_constant', index=81, + number=87, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mobile_device_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.mobile_device_constant', index=82, + number=98, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='offline_user_data_job', full_name='google.ads.googleads.v5.services.GoogleAdsRow.offline_user_data_job', index=83, + number=137, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operating_system_version_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.operating_system_version_constant', index=84, + number=86, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='paid_organic_search_term_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.paid_organic_search_term_view', index=85, + number=129, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parental_status_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.parental_status_view', index=86, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_bidding_category_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.product_bidding_category_constant', index=87, + number=109, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product_group_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.product_group_view', index=88, + number=54, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='recommendation', full_name='google.ads.googleads.v5.services.GoogleAdsRow.recommendation', index=89, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='search_term_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.search_term_view', index=90, + number=68, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_criterion', full_name='google.ads.googleads.v5.services.GoogleAdsRow.shared_criterion', index=91, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set', full_name='google.ads.googleads.v5.services.GoogleAdsRow.shared_set', index=92, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shopping_performance_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.shopping_performance_view', index=93, + number=117, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='third_party_app_analytics_link', full_name='google.ads.googleads.v5.services.GoogleAdsRow.third_party_app_analytics_link', index=94, + number=144, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='topic_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.topic_view', index=95, + number=44, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_interest', full_name='google.ads.googleads.v5.services.GoogleAdsRow.user_interest', index=96, + number=59, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list', full_name='google.ads.googleads.v5.services.GoogleAdsRow.user_list', index=97, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_location_view', full_name='google.ads.googleads.v5.services.GoogleAdsRow.user_location_view', index=98, + number=135, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remarketing_action', full_name='google.ads.googleads.v5.services.GoogleAdsRow.remarketing_action', index=99, + number=60, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='topic_constant', full_name='google.ads.googleads.v5.services.GoogleAdsRow.topic_constant', index=100, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='video', full_name='google.ads.googleads.v5.services.GoogleAdsRow.video', index=101, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='metrics', full_name='google.ads.googleads.v5.services.GoogleAdsRow.metrics', index=102, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='segments', full_name='google.ads.googleads.v5.services.GoogleAdsRow.segments', index=103, + number=102, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11336, + serialized_end=19670, +) + + +_MUTATEGOOGLEADSREQUEST = _descriptor.Descriptor( + name='MutateGoogleAdsRequest', + full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mutate_operations', full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest.mutate_operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateGoogleAdsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=19673, + serialized_end=19961, +) + + +_MUTATEGOOGLEADSRESPONSE = _descriptor.Descriptor( + name='MutateGoogleAdsResponse', + full_name='google.ads.googleads.v5.services.MutateGoogleAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateGoogleAdsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mutate_operation_responses', full_name='google.ads.googleads.v5.services.MutateGoogleAdsResponse.mutate_operation_responses', index=1, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=19964, + serialized_end=20135, +) + + +_MUTATEOPERATION = _descriptor.Descriptor( + name='MutateOperation', + full_name='google.ads.googleads.v5.services.MutateOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group_ad_label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_ad_label_operation', index=0, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_ad_operation', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_bid_modifier_operation', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_criterion_label_operation', index=3, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_criterion_operation', index=4, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_extension_setting_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_extension_setting_operation', index=5, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_feed_operation', index=6, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_label_operation', index=7, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_group_operation', index=8, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_operation', index=9, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_parameter_operation', full_name='google.ads.googleads.v5.services.MutateOperation.ad_parameter_operation', index=10, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_operation', full_name='google.ads.googleads.v5.services.MutateOperation.asset_operation', index=11, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy_operation', full_name='google.ads.googleads.v5.services.MutateOperation.bidding_strategy_operation', index=12, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_asset_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_asset_operation', index=13, + number=52, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_bid_modifier_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_bid_modifier_operation', index=14, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_budget_operation', index=15, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_criterion_operation', index=16, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_draft_operation', index=17, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_experiment_operation', index=18, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_extension_setting_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_extension_setting_operation', index=19, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_feed_operation', index=20, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_label_operation', index=21, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_operation', index=22, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_shared_set_operation', full_name='google.ads.googleads.v5.services.MutateOperation.campaign_shared_set_operation', index=23, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action_operation', full_name='google.ads.googleads.v5.services.MutateOperation.conversion_action_operation', index=24, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_extension_setting_operation', full_name='google.ads.googleads.v5.services.MutateOperation.customer_extension_setting_operation', index=25, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_feed_operation', full_name='google.ads.googleads.v5.services.MutateOperation.customer_feed_operation', index=26, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.customer_label_operation', index=27, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_negative_criterion_operation', full_name='google.ads.googleads.v5.services.MutateOperation.customer_negative_criterion_operation', index=28, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_operation', full_name='google.ads.googleads.v5.services.MutateOperation.customer_operation', index=29, + number=35, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_item_operation', full_name='google.ads.googleads.v5.services.MutateOperation.extension_feed_item_operation', index=30, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_operation', full_name='google.ads.googleads.v5.services.MutateOperation.feed_item_operation', index=31, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target_operation', full_name='google.ads.googleads.v5.services.MutateOperation.feed_item_target_operation', index=32, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_mapping_operation', full_name='google.ads.googleads.v5.services.MutateOperation.feed_mapping_operation', index=33, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_operation', full_name='google.ads.googleads.v5.services.MutateOperation.feed_operation', index=34, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_operation', full_name='google.ads.googleads.v5.services.MutateOperation.keyword_plan_ad_group_operation', index=35, + number=44, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_keyword_operation', full_name='google.ads.googleads.v5.services.MutateOperation.keyword_plan_ad_group_keyword_operation', index=36, + number=50, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_keyword_operation', full_name='google.ads.googleads.v5.services.MutateOperation.keyword_plan_campaign_keyword_operation', index=37, + number=51, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_operation', full_name='google.ads.googleads.v5.services.MutateOperation.keyword_plan_campaign_operation', index=38, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_operation', full_name='google.ads.googleads.v5.services.MutateOperation.keyword_plan_operation', index=39, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label_operation', full_name='google.ads.googleads.v5.services.MutateOperation.label_operation', index=40, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file_operation', full_name='google.ads.googleads.v5.services.MutateOperation.media_file_operation', index=41, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remarketing_action_operation', full_name='google.ads.googleads.v5.services.MutateOperation.remarketing_action_operation', index=42, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_criterion_operation', full_name='google.ads.googleads.v5.services.MutateOperation.shared_criterion_operation', index=43, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set_operation', full_name='google.ads.googleads.v5.services.MutateOperation.shared_set_operation', index=44, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list_operation', full_name='google.ads.googleads.v5.services.MutateOperation.user_list_operation', index=45, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=20138, + serialized_end=24609, +) + + +_MUTATEOPERATIONRESPONSE = _descriptor.Descriptor( + name='MutateOperationResponse', + full_name='google.ads.googleads.v5.services.MutateOperationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group_ad_label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_ad_label_result', index=0, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_ad_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_ad_result', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_bid_modifier_result', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_criterion_label_result', index=3, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_criterion_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_criterion_result', index=4, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_extension_setting_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_extension_setting_result', index=5, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_feed_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_feed_result', index=6, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_label_result', index=7, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_group_result', index=8, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_parameter_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_parameter_result', index=9, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.ad_result', index=10, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.asset_result', index=11, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='bidding_strategy_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.bidding_strategy_result', index=12, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_asset_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_asset_result', index=13, + number=52, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_bid_modifier_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_bid_modifier_result', index=14, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_budget_result', index=15, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_criterion_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_criterion_result', index=16, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_draft_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_draft_result', index=17, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_experiment_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_experiment_result', index=18, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_extension_setting_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_extension_setting_result', index=19, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_feed_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_feed_result', index=20, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_label_result', index=21, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_result', index=22, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_shared_set_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.campaign_shared_set_result', index=23, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='conversion_action_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.conversion_action_result', index=24, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_extension_setting_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.customer_extension_setting_result', index=25, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_feed_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.customer_feed_result', index=26, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.customer_label_result', index=27, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_negative_criterion_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.customer_negative_criterion_result', index=28, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.customer_result', index=29, + number=35, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extension_feed_item_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.extension_feed_item_result', index=30, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.feed_item_result', index=31, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_item_target_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.feed_item_target_result', index=32, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_mapping_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.feed_mapping_result', index=33, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feed_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.feed_result', index=34, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.keyword_plan_ad_group_result', index=35, + number=44, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.keyword_plan_campaign_result', index=36, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_keyword_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.keyword_plan_ad_group_keyword_result', index=37, + number=50, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_campaign_keyword_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.keyword_plan_campaign_keyword_result', index=38, + number=51, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.keyword_plan_result', index=39, + number=48, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.label_result', index=40, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.media_file_result', index=41, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remarketing_action_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.remarketing_action_result', index=42, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_criterion_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.shared_criterion_result', index=43, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.shared_set_result', index=44, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_list_result', full_name='google.ads.googleads.v5.services.MutateOperationResponse.user_list_result', index=45, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='response', full_name='google.ads.googleads.v5.services.MutateOperationResponse.response', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=24612, + serialized_end=29090, +) + +_SEARCHGOOGLEADSREQUEST.fields_by_name['summary_row_setting'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_summary__row__setting__pb2._SUMMARYROWSETTINGENUM_SUMMARYROWSETTING +_SEARCHGOOGLEADSRESPONSE.fields_by_name['results'].message_type = _GOOGLEADSROW +_SEARCHGOOGLEADSRESPONSE.fields_by_name['field_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_SEARCHGOOGLEADSRESPONSE.fields_by_name['summary_row'].message_type = _GOOGLEADSROW +_SEARCHGOOGLEADSSTREAMREQUEST.fields_by_name['summary_row_setting'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_summary__row__setting__pb2._SUMMARYROWSETTINGENUM_SUMMARYROWSETTING +_SEARCHGOOGLEADSSTREAMRESPONSE.fields_by_name['results'].message_type = _GOOGLEADSROW +_SEARCHGOOGLEADSSTREAMRESPONSE.fields_by_name['field_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_SEARCHGOOGLEADSSTREAMRESPONSE.fields_by_name['summary_row'].message_type = _GOOGLEADSROW +_GOOGLEADSROW.fields_by_name['account_budget'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__pb2._ACCOUNTBUDGET +_GOOGLEADSROW.fields_by_name['account_budget_proposal'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__budget__proposal__pb2._ACCOUNTBUDGETPROPOSAL +_GOOGLEADSROW.fields_by_name['account_link'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_account__link__pb2._ACCOUNTLINK +_GOOGLEADSROW.fields_by_name['ad_group'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__pb2._ADGROUP +_GOOGLEADSROW.fields_by_name['ad_group_ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_GOOGLEADSROW.fields_by_name['ad_group_ad_asset_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__asset__view__pb2._ADGROUPADASSETVIEW +_GOOGLEADSROW.fields_by_name['ad_group_ad_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__ad__label__pb2._ADGROUPADLABEL +_GOOGLEADSROW.fields_by_name['ad_group_audience_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__audience__view__pb2._ADGROUPAUDIENCEVIEW +_GOOGLEADSROW.fields_by_name['ad_group_bid_modifier'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_GOOGLEADSROW.fields_by_name['ad_group_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_GOOGLEADSROW.fields_by_name['ad_group_criterion_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__label__pb2._ADGROUPCRITERIONLABEL +_GOOGLEADSROW.fields_by_name['ad_group_criterion_simulation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__criterion__simulation__pb2._ADGROUPCRITERIONSIMULATION +_GOOGLEADSROW.fields_by_name['ad_group_extension_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__extension__setting__pb2._ADGROUPEXTENSIONSETTING +_GOOGLEADSROW.fields_by_name['ad_group_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__feed__pb2._ADGROUPFEED +_GOOGLEADSROW.fields_by_name['ad_group_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__label__pb2._ADGROUPLABEL +_GOOGLEADSROW.fields_by_name['ad_group_simulation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__group__simulation__pb2._ADGROUPSIMULATION +_GOOGLEADSROW.fields_by_name['ad_parameter'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__parameter__pb2._ADPARAMETER +_GOOGLEADSROW.fields_by_name['age_range_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_age__range__view__pb2._AGERANGEVIEW +_GOOGLEADSROW.fields_by_name['ad_schedule_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__schedule__view__pb2._ADSCHEDULEVIEW +_GOOGLEADSROW.fields_by_name['domain_category'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_domain__category__pb2._DOMAINCATEGORY +_GOOGLEADSROW.fields_by_name['asset'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_asset__pb2._ASSET +_GOOGLEADSROW.fields_by_name['batch_job'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_batch__job__pb2._BATCHJOB +_GOOGLEADSROW.fields_by_name['bidding_strategy'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_GOOGLEADSROW.fields_by_name['billing_setup'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_billing__setup__pb2._BILLINGSETUP +_GOOGLEADSROW.fields_by_name['campaign_budget'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_GOOGLEADSROW.fields_by_name['campaign'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_GOOGLEADSROW.fields_by_name['campaign_asset'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__asset__pb2._CAMPAIGNASSET +_GOOGLEADSROW.fields_by_name['campaign_audience_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__audience__view__pb2._CAMPAIGNAUDIENCEVIEW +_GOOGLEADSROW.fields_by_name['campaign_bid_modifier'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__bid__modifier__pb2._CAMPAIGNBIDMODIFIER +_GOOGLEADSROW.fields_by_name['campaign_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_GOOGLEADSROW.fields_by_name['campaign_criterion_simulation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__criterion__simulation__pb2._CAMPAIGNCRITERIONSIMULATION +_GOOGLEADSROW.fields_by_name['campaign_draft'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__draft__pb2._CAMPAIGNDRAFT +_GOOGLEADSROW.fields_by_name['campaign_experiment'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__experiment__pb2._CAMPAIGNEXPERIMENT +_GOOGLEADSROW.fields_by_name['campaign_extension_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__extension__setting__pb2._CAMPAIGNEXTENSIONSETTING +_GOOGLEADSROW.fields_by_name['campaign_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__feed__pb2._CAMPAIGNFEED +_GOOGLEADSROW.fields_by_name['campaign_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__label__pb2._CAMPAIGNLABEL +_GOOGLEADSROW.fields_by_name['campaign_shared_set'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_campaign__shared__set__pb2._CAMPAIGNSHAREDSET +_GOOGLEADSROW.fields_by_name['carrier_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_carrier__constant__pb2._CARRIERCONSTANT +_GOOGLEADSROW.fields_by_name['change_status'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_change__status__pb2._CHANGESTATUS +_GOOGLEADSROW.fields_by_name['conversion_action'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_conversion__action__pb2._CONVERSIONACTION +_GOOGLEADSROW.fields_by_name['click_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_click__view__pb2._CLICKVIEW +_GOOGLEADSROW.fields_by_name['currency_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_currency__constant__pb2._CURRENCYCONSTANT +_GOOGLEADSROW.fields_by_name['custom_interest'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_custom__interest__pb2._CUSTOMINTEREST +_GOOGLEADSROW.fields_by_name['customer'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER +_GOOGLEADSROW.fields_by_name['customer_manager_link'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__manager__link__pb2._CUSTOMERMANAGERLINK +_GOOGLEADSROW.fields_by_name['customer_client_link'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__link__pb2._CUSTOMERCLIENTLINK +_GOOGLEADSROW.fields_by_name['customer_client'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__client__pb2._CUSTOMERCLIENT +_GOOGLEADSROW.fields_by_name['customer_extension_setting'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__extension__setting__pb2._CUSTOMEREXTENSIONSETTING +_GOOGLEADSROW.fields_by_name['customer_feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__feed__pb2._CUSTOMERFEED +_GOOGLEADSROW.fields_by_name['customer_label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__label__pb2._CUSTOMERLABEL +_GOOGLEADSROW.fields_by_name['customer_negative_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_customer__negative__criterion__pb2._CUSTOMERNEGATIVECRITERION +_GOOGLEADSROW.fields_by_name['detail_placement_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_detail__placement__view__pb2._DETAILPLACEMENTVIEW +_GOOGLEADSROW.fields_by_name['display_keyword_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_display__keyword__view__pb2._DISPLAYKEYWORDVIEW +_GOOGLEADSROW.fields_by_name['distance_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_distance__view__pb2._DISTANCEVIEW +_GOOGLEADSROW.fields_by_name['dynamic_search_ads_search_term_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_dynamic__search__ads__search__term__view__pb2._DYNAMICSEARCHADSSEARCHTERMVIEW +_GOOGLEADSROW.fields_by_name['expanded_landing_page_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_expanded__landing__page__view__pb2._EXPANDEDLANDINGPAGEVIEW +_GOOGLEADSROW.fields_by_name['extension_feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_extension__feed__item__pb2._EXTENSIONFEEDITEM +_GOOGLEADSROW.fields_by_name['feed'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__pb2._FEED +_GOOGLEADSROW.fields_by_name['feed_item'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__pb2._FEEDITEM +_GOOGLEADSROW.fields_by_name['feed_item_target'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__item__target__pb2._FEEDITEMTARGET +_GOOGLEADSROW.fields_by_name['feed_mapping'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__mapping__pb2._FEEDMAPPING +_GOOGLEADSROW.fields_by_name['feed_placeholder_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_feed__placeholder__view__pb2._FEEDPLACEHOLDERVIEW +_GOOGLEADSROW.fields_by_name['gender_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_gender__view__pb2._GENDERVIEW +_GOOGLEADSROW.fields_by_name['geo_target_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT +_GOOGLEADSROW.fields_by_name['geographic_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_geographic__view__pb2._GEOGRAPHICVIEW +_GOOGLEADSROW.fields_by_name['group_placement_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2._GROUPPLACEMENTVIEW +_GOOGLEADSROW.fields_by_name['hotel_group_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2._HOTELGROUPVIEW +_GOOGLEADSROW.fields_by_name['hotel_performance_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2._HOTELPERFORMANCEVIEW +_GOOGLEADSROW.fields_by_name['income_range_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2._INCOMERANGEVIEW +_GOOGLEADSROW.fields_by_name['keyword_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2._KEYWORDVIEW +_GOOGLEADSROW.fields_by_name['keyword_plan'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2._KEYWORDPLAN +_GOOGLEADSROW.fields_by_name['keyword_plan_campaign'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2._KEYWORDPLANCAMPAIGN +_GOOGLEADSROW.fields_by_name['keyword_plan_campaign_keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2._KEYWORDPLANCAMPAIGNKEYWORD +_GOOGLEADSROW.fields_by_name['keyword_plan_ad_group'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2._KEYWORDPLANADGROUP +_GOOGLEADSROW.fields_by_name['keyword_plan_ad_group_keyword'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__keyword__pb2._KEYWORDPLANADGROUPKEYWORD +_GOOGLEADSROW.fields_by_name['label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2._LABEL +_GOOGLEADSROW.fields_by_name['landing_page_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2._LANDINGPAGEVIEW +_GOOGLEADSROW.fields_by_name['language_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2._LANGUAGECONSTANT +_GOOGLEADSROW.fields_by_name['location_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2._LOCATIONVIEW +_GOOGLEADSROW.fields_by_name['managed_placement_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2._MANAGEDPLACEMENTVIEW +_GOOGLEADSROW.fields_by_name['media_file'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2._MEDIAFILE +_GOOGLEADSROW.fields_by_name['mobile_app_category_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2._MOBILEAPPCATEGORYCONSTANT +_GOOGLEADSROW.fields_by_name['mobile_device_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2._MOBILEDEVICECONSTANT +_GOOGLEADSROW.fields_by_name['offline_user_data_job'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2._OFFLINEUSERDATAJOB +_GOOGLEADSROW.fields_by_name['operating_system_version_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2._OPERATINGSYSTEMVERSIONCONSTANT +_GOOGLEADSROW.fields_by_name['paid_organic_search_term_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_paid__organic__search__term__view__pb2._PAIDORGANICSEARCHTERMVIEW +_GOOGLEADSROW.fields_by_name['parental_status_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2._PARENTALSTATUSVIEW +_GOOGLEADSROW.fields_by_name['product_bidding_category_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2._PRODUCTBIDDINGCATEGORYCONSTANT +_GOOGLEADSROW.fields_by_name['product_group_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2._PRODUCTGROUPVIEW +_GOOGLEADSROW.fields_by_name['recommendation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2._RECOMMENDATION +_GOOGLEADSROW.fields_by_name['search_term_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2._SEARCHTERMVIEW +_GOOGLEADSROW.fields_by_name['shared_criterion'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2._SHAREDCRITERION +_GOOGLEADSROW.fields_by_name['shared_set'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2._SHAREDSET +_GOOGLEADSROW.fields_by_name['shopping_performance_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2._SHOPPINGPERFORMANCEVIEW +_GOOGLEADSROW.fields_by_name['third_party_app_analytics_link'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2._THIRDPARTYAPPANALYTICSLINK +_GOOGLEADSROW.fields_by_name['topic_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__view__pb2._TOPICVIEW +_GOOGLEADSROW.fields_by_name['user_interest'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2._USERINTEREST +_GOOGLEADSROW.fields_by_name['user_list'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2._USERLIST +_GOOGLEADSROW.fields_by_name['user_location_view'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2._USERLOCATIONVIEW +_GOOGLEADSROW.fields_by_name['remarketing_action'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2._REMARKETINGACTION +_GOOGLEADSROW.fields_by_name['topic_constant'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__constant__pb2._TOPICCONSTANT +_GOOGLEADSROW.fields_by_name['video'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2._VIDEO +_GOOGLEADSROW.fields_by_name['metrics'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_metrics__pb2._METRICS +_GOOGLEADSROW.fields_by_name['segments'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_segments__pb2._SEGMENTS +_MUTATEGOOGLEADSREQUEST.fields_by_name['mutate_operations'].message_type = _MUTATEOPERATION +_MUTATEGOOGLEADSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_MUTATEGOOGLEADSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEGOOGLEADSRESPONSE.fields_by_name['mutate_operation_responses'].message_type = _MUTATEOPERATIONRESPONSE +_MUTATEOPERATION.fields_by_name['ad_group_ad_label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2._ADGROUPADLABELOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_ad_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2._ADGROUPADOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_bid_modifier_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2._ADGROUPBIDMODIFIEROPERATION +_MUTATEOPERATION.fields_by_name['ad_group_criterion_label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2._ADGROUPCRITERIONLABELOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_criterion_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2._ADGROUPCRITERIONOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_extension_setting_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2._ADGROUPEXTENSIONSETTINGOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_feed_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2._ADGROUPFEEDOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__label__service__pb2._ADGROUPLABELOPERATION +_MUTATEOPERATION.fields_by_name['ad_group_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__service__pb2._ADGROUPOPERATION +_MUTATEOPERATION.fields_by_name['ad_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2._ADOPERATION +_MUTATEOPERATION.fields_by_name['ad_parameter_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__parameter__service__pb2._ADPARAMETEROPERATION +_MUTATEOPERATION.fields_by_name['asset_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_asset__service__pb2._ASSETOPERATION +_MUTATEOPERATION.fields_by_name['bidding_strategy_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2._BIDDINGSTRATEGYOPERATION +_MUTATEOPERATION.fields_by_name['campaign_asset_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2._CAMPAIGNASSETOPERATION +_MUTATEOPERATION.fields_by_name['campaign_bid_modifier_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2._CAMPAIGNBIDMODIFIEROPERATION +_MUTATEOPERATION.fields_by_name['campaign_budget_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2._CAMPAIGNBUDGETOPERATION +_MUTATEOPERATION.fields_by_name['campaign_criterion_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2._CAMPAIGNCRITERIONOPERATION +_MUTATEOPERATION.fields_by_name['campaign_draft_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2._CAMPAIGNDRAFTOPERATION +_MUTATEOPERATION.fields_by_name['campaign_experiment_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2._CAMPAIGNEXPERIMENTOPERATION +_MUTATEOPERATION.fields_by_name['campaign_extension_setting_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2._CAMPAIGNEXTENSIONSETTINGOPERATION +_MUTATEOPERATION.fields_by_name['campaign_feed_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2._CAMPAIGNFEEDOPERATION +_MUTATEOPERATION.fields_by_name['campaign_label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2._CAMPAIGNLABELOPERATION +_MUTATEOPERATION.fields_by_name['campaign_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2._CAMPAIGNOPERATION +_MUTATEOPERATION.fields_by_name['campaign_shared_set_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2._CAMPAIGNSHAREDSETOPERATION +_MUTATEOPERATION.fields_by_name['conversion_action_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2._CONVERSIONACTIONOPERATION +_MUTATEOPERATION.fields_by_name['customer_extension_setting_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2._CUSTOMEREXTENSIONSETTINGOPERATION +_MUTATEOPERATION.fields_by_name['customer_feed_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2._CUSTOMERFEEDOPERATION +_MUTATEOPERATION.fields_by_name['customer_label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2._CUSTOMERLABELOPERATION +_MUTATEOPERATION.fields_by_name['customer_negative_criterion_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2._CUSTOMERNEGATIVECRITERIONOPERATION +_MUTATEOPERATION.fields_by_name['customer_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2._CUSTOMEROPERATION +_MUTATEOPERATION.fields_by_name['extension_feed_item_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2._EXTENSIONFEEDITEMOPERATION +_MUTATEOPERATION.fields_by_name['feed_item_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2._FEEDITEMOPERATION +_MUTATEOPERATION.fields_by_name['feed_item_target_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2._FEEDITEMTARGETOPERATION +_MUTATEOPERATION.fields_by_name['feed_mapping_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2._FEEDMAPPINGOPERATION +_MUTATEOPERATION.fields_by_name['feed_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2._FEEDOPERATION +_MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2._KEYWORDPLANADGROUPOPERATION +_MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_keyword_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__keyword__service__pb2._KEYWORDPLANADGROUPKEYWORDOPERATION +_MUTATEOPERATION.fields_by_name['keyword_plan_campaign_keyword_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2._KEYWORDPLANCAMPAIGNKEYWORDOPERATION +_MUTATEOPERATION.fields_by_name['keyword_plan_campaign_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2._KEYWORDPLANCAMPAIGNOPERATION +_MUTATEOPERATION.fields_by_name['keyword_plan_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2._KEYWORDPLANOPERATION +_MUTATEOPERATION.fields_by_name['label_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2._LABELOPERATION +_MUTATEOPERATION.fields_by_name['media_file_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2._MEDIAFILEOPERATION +_MUTATEOPERATION.fields_by_name['remarketing_action_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2._REMARKETINGACTIONOPERATION +_MUTATEOPERATION.fields_by_name['shared_criterion_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2._SHAREDCRITERIONOPERATION +_MUTATEOPERATION.fields_by_name['shared_set_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2._SHAREDSETOPERATION +_MUTATEOPERATION.fields_by_name['user_list_operation'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2._USERLISTOPERATION +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_ad_label_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_ad_label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_ad_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_ad_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_bid_modifier_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_bid_modifier_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_criterion_label_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_criterion_label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_criterion_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_criterion_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_extension_setting_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_extension_setting_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_feed_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_feed_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_label_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_group_operation']) +_MUTATEOPERATION.fields_by_name['ad_group_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_operation']) +_MUTATEOPERATION.fields_by_name['ad_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['ad_parameter_operation']) +_MUTATEOPERATION.fields_by_name['ad_parameter_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['asset_operation']) +_MUTATEOPERATION.fields_by_name['asset_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['bidding_strategy_operation']) +_MUTATEOPERATION.fields_by_name['bidding_strategy_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_asset_operation']) +_MUTATEOPERATION.fields_by_name['campaign_asset_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_bid_modifier_operation']) +_MUTATEOPERATION.fields_by_name['campaign_bid_modifier_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_budget_operation']) +_MUTATEOPERATION.fields_by_name['campaign_budget_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_criterion_operation']) +_MUTATEOPERATION.fields_by_name['campaign_criterion_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_draft_operation']) +_MUTATEOPERATION.fields_by_name['campaign_draft_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_experiment_operation']) +_MUTATEOPERATION.fields_by_name['campaign_experiment_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_extension_setting_operation']) +_MUTATEOPERATION.fields_by_name['campaign_extension_setting_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_feed_operation']) +_MUTATEOPERATION.fields_by_name['campaign_feed_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_label_operation']) +_MUTATEOPERATION.fields_by_name['campaign_label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_operation']) +_MUTATEOPERATION.fields_by_name['campaign_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['campaign_shared_set_operation']) +_MUTATEOPERATION.fields_by_name['campaign_shared_set_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['conversion_action_operation']) +_MUTATEOPERATION.fields_by_name['conversion_action_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['customer_extension_setting_operation']) +_MUTATEOPERATION.fields_by_name['customer_extension_setting_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['customer_feed_operation']) +_MUTATEOPERATION.fields_by_name['customer_feed_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['customer_label_operation']) +_MUTATEOPERATION.fields_by_name['customer_label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['customer_negative_criterion_operation']) +_MUTATEOPERATION.fields_by_name['customer_negative_criterion_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['customer_operation']) +_MUTATEOPERATION.fields_by_name['customer_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['extension_feed_item_operation']) +_MUTATEOPERATION.fields_by_name['extension_feed_item_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['feed_item_operation']) +_MUTATEOPERATION.fields_by_name['feed_item_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['feed_item_target_operation']) +_MUTATEOPERATION.fields_by_name['feed_item_target_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['feed_mapping_operation']) +_MUTATEOPERATION.fields_by_name['feed_mapping_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['feed_operation']) +_MUTATEOPERATION.fields_by_name['feed_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_operation']) +_MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_keyword_operation']) +_MUTATEOPERATION.fields_by_name['keyword_plan_ad_group_keyword_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['keyword_plan_campaign_keyword_operation']) +_MUTATEOPERATION.fields_by_name['keyword_plan_campaign_keyword_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['keyword_plan_campaign_operation']) +_MUTATEOPERATION.fields_by_name['keyword_plan_campaign_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['keyword_plan_operation']) +_MUTATEOPERATION.fields_by_name['keyword_plan_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['label_operation']) +_MUTATEOPERATION.fields_by_name['label_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['media_file_operation']) +_MUTATEOPERATION.fields_by_name['media_file_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['remarketing_action_operation']) +_MUTATEOPERATION.fields_by_name['remarketing_action_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['shared_criterion_operation']) +_MUTATEOPERATION.fields_by_name['shared_criterion_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['shared_set_operation']) +_MUTATEOPERATION.fields_by_name['shared_set_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATION.oneofs_by_name['operation'].fields.append( + _MUTATEOPERATION.fields_by_name['user_list_operation']) +_MUTATEOPERATION.fields_by_name['user_list_operation'].containing_oneof = _MUTATEOPERATION.oneofs_by_name['operation'] +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__label__service__pb2._MUTATEADGROUPADLABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__ad__service__pb2._MUTATEADGROUPADRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_bid_modifier_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2._MUTATEADGROUPBIDMODIFIERRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__label__service__pb2._MUTATEADGROUPCRITERIONLABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__criterion__service__pb2._MUTATEADGROUPCRITERIONRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_extension_setting_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__extension__setting__service__pb2._MUTATEADGROUPEXTENSIONSETTINGRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_feed_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__feed__service__pb2._MUTATEADGROUPFEEDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__label__service__pb2._MUTATEADGROUPLABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__group__service__pb2._MUTATEADGROUPRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_parameter_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__parameter__service__pb2._MUTATEADPARAMETERRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_ad__service__pb2._MUTATEADRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['asset_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_asset__service__pb2._MUTATEASSETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['bidding_strategy_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_bidding__strategy__service__pb2._MUTATEBIDDINGSTRATEGYRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_asset_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__asset__service__pb2._MUTATECAMPAIGNASSETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_bid_modifier_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__bid__modifier__service__pb2._MUTATECAMPAIGNBIDMODIFIERRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_budget_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__budget__service__pb2._MUTATECAMPAIGNBUDGETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_criterion_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__criterion__service__pb2._MUTATECAMPAIGNCRITERIONRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_draft_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__draft__service__pb2._MUTATECAMPAIGNDRAFTRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_experiment_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__experiment__service__pb2._MUTATECAMPAIGNEXPERIMENTRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_extension_setting_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__extension__setting__service__pb2._MUTATECAMPAIGNEXTENSIONSETTINGRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_feed_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__feed__service__pb2._MUTATECAMPAIGNFEEDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__label__service__pb2._MUTATECAMPAIGNLABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__service__pb2._MUTATECAMPAIGNRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_shared_set_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_campaign__shared__set__service__pb2._MUTATECAMPAIGNSHAREDSETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['conversion_action_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_conversion__action__service__pb2._MUTATECONVERSIONACTIONRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_extension_setting_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__extension__setting__service__pb2._MUTATECUSTOMEREXTENSIONSETTINGRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_feed_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__feed__service__pb2._MUTATECUSTOMERFEEDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__label__service__pb2._MUTATECUSTOMERLABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_negative_criterion_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__negative__criterion__service__pb2._MUTATECUSTOMERNEGATIVECRITERIARESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_customer__service__pb2._MUTATECUSTOMERRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['extension_feed_item_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_extension__feed__item__service__pb2._MUTATEEXTENSIONFEEDITEMRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__service__pb2._MUTATEFEEDITEMRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_target_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__item__target__service__pb2._MUTATEFEEDITEMTARGETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_mapping_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__mapping__service__pb2._MUTATEFEEDMAPPINGRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_feed__service__pb2._MUTATEFEEDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2._MUTATEKEYWORDPLANADGROUPRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2._MUTATEKEYWORDPLANCAMPAIGNRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_keyword_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__keyword__service__pb2._MUTATEKEYWORDPLANADGROUPKEYWORDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_keyword_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2._MUTATEKEYWORDPLANCAMPAIGNKEYWORDRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2._MUTATEKEYWORDPLANSRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['label_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2._MUTATELABELRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['media_file_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2._MUTATEMEDIAFILERESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['remarketing_action_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2._MUTATEREMARKETINGACTIONRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['shared_criterion_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2._MUTATESHAREDCRITERIONRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['shared_set_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2._MUTATESHAREDSETRESULT +_MUTATEOPERATIONRESPONSE.fields_by_name['user_list_result'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2._MUTATEUSERLISTRESULT +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_ad_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_bid_modifier_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_bid_modifier_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_criterion_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_extension_setting_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_extension_setting_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_feed_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_feed_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_group_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_parameter_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_parameter_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['ad_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['ad_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['asset_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['asset_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['bidding_strategy_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['bidding_strategy_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_asset_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_asset_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_bid_modifier_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_bid_modifier_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_budget_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_budget_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_criterion_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_criterion_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_draft_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_draft_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_experiment_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_experiment_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_extension_setting_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_extension_setting_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_feed_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_feed_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['campaign_shared_set_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['campaign_shared_set_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['conversion_action_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['conversion_action_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['customer_extension_setting_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_extension_setting_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['customer_feed_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_feed_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['customer_label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['customer_negative_criterion_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_negative_criterion_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['customer_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['customer_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['extension_feed_item_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['extension_feed_item_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_target_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_item_target_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['feed_mapping_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_mapping_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['feed_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['feed_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_keyword_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_ad_group_keyword_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_keyword_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_campaign_keyword_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['keyword_plan_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['label_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['label_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['media_file_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['media_file_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['remarketing_action_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['remarketing_action_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['shared_criterion_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['shared_criterion_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['shared_set_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['shared_set_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +_MUTATEOPERATIONRESPONSE.oneofs_by_name['response'].fields.append( + _MUTATEOPERATIONRESPONSE.fields_by_name['user_list_result']) +_MUTATEOPERATIONRESPONSE.fields_by_name['user_list_result'].containing_oneof = _MUTATEOPERATIONRESPONSE.oneofs_by_name['response'] +DESCRIPTOR.message_types_by_name['SearchGoogleAdsRequest'] = _SEARCHGOOGLEADSREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsResponse'] = _SEARCHGOOGLEADSRESPONSE +DESCRIPTOR.message_types_by_name['SearchGoogleAdsStreamRequest'] = _SEARCHGOOGLEADSSTREAMREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsStreamResponse'] = _SEARCHGOOGLEADSSTREAMRESPONSE +DESCRIPTOR.message_types_by_name['GoogleAdsRow'] = _GOOGLEADSROW +DESCRIPTOR.message_types_by_name['MutateGoogleAdsRequest'] = _MUTATEGOOGLEADSREQUEST +DESCRIPTOR.message_types_by_name['MutateGoogleAdsResponse'] = _MUTATEGOOGLEADSRESPONSE +DESCRIPTOR.message_types_by_name['MutateOperation'] = _MUTATEOPERATION +DESCRIPTOR.message_types_by_name['MutateOperationResponse'] = _MUTATEOPERATIONRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SearchGoogleAdsRequest = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsRequest', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Request message for [GoogleAdsService.Search][google.ads.googleads.v5. + services.GoogleAdsService.Search]. + + Attributes: + customer_id: + Required. The ID of the customer being queried. + query: + Required. The query string. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When too + large a page is requested, the server may decide to further + limit the number of returned resources. + validate_only: + If true, the request is validated but not executed. + return_total_results_count: + If true, the total number of results that match the query + ignoring the LIMIT clause will be included in the response. + Default is false. + summary_row_setting: + Determines whether a summary row will be returned. By default, + summary row is not returned. If requested, the summary row + will be sent in a response by itself after all other query + results are returned. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsRequest) + }) +_sym_db.RegisterMessage(SearchGoogleAdsRequest) + +SearchGoogleAdsResponse = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsResponse', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Response message for [GoogleAdsService.Search][google.ads.googleads.v5 + .services.GoogleAdsService.Search]. + + Attributes: + results: + The list of rows that matched the query. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + total_results_count: + Total number of results that match the query ignoring the + LIMIT clause. + field_mask: + FieldMask that represents what fields were requested by the + user. + summary_row: + Summary row that contains summary of metrics in results. + Summary of metrics means aggregation of metrics across all + results, here aggregation could be sum, average, rate, etc. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsResponse) + }) +_sym_db.RegisterMessage(SearchGoogleAdsResponse) + +SearchGoogleAdsStreamRequest = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsStreamRequest', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSSTREAMREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Request message for [GoogleAdsService.SearchStream][google.ads.googlea + ds.v5.services.GoogleAdsService.SearchStream]. + + Attributes: + customer_id: + Required. The ID of the customer being queried. + query: + Required. The query string. + summary_row_setting: + Determines whether a summary row will be returned. By default, + summary row is not returned. If requested, the summary row + will be sent in a response by itself after all other query + results are returned. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsStreamRequest) + }) +_sym_db.RegisterMessage(SearchGoogleAdsStreamRequest) + +SearchGoogleAdsStreamResponse = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsStreamResponse', (_message.Message,), { + 'DESCRIPTOR' : _SEARCHGOOGLEADSSTREAMRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Response message for [GoogleAdsService.SearchStream][google.ads.google + ads.v5.services.GoogleAdsService.SearchStream]. + + Attributes: + results: + The list of rows that matched the query. + field_mask: + FieldMask that represents what fields were requested by the + user. + summary_row: + Summary row that contains summary of metrics in results. + Summary of metrics means aggregation of metrics across all + results, here aggregation could be sum, average, rate, etc. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SearchGoogleAdsStreamResponse) + }) +_sym_db.RegisterMessage(SearchGoogleAdsStreamResponse) + +GoogleAdsRow = _reflection.GeneratedProtocolMessageType('GoogleAdsRow', (_message.Message,), { + 'DESCRIPTOR' : _GOOGLEADSROW, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """A returned row from the query. + + Attributes: + account_budget: + The account budget in the query. + account_budget_proposal: + The account budget proposal referenced in the query. + account_link: + The AccountLink referenced in the query. + ad_group: + The ad group referenced in the query. + ad_group_ad: + The ad referenced in the query. + ad_group_ad_asset_view: + The ad group ad asset view in the query. + ad_group_ad_label: + The ad group ad label referenced in the query. + ad_group_audience_view: + The ad group audience view referenced in the query. + ad_group_bid_modifier: + The bid modifier referenced in the query. + ad_group_criterion: + The criterion referenced in the query. + ad_group_criterion_label: + The ad group criterion label referenced in the query. + ad_group_criterion_simulation: + The ad group criterion simulation referenced in the query. + ad_group_extension_setting: + The ad group extension setting referenced in the query. + ad_group_feed: + The ad group feed referenced in the query. + ad_group_label: + The ad group label referenced in the query. + ad_group_simulation: + The ad group simulation referenced in the query. + ad_parameter: + The ad parameter referenced in the query. + age_range_view: + The age range view referenced in the query. + ad_schedule_view: + The ad schedule view referenced in the query. + domain_category: + The domain category referenced in the query. + asset: + The asset referenced in the query. + batch_job: + The batch job referenced in the query. + bidding_strategy: + The bidding strategy referenced in the query. + billing_setup: + The billing setup referenced in the query. + campaign_budget: + The campaign budget referenced in the query. + campaign: + The campaign referenced in the query. + campaign_asset: + The campaign asset referenced in the query. + campaign_audience_view: + The campaign audience view referenced in the query. + campaign_bid_modifier: + The campaign bid modifier referenced in the query. + campaign_criterion: + The campaign criterion referenced in the query. + campaign_criterion_simulation: + The campaign criterion simulation referenced in the query. + campaign_draft: + The campaign draft referenced in the query. + campaign_experiment: + The campaign experiment referenced in the query. + campaign_extension_setting: + The campaign extension setting referenced in the query. + campaign_feed: + The campaign feed referenced in the query. + campaign_label: + The campaign label referenced in the query. + campaign_shared_set: + Campaign Shared Set referenced in AWQL query. + carrier_constant: + The carrier constant referenced in the query. + change_status: + The ChangeStatus referenced in the query. + conversion_action: + The conversion action referenced in the query. + click_view: + The ClickView referenced in the query. + currency_constant: + The currency constant referenced in the query. + custom_interest: + The CustomInterest referenced in the query. + customer: + The customer referenced in the query. + customer_manager_link: + The CustomerManagerLink referenced in the query. + customer_client_link: + The CustomerClientLink referenced in the query. + customer_client: + The CustomerClient referenced in the query. + customer_extension_setting: + The customer extension setting referenced in the query. + customer_feed: + The customer feed referenced in the query. + customer_label: + The customer label referenced in the query. + customer_negative_criterion: + The customer negative criterion referenced in the query. + detail_placement_view: + The detail placement view referenced in the query. + display_keyword_view: + The display keyword view referenced in the query. + distance_view: + The distance view referenced in the query. + dynamic_search_ads_search_term_view: + The dynamic search ads search term view referenced in the + query. + expanded_landing_page_view: + The expanded landing page view referenced in the query. + extension_feed_item: + The extension feed item referenced in the query. + feed: + The feed referenced in the query. + feed_item: + The feed item referenced in the query. + feed_item_target: + The feed item target referenced in the query. + feed_mapping: + The feed mapping referenced in the query. + feed_placeholder_view: + The feed placeholder view referenced in the query. + gender_view: + The gender view referenced in the query. + geo_target_constant: + The geo target constant referenced in the query. + geographic_view: + The geographic view referenced in the query. + group_placement_view: + The group placement view referenced in the query. + hotel_group_view: + The hotel group view referenced in the query. + hotel_performance_view: + The hotel performance view referenced in the query. + income_range_view: + The income range view referenced in the query. + keyword_view: + The keyword view referenced in the query. + keyword_plan: + The keyword plan referenced in the query. + keyword_plan_campaign: + The keyword plan campaign referenced in the query. + keyword_plan_campaign_keyword: + The keyword plan campaign keyword referenced in the query. + keyword_plan_ad_group: + The keyword plan ad group referenced in the query. + keyword_plan_ad_group_keyword: + The keyword plan ad group referenced in the query. + label: + The label referenced in the query. + landing_page_view: + The landing page view referenced in the query. + language_constant: + The language constant referenced in the query. + location_view: + The location view referenced in the query. + managed_placement_view: + The managed placement view referenced in the query. + media_file: + The media file referenced in the query. + mobile_app_category_constant: + The mobile app category constant referenced in the query. + mobile_device_constant: + The mobile device constant referenced in the query. + offline_user_data_job: + The offline user data job referenced in the query. + operating_system_version_constant: + The operating system version constant referenced in the query. + paid_organic_search_term_view: + The paid organic search term view referenced in the query. + parental_status_view: + The parental status view referenced in the query. + product_bidding_category_constant: + The Product Bidding Category referenced in the query. + product_group_view: + The product group view referenced in the query. + recommendation: + The recommendation referenced in the query. + search_term_view: + The search term view referenced in the query. + shared_criterion: + The shared set referenced in the query. + shared_set: + The shared set referenced in the query. + shopping_performance_view: + The shopping performance view referenced in the query. + third_party_app_analytics_link: + The AccountLink referenced in the query. + topic_view: + The topic view referenced in the query. + user_interest: + The user interest referenced in the query. + user_list: + The user list referenced in the query. + user_location_view: + The user location view referenced in the query. + remarketing_action: + The remarketing action referenced in the query. + topic_constant: + The topic constant referenced in the query. + video: + The video referenced in the query. + metrics: + The metrics. + segments: + The segments. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GoogleAdsRow) + }) +_sym_db.RegisterMessage(GoogleAdsRow) + +MutateGoogleAdsRequest = _reflection.GeneratedProtocolMessageType('MutateGoogleAdsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEGOOGLEADSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Request message for [GoogleAdsService.Mutate][google.ads.googleads.v5. + services.GoogleAdsService.Mutate]. + + Attributes: + customer_id: + Required. The ID of the customer whose resources are being + modified. + mutate_operations: + Required. The list of operations to perform on individual + resources. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. The mutable resource will only be returned if + the resource has the appropriate response field. E.g. + MutateCampaignResult.campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateGoogleAdsRequest) + }) +_sym_db.RegisterMessage(MutateGoogleAdsRequest) + +MutateGoogleAdsResponse = _reflection.GeneratedProtocolMessageType('MutateGoogleAdsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEGOOGLEADSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Response message for [GoogleAdsService.Mutate][google.ads.googleads.v5 + .services.GoogleAdsService.Mutate]. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g., auth errors), we return an RPC + level error. + mutate_operation_responses: + All responses for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateGoogleAdsResponse) + }) +_sym_db.RegisterMessage(MutateGoogleAdsResponse) + +MutateOperation = _reflection.GeneratedProtocolMessageType('MutateOperation', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a resource. + + Attributes: + operation: + The mutate operation. + ad_group_ad_label_operation: + An ad group ad label mutate operation. + ad_group_ad_operation: + An ad group ad mutate operation. + ad_group_bid_modifier_operation: + An ad group bid modifier mutate operation. + ad_group_criterion_label_operation: + An ad group criterion label mutate operation. + ad_group_criterion_operation: + An ad group criterion mutate operation. + ad_group_extension_setting_operation: + An ad group extension setting mutate operation. + ad_group_feed_operation: + An ad group feed mutate operation. + ad_group_label_operation: + An ad group label mutate operation. + ad_group_operation: + An ad group mutate operation. + ad_operation: + An ad mutate operation. + ad_parameter_operation: + An ad parameter mutate operation. + asset_operation: + An asset mutate operation. + bidding_strategy_operation: + A bidding strategy mutate operation. + campaign_asset_operation: + A campaign asset mutate operation. + campaign_bid_modifier_operation: + A campaign bid modifier mutate operation. + campaign_budget_operation: + A campaign budget mutate operation. + campaign_criterion_operation: + A campaign criterion mutate operation. + campaign_draft_operation: + A campaign draft mutate operation. + campaign_experiment_operation: + A campaign experiment mutate operation. + campaign_extension_setting_operation: + A campaign extension setting mutate operation. + campaign_feed_operation: + A campaign feed mutate operation. + campaign_label_operation: + A campaign label mutate operation. + campaign_operation: + A campaign mutate operation. + campaign_shared_set_operation: + A campaign shared set mutate operation. + conversion_action_operation: + A conversion action mutate operation. + customer_extension_setting_operation: + A customer extension setting mutate operation. + customer_feed_operation: + A customer feed mutate operation. + customer_label_operation: + A customer label mutate operation. + customer_negative_criterion_operation: + A customer negative criterion mutate operation. + customer_operation: + A customer mutate operation. + extension_feed_item_operation: + An extension feed item mutate operation. + feed_item_operation: + A feed item mutate operation. + feed_item_target_operation: + A feed item target mutate operation. + feed_mapping_operation: + A feed mapping mutate operation. + feed_operation: + A feed mutate operation. + keyword_plan_ad_group_operation: + A keyword plan ad group operation. + keyword_plan_ad_group_keyword_operation: + A keyword plan ad group keyword operation. + keyword_plan_campaign_keyword_operation: + A keyword plan campaign keyword operation. + keyword_plan_campaign_operation: + A keyword plan campaign operation. + keyword_plan_operation: + A keyword plan operation. + label_operation: + A label mutate operation. + media_file_operation: + A media file mutate operation. + remarketing_action_operation: + A remarketing action mutate operation. + shared_criterion_operation: + A shared criterion mutate operation. + shared_set_operation: + A shared set mutate operation. + user_list_operation: + A user list mutate operation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateOperation) + }) +_sym_db.RegisterMessage(MutateOperation) + +MutateOperationResponse = _reflection.GeneratedProtocolMessageType('MutateOperationResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEOPERATIONRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.google_ads_service_pb2' + , + '__doc__': """Response message for the resource mutate. + + Attributes: + response: + The mutate response. + ad_group_ad_label_result: + The result for the ad group ad label mutate. + ad_group_ad_result: + The result for the ad group ad mutate. + ad_group_bid_modifier_result: + The result for the ad group bid modifier mutate. + ad_group_criterion_label_result: + The result for the ad group criterion label mutate. + ad_group_criterion_result: + The result for the ad group criterion mutate. + ad_group_extension_setting_result: + The result for the ad group extension setting mutate. + ad_group_feed_result: + The result for the ad group feed mutate. + ad_group_label_result: + The result for the ad group label mutate. + ad_group_result: + The result for the ad group mutate. + ad_parameter_result: + The result for the ad parameter mutate. + ad_result: + The result for the ad mutate. + asset_result: + The result for the asset mutate. + bidding_strategy_result: + The result for the bidding strategy mutate. + campaign_asset_result: + The result for the campaign asset mutate. + campaign_bid_modifier_result: + The result for the campaign bid modifier mutate. + campaign_budget_result: + The result for the campaign budget mutate. + campaign_criterion_result: + The result for the campaign criterion mutate. + campaign_draft_result: + The result for the campaign draft mutate. + campaign_experiment_result: + The result for the campaign experiment mutate. + campaign_extension_setting_result: + The result for the campaign extension setting mutate. + campaign_feed_result: + The result for the campaign feed mutate. + campaign_label_result: + The result for the campaign label mutate. + campaign_result: + The result for the campaign mutate. + campaign_shared_set_result: + The result for the campaign shared set mutate. + conversion_action_result: + The result for the conversion action mutate. + customer_extension_setting_result: + The result for the customer extension setting mutate. + customer_feed_result: + The result for the customer feed mutate. + customer_label_result: + The result for the customer label mutate. + customer_negative_criterion_result: + The result for the customer negative criterion mutate. + customer_result: + The result for the customer mutate. + extension_feed_item_result: + The result for the extension feed item mutate. + feed_item_result: + The result for the feed item mutate. + feed_item_target_result: + The result for the feed item target mutate. + feed_mapping_result: + The result for the feed mapping mutate. + feed_result: + The result for the feed mutate. + keyword_plan_ad_group_result: + The result for the keyword plan ad group mutate. + keyword_plan_campaign_result: + The result for the keyword plan campaign mutate. + keyword_plan_ad_group_keyword_result: + The result for the keyword plan ad group keyword mutate. + keyword_plan_campaign_keyword_result: + The result for the keyword plan campaign keyword mutate. + keyword_plan_result: + The result for the keyword plan mutate. + label_result: + The result for the label mutate. + media_file_result: + The result for the media file mutate. + remarketing_action_result: + The result for the remarketing action mutate. + shared_criterion_result: + The result for the shared criterion mutate. + shared_set_result: + The result for the shared set mutate. + user_list_result: + The result for the user list mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateOperationResponse) + }) +_sym_db.RegisterMessage(MutateOperationResponse) + + +DESCRIPTOR._options = None +_SEARCHGOOGLEADSREQUEST.fields_by_name['customer_id']._options = None +_SEARCHGOOGLEADSREQUEST.fields_by_name['query']._options = None +_SEARCHGOOGLEADSSTREAMREQUEST.fields_by_name['customer_id']._options = None +_SEARCHGOOGLEADSSTREAMREQUEST.fields_by_name['query']._options = None +_MUTATEGOOGLEADSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEGOOGLEADSREQUEST.fields_by_name['mutate_operations']._options = None + +_GOOGLEADSSERVICE = _descriptor.ServiceDescriptor( + name='GoogleAdsService', + full_name='google.ads.googleads.v5.services.GoogleAdsService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=29093, + serialized_end=29799, + methods=[ + _descriptor.MethodDescriptor( + name='Search', + full_name='google.ads.googleads.v5.services.GoogleAdsService.Search', + index=0, + containing_service=None, + input_type=_SEARCHGOOGLEADSREQUEST, + output_type=_SEARCHGOOGLEADSRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/googleAds:search:\001*\332A\021customer_id,query', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='SearchStream', + full_name='google.ads.googleads.v5.services.GoogleAdsService.SearchStream', + index=1, + containing_service=None, + input_type=_SEARCHGOOGLEADSSTREAMREQUEST, + output_type=_SEARCHGOOGLEADSSTREAMRESPONSE, + serialized_options=b'\202\323\344\223\0029\"4/v5/customers/{customer_id=*}/googleAds:searchStream:\001*\332A\021customer_id,query', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='Mutate', + full_name='google.ads.googleads.v5.services.GoogleAdsService.Mutate', + index=2, + containing_service=None, + input_type=_MUTATEGOOGLEADSREQUEST, + output_type=_MUTATEGOOGLEADSRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/googleAds:mutate:\001*\332A\035customer_id,mutate_operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GOOGLEADSSERVICE) + +DESCRIPTOR.services_by_name['GoogleAdsService'] = _GOOGLEADSSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/google_ads_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/google_ads_service_pb2_grpc.py new file mode 100644 index 000000000..e615ca47d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/google_ads_service_pb2_grpc.py @@ -0,0 +1,191 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import google_ads_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2 + + +class GoogleAdsServiceStub(object): + """Proto file describing the GoogleAdsService. + + Service to fetch data and metrics across resources. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Search = channel.unary_unary( + '/google.ads.googleads.v5.services.GoogleAdsService/Search', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsResponse.FromString, + ) + self.SearchStream = channel.unary_stream( + '/google.ads.googleads.v5.services.GoogleAdsService/SearchStream', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamResponse.FromString, + ) + self.Mutate = channel.unary_unary( + '/google.ads.googleads.v5.services.GoogleAdsService/Mutate', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsResponse.FromString, + ) + + +class GoogleAdsServiceServicer(object): + """Proto file describing the GoogleAdsService. + + Service to fetch data and metrics across resources. + """ + + def Search(self, request, context): + """Returns all rows that match the search query. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SearchStream(self, request, context): + """Returns all rows that match the search stream query. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Mutate(self, request, context): + """Creates, updates, or removes resources. This method supports atomic + transactions with multiple types of resources. For example, you can + atomically create a campaign and a campaign budget, or perform up to + thousands of mutates atomically. + + This method is essentially a wrapper around a series of mutate methods. The + only features it offers over calling those methods directly are: + + - Atomic transactions + - Temp resource names (described below) + - Somewhat reduced latency over making a series of mutate calls + + Note: Only resources that support atomic transactions are included, so this + method can't replace all calls to individual services. + + ## Atomic Transaction Benefits + + Atomicity makes error handling much easier. If you're making a series of + changes and one fails, it can leave your account in an inconsistent state. + With atomicity, you either reach the desired state directly, or the request + fails and you can retry. + + ## Temp Resource Names + + Temp resource names are a special type of resource name used to create a + resource and reference that resource in the same request. For example, if a + campaign budget is created with `resource_name` equal to + `customers/123/campaignBudgets/-1`, that resource name can be reused in + the `Campaign.budget` field in the same request. That way, the two + resources are created and linked atomically. + + To create a temp resource name, put a negative number in the part of the + name that the server would normally allocate. + + Note: + + - Resources must be created with a temp name before the name can be reused. + For example, the previous CampaignBudget+Campaign example would fail if + the mutate order was reversed. + - Temp names are not remembered across requests. + - There's no limit to the number of temp names in a request. + - Each temp name must use a unique negative number, even if the resource + types differ. + + ## Latency + + It's important to group mutates by resource type or the request may time + out and fail. Latency is roughly equal to a series of calls to individual + mutate methods, where each change in resource type is a new call. For + example, mutating 10 campaigns then 10 ad groups is like 2 calls, while + mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is like 4 calls. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GoogleAdsServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Search': grpc.unary_unary_rpc_method_handler( + servicer.Search, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsResponse.SerializeToString, + ), + 'SearchStream': grpc.unary_stream_rpc_method_handler( + servicer.SearchStream, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamResponse.SerializeToString, + ), + 'Mutate': grpc.unary_unary_rpc_method_handler( + servicer.Mutate, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GoogleAdsService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GoogleAdsService(object): + """Proto file describing the GoogleAdsService. + + Service to fetch data and metrics across resources. + """ + + @staticmethod + def Search(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GoogleAdsService/Search', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SearchStream(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/google.ads.googleads.v5.services.GoogleAdsService/SearchStream', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsStreamResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Mutate(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GoogleAdsService/Mutate', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_google__ads__service__pb2.MutateGoogleAdsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2.py new file mode 100644 index 000000000..025e67847 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/group_placement_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import group_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/group_placement_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036GroupPlacementViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/services/group_placement_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x42google/ads/googleads_v5/proto/resources/group_placement_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"j\n\x1cGetGroupPlacementViewRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/GroupPlacementView2\x98\x02\n\x19GroupPlacementViewService\x12\xdd\x01\n\x15GetGroupPlacementView\x12>.google.ads.googleads.v5.services.GetGroupPlacementViewRequest\x1a\x35.google.ads.googleads.v5.resources.GroupPlacementView\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/groupPlacementViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1eGroupPlacementViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETGROUPPLACEMENTVIEWREQUEST = _descriptor.Descriptor( + name='GetGroupPlacementViewRequest', + full_name='google.ads.googleads.v5.services.GetGroupPlacementViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetGroupPlacementViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/GroupPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=294, + serialized_end=400, +) + +DESCRIPTOR.message_types_by_name['GetGroupPlacementViewRequest'] = _GETGROUPPLACEMENTVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGroupPlacementViewRequest = _reflection.GeneratedProtocolMessageType('GetGroupPlacementViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETGROUPPLACEMENTVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.group_placement_view_service_pb2' + , + '__doc__': """Request message for [GroupPlacementViewService.GetGroupPlacementView][ + google.ads.googleads.v5.services.GroupPlacementViewService.GetGroupPla + cementView]. + + Attributes: + resource_name: + Required. The resource name of the Group Placement view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetGroupPlacementViewRequest) + }) +_sym_db.RegisterMessage(GetGroupPlacementViewRequest) + + +DESCRIPTOR._options = None +_GETGROUPPLACEMENTVIEWREQUEST.fields_by_name['resource_name']._options = None + +_GROUPPLACEMENTVIEWSERVICE = _descriptor.ServiceDescriptor( + name='GroupPlacementViewService', + full_name='google.ads.googleads.v5.services.GroupPlacementViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=403, + serialized_end=683, + methods=[ + _descriptor.MethodDescriptor( + name='GetGroupPlacementView', + full_name='google.ads.googleads.v5.services.GroupPlacementViewService.GetGroupPlacementView', + index=0, + containing_service=None, + input_type=_GETGROUPPLACEMENTVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2._GROUPPLACEMENTVIEW, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/groupPlacementViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_GROUPPLACEMENTVIEWSERVICE) + +DESCRIPTOR.services_by_name['GroupPlacementViewService'] = _GROUPPLACEMENTVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2_grpc.py new file mode 100644 index 000000000..10e89ab88 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/group_placement_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import group_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2 +from google.ads.google_ads.v5.proto.services import group_placement_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_group__placement__view__service__pb2 + + +class GroupPlacementViewServiceStub(object): + """Proto file describing the Group Placement View service. + + Service to fetch Group Placement views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGroupPlacementView = channel.unary_unary( + '/google.ads.googleads.v5.services.GroupPlacementViewService/GetGroupPlacementView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_group__placement__view__service__pb2.GetGroupPlacementViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2.GroupPlacementView.FromString, + ) + + +class GroupPlacementViewServiceServicer(object): + """Proto file describing the Group Placement View service. + + Service to fetch Group Placement views. + """ + + def GetGroupPlacementView(self, request, context): + """Returns the requested Group Placement view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GroupPlacementViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGroupPlacementView': grpc.unary_unary_rpc_method_handler( + servicer.GetGroupPlacementView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_group__placement__view__service__pb2.GetGroupPlacementViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2.GroupPlacementView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.GroupPlacementViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class GroupPlacementViewService(object): + """Proto file describing the Group Placement View service. + + Service to fetch Group Placement views. + """ + + @staticmethod + def GetGroupPlacementView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.GroupPlacementViewService/GetGroupPlacementView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_group__placement__view__service__pb2.GetGroupPlacementViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_group__placement__view__pb2.GroupPlacementView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2.py new file mode 100644 index 000000000..05ddbec31 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/hotel_group_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import hotel_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/hotel_group_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032HotelGroupViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/hotel_group_view_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/hotel_group_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetHotelGroupViewRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/HotelGroupView2\x84\x02\n\x15HotelGroupViewService\x12\xcd\x01\n\x11GetHotelGroupView\x12:.google.ads.googleads.v5.services.GetHotelGroupViewRequest\x1a\x31.google.ads.googleads.v5.resources.HotelGroupView\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/hotelGroupViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1aHotelGroupViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETHOTELGROUPVIEWREQUEST = _descriptor.Descriptor( + name='GetHotelGroupViewRequest', + full_name='google.ads.googleads.v5.services.GetHotelGroupViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetHotelGroupViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/HotelGroupView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=384, +) + +DESCRIPTOR.message_types_by_name['GetHotelGroupViewRequest'] = _GETHOTELGROUPVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetHotelGroupViewRequest = _reflection.GeneratedProtocolMessageType('GetHotelGroupViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETHOTELGROUPVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.hotel_group_view_service_pb2' + , + '__doc__': """Request message for [HotelGroupViewService.GetHotelGroupView][google.a + ds.googleads.v5.services.HotelGroupViewService.GetHotelGroupView]. + + Attributes: + resource_name: + Required. Resource name of the Hotel Group View to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetHotelGroupViewRequest) + }) +_sym_db.RegisterMessage(GetHotelGroupViewRequest) + + +DESCRIPTOR._options = None +_GETHOTELGROUPVIEWREQUEST.fields_by_name['resource_name']._options = None + +_HOTELGROUPVIEWSERVICE = _descriptor.ServiceDescriptor( + name='HotelGroupViewService', + full_name='google.ads.googleads.v5.services.HotelGroupViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=387, + serialized_end=647, + methods=[ + _descriptor.MethodDescriptor( + name='GetHotelGroupView', + full_name='google.ads.googleads.v5.services.HotelGroupViewService.GetHotelGroupView', + index=0, + containing_service=None, + input_type=_GETHOTELGROUPVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2._HOTELGROUPVIEW, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/hotelGroupViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_HOTELGROUPVIEWSERVICE) + +DESCRIPTOR.services_by_name['HotelGroupViewService'] = _HOTELGROUPVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2_grpc.py new file mode 100644 index 000000000..6d099ceaa --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/hotel_group_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import hotel_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2 +from google.ads.google_ads.v5.proto.services import hotel_group_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__group__view__service__pb2 + + +class HotelGroupViewServiceStub(object): + """Proto file describing the Hotel Group View Service. + + Service to manage Hotel Group Views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetHotelGroupView = channel.unary_unary( + '/google.ads.googleads.v5.services.HotelGroupViewService/GetHotelGroupView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__group__view__service__pb2.GetHotelGroupViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2.HotelGroupView.FromString, + ) + + +class HotelGroupViewServiceServicer(object): + """Proto file describing the Hotel Group View Service. + + Service to manage Hotel Group Views. + """ + + def GetHotelGroupView(self, request, context): + """Returns the requested Hotel Group View in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_HotelGroupViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetHotelGroupView': grpc.unary_unary_rpc_method_handler( + servicer.GetHotelGroupView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__group__view__service__pb2.GetHotelGroupViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2.HotelGroupView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.HotelGroupViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class HotelGroupViewService(object): + """Proto file describing the Hotel Group View Service. + + Service to manage Hotel Group Views. + """ + + @staticmethod + def GetHotelGroupView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.HotelGroupViewService/GetHotelGroupView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__group__view__service__pb2.GetHotelGroupViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__group__view__pb2.HotelGroupView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2.py new file mode 100644 index 000000000..97c665d95 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/hotel_performance_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import hotel_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/hotel_performance_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB HotelPerformanceViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/services/hotel_performance_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/resources/hotel_performance_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"n\n\x1eGetHotelPerformanceViewRequest\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-googleads.googleapis.com/HotelPerformanceView2\x9f\x02\n\x1bHotelPerformanceViewService\x12\xe2\x01\n\x17GetHotelPerformanceView\x12@.google.ads.googleads.v5.services.GetHotelPerformanceViewRequest\x1a\x37.google.ads.googleads.v5.resources.HotelPerformanceView\"L\x82\xd3\xe4\x93\x02\x36\x12\x34/v5/{resource_name=customers/*/hotelPerformanceView}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x87\x02\n$com.google.ads.googleads.v5.servicesB HotelPerformanceViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETHOTELPERFORMANCEVIEWREQUEST = _descriptor.Descriptor( + name='GetHotelPerformanceViewRequest', + full_name='google.ads.googleads.v5.services.GetHotelPerformanceViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetHotelPerformanceViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A/\n-googleads.googleapis.com/HotelPerformanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=408, +) + +DESCRIPTOR.message_types_by_name['GetHotelPerformanceViewRequest'] = _GETHOTELPERFORMANCEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetHotelPerformanceViewRequest = _reflection.GeneratedProtocolMessageType('GetHotelPerformanceViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETHOTELPERFORMANCEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.hotel_performance_view_service_pb2' + , + '__doc__': """Request message for [HotelPerformanceViewService.GetHotelPerformanceVi + ew][google.ads.googleads.v5.services.HotelPerformanceViewService.GetHo + telPerformanceView]. + + Attributes: + resource_name: + Required. Resource name of the Hotel Performance View to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetHotelPerformanceViewRequest) + }) +_sym_db.RegisterMessage(GetHotelPerformanceViewRequest) + + +DESCRIPTOR._options = None +_GETHOTELPERFORMANCEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_HOTELPERFORMANCEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='HotelPerformanceViewService', + full_name='google.ads.googleads.v5.services.HotelPerformanceViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=411, + serialized_end=698, + methods=[ + _descriptor.MethodDescriptor( + name='GetHotelPerformanceView', + full_name='google.ads.googleads.v5.services.HotelPerformanceViewService.GetHotelPerformanceView', + index=0, + containing_service=None, + input_type=_GETHOTELPERFORMANCEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2._HOTELPERFORMANCEVIEW, + serialized_options=b'\202\323\344\223\0026\0224/v5/{resource_name=customers/*/hotelPerformanceView}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_HOTELPERFORMANCEVIEWSERVICE) + +DESCRIPTOR.services_by_name['HotelPerformanceViewService'] = _HOTELPERFORMANCEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2_grpc.py new file mode 100644 index 000000000..25e4e2591 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/hotel_performance_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import hotel_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2 +from google.ads.google_ads.v5.proto.services import hotel_performance_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__performance__view__service__pb2 + + +class HotelPerformanceViewServiceStub(object): + """Proto file describing the Hotel Performance View Service. + + Service to manage Hotel Performance Views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetHotelPerformanceView = channel.unary_unary( + '/google.ads.googleads.v5.services.HotelPerformanceViewService/GetHotelPerformanceView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__performance__view__service__pb2.GetHotelPerformanceViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2.HotelPerformanceView.FromString, + ) + + +class HotelPerformanceViewServiceServicer(object): + """Proto file describing the Hotel Performance View Service. + + Service to manage Hotel Performance Views. + """ + + def GetHotelPerformanceView(self, request, context): + """Returns the requested Hotel Performance View in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_HotelPerformanceViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetHotelPerformanceView': grpc.unary_unary_rpc_method_handler( + servicer.GetHotelPerformanceView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__performance__view__service__pb2.GetHotelPerformanceViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2.HotelPerformanceView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.HotelPerformanceViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class HotelPerformanceViewService(object): + """Proto file describing the Hotel Performance View Service. + + Service to manage Hotel Performance Views. + """ + + @staticmethod + def GetHotelPerformanceView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.HotelPerformanceViewService/GetHotelPerformanceView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_hotel__performance__view__service__pb2.GetHotelPerformanceViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_hotel__performance__view__pb2.HotelPerformanceView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2.py new file mode 100644 index 000000000..3bd90de4e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/income_range_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import income_range_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/income_range_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033IncomeRangeViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/income_range_view_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/income_range_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"d\n\x19GetIncomeRangeViewRequest\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(googleads.googleapis.com/IncomeRangeView2\x89\x02\n\x16IncomeRangeViewService\x12\xd1\x01\n\x12GetIncomeRangeView\x12;.google.ads.googleads.v5.services.GetIncomeRangeViewRequest\x1a\x32.google.ads.googleads.v5.resources.IncomeRangeView\"J\x82\xd3\xe4\x93\x02\x34\x12\x32/v5/{resource_name=customers/*/incomeRangeViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1bIncomeRangeViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETINCOMERANGEVIEWREQUEST = _descriptor.Descriptor( + name='GetIncomeRangeViewRequest', + full_name='google.ads.googleads.v5.services.GetIncomeRangeViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetIncomeRangeViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A*\n(googleads.googleapis.com/IncomeRangeView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=288, + serialized_end=388, +) + +DESCRIPTOR.message_types_by_name['GetIncomeRangeViewRequest'] = _GETINCOMERANGEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetIncomeRangeViewRequest = _reflection.GeneratedProtocolMessageType('GetIncomeRangeViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETINCOMERANGEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.income_range_view_service_pb2' + , + '__doc__': """Request message for [IncomeRangeViewService.GetIncomeRangeView][google + .ads.googleads.v5.services.IncomeRangeViewService.GetIncomeRangeView]. + + Attributes: + resource_name: + Required. The resource name of the income range view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetIncomeRangeViewRequest) + }) +_sym_db.RegisterMessage(GetIncomeRangeViewRequest) + + +DESCRIPTOR._options = None +_GETINCOMERANGEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_INCOMERANGEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='IncomeRangeViewService', + full_name='google.ads.googleads.v5.services.IncomeRangeViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=391, + serialized_end=656, + methods=[ + _descriptor.MethodDescriptor( + name='GetIncomeRangeView', + full_name='google.ads.googleads.v5.services.IncomeRangeViewService.GetIncomeRangeView', + index=0, + containing_service=None, + input_type=_GETINCOMERANGEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2._INCOMERANGEVIEW, + serialized_options=b'\202\323\344\223\0024\0222/v5/{resource_name=customers/*/incomeRangeViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_INCOMERANGEVIEWSERVICE) + +DESCRIPTOR.services_by_name['IncomeRangeViewService'] = _INCOMERANGEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2_grpc.py new file mode 100644 index 000000000..f9220b614 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/income_range_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import income_range_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2 +from google.ads.google_ads.v5.proto.services import income_range_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_income__range__view__service__pb2 + + +class IncomeRangeViewServiceStub(object): + """Proto file describing the Income Range View service. + + Service to manage income range views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetIncomeRangeView = channel.unary_unary( + '/google.ads.googleads.v5.services.IncomeRangeViewService/GetIncomeRangeView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_income__range__view__service__pb2.GetIncomeRangeViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2.IncomeRangeView.FromString, + ) + + +class IncomeRangeViewServiceServicer(object): + """Proto file describing the Income Range View service. + + Service to manage income range views. + """ + + def GetIncomeRangeView(self, request, context): + """Returns the requested income range view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_IncomeRangeViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetIncomeRangeView': grpc.unary_unary_rpc_method_handler( + servicer.GetIncomeRangeView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_income__range__view__service__pb2.GetIncomeRangeViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2.IncomeRangeView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.IncomeRangeViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class IncomeRangeViewService(object): + """Proto file describing the Income Range View service. + + Service to manage income range views. + """ + + @staticmethod + def GetIncomeRangeView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.IncomeRangeViewService/GetIncomeRangeView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_income__range__view__service__pb2.GetIncomeRangeViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_income__range__view__pb2.IncomeRangeView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/invoice_service_pb2.py b/google/ads/google_ads/v5/proto/services/invoice_service_pb2.py new file mode 100644 index 000000000..b86ba79b3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/invoice_service_pb2.py @@ -0,0 +1,196 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/invoice_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import month_of_year_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_month__of__year__pb2 +from google.ads.google_ads.v5.proto.resources import invoice_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_invoice__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/invoice_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\023InvoiceServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\n%MutateKeywordPlanAdGroupKeywordResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xdc\x04\n KeywordPlanAdGroupKeywordService\x12\xf9\x01\n\x1cGetKeywordPlanAdGroupKeyword\x12\x45.google.ads.googleads.v5.services.GetKeywordPlanAdGroupKeywordRequest\x1a<.google.ads.googleads.v5.resources.KeywordPlanAdGroupKeyword\"T\x82\xd3\xe4\x93\x02>\x12\022.google.ads.googleads.v5.services.GetKeywordPlanAdGroupRequest\x1a\x35.google.ads.googleads.v5.resources.KeywordPlanAdGroup\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/keywordPlanAdGroups/*}\xda\x41\rresource_name\x12\x82\x02\n\x19MutateKeywordPlanAdGroups\x12\x42.google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest\x1a\x43.google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsResponse\"\\\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/keywordPlanAdGroups:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1eKeywordPlanAdGroupServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDPLANADGROUPREQUEST = _descriptor.Descriptor( + name='GetKeywordPlanAdGroupRequest', + full_name='google.ads.googleads.v5.services.GetKeywordPlanAdGroupRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetKeywordPlanAdGroupRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/KeywordPlanAdGroup', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=355, + serialized_end=461, +) + + +_MUTATEKEYWORDPLANADGROUPSREQUEST = _descriptor.Descriptor( + name='MutateKeywordPlanAdGroupsRequest', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=464, + serialized_end=660, +) + + +_KEYWORDPLANADGROUPOPERATION = _descriptor.Descriptor( + name='KeywordPlanAdGroupOperation', + full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=663, + serialized_end=918, +) + + +_MUTATEKEYWORDPLANADGROUPSRESPONSE = _descriptor.Descriptor( + name='MutateKeywordPlanAdGroupsResponse', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=921, + serialized_end=1090, +) + + +_MUTATEKEYWORDPLANADGROUPRESULT = _descriptor.Descriptor( + name='MutateKeywordPlanAdGroupResult', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateKeywordPlanAdGroupResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1092, + serialized_end=1147, +) + +_MUTATEKEYWORDPLANADGROUPSREQUEST.fields_by_name['operations'].message_type = _KEYWORDPLANADGROUPOPERATION +_KEYWORDPLANADGROUPOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_KEYWORDPLANADGROUPOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2._KEYWORDPLANADGROUP +_KEYWORDPLANADGROUPOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2._KEYWORDPLANADGROUP +_KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANADGROUPOPERATION.fields_by_name['create']) +_KEYWORDPLANADGROUPOPERATION.fields_by_name['create'].containing_oneof = _KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANADGROUPOPERATION.fields_by_name['update']) +_KEYWORDPLANADGROUPOPERATION.fields_by_name['update'].containing_oneof = _KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANADGROUPOPERATION.fields_by_name['remove']) +_KEYWORDPLANADGROUPOPERATION.fields_by_name['remove'].containing_oneof = _KEYWORDPLANADGROUPOPERATION.oneofs_by_name['operation'] +_MUTATEKEYWORDPLANADGROUPSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEKEYWORDPLANADGROUPSRESPONSE.fields_by_name['results'].message_type = _MUTATEKEYWORDPLANADGROUPRESULT +DESCRIPTOR.message_types_by_name['GetKeywordPlanAdGroupRequest'] = _GETKEYWORDPLANADGROUPREQUEST +DESCRIPTOR.message_types_by_name['MutateKeywordPlanAdGroupsRequest'] = _MUTATEKEYWORDPLANADGROUPSREQUEST +DESCRIPTOR.message_types_by_name['KeywordPlanAdGroupOperation'] = _KEYWORDPLANADGROUPOPERATION +DESCRIPTOR.message_types_by_name['MutateKeywordPlanAdGroupsResponse'] = _MUTATEKEYWORDPLANADGROUPSRESPONSE +DESCRIPTOR.message_types_by_name['MutateKeywordPlanAdGroupResult'] = _MUTATEKEYWORDPLANADGROUPRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordPlanAdGroupRequest = _reflection.GeneratedProtocolMessageType('GetKeywordPlanAdGroupRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETKEYWORDPLANADGROUPREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_ad_group_service_pb2' + , + '__doc__': """Request message for [KeywordPlanAdGroupService.GetKeywordPlanAdGroup][ + google.ads.googleads.v5.services.KeywordPlanAdGroupService.GetKeywordP + lanAdGroup]. + + Attributes: + resource_name: + Required. The resource name of the Keyword Plan ad group to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetKeywordPlanAdGroupRequest) + }) +_sym_db.RegisterMessage(GetKeywordPlanAdGroupRequest) + +MutateKeywordPlanAdGroupsRequest = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanAdGroupsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANADGROUPSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_ad_group_service_pb2' + , + '__doc__': """Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGrou + ps][google.ads.googleads.v5.services.KeywordPlanAdGroupService.MutateK + eywordPlanAdGroups]. + + Attributes: + customer_id: + Required. The ID of the customer whose Keyword Plan ad groups + are being modified. + operations: + Required. The list of operations to perform on individual + Keyword Plan ad groups. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsRequest) + }) +_sym_db.RegisterMessage(MutateKeywordPlanAdGroupsRequest) + +KeywordPlanAdGroupOperation = _reflection.GeneratedProtocolMessageType('KeywordPlanAdGroupOperation', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANADGROUPOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_ad_group_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a Keyword Plan ad + group. + + Attributes: + update_mask: + The FieldMask that determines which resource fields are + modified in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + Keyword Plan ad group. + update: + Update operation: The Keyword Plan ad group is expected to + have a valid resource name. + remove: + Remove operation: A resource name for the removed Keyword Plan + ad group is expected, in this format: ``customers/{customer_i + d}/keywordPlanAdGroups/{kp_ad_group_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanAdGroupOperation) + }) +_sym_db.RegisterMessage(KeywordPlanAdGroupOperation) + +MutateKeywordPlanAdGroupsResponse = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanAdGroupsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANADGROUPSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_ad_group_service_pb2' + , + '__doc__': """Response message for a Keyword Plan ad group mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. The order of the results is + determined by the order of the keywords in the original + request. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanAdGroupsResponse) + }) +_sym_db.RegisterMessage(MutateKeywordPlanAdGroupsResponse) + +MutateKeywordPlanAdGroupResult = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanAdGroupResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANADGROUPRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_ad_group_service_pb2' + , + '__doc__': """The result for the Keyword Plan ad group mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanAdGroupResult) + }) +_sym_db.RegisterMessage(MutateKeywordPlanAdGroupResult) + + +DESCRIPTOR._options = None +_GETKEYWORDPLANADGROUPREQUEST.fields_by_name['resource_name']._options = None +_MUTATEKEYWORDPLANADGROUPSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEKEYWORDPLANADGROUPSREQUEST.fields_by_name['operations']._options = None + +_KEYWORDPLANADGROUPSERVICE = _descriptor.ServiceDescriptor( + name='KeywordPlanAdGroupService', + full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1150, + serialized_end=1691, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordPlanAdGroup', + full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup', + index=0, + containing_service=None, + input_type=_GETKEYWORDPLANADGROUPREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2._KEYWORDPLANADGROUP, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/keywordPlanAdGroups/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateKeywordPlanAdGroups', + full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups', + index=1, + containing_service=None, + input_type=_MUTATEKEYWORDPLANADGROUPSREQUEST, + output_type=_MUTATEKEYWORDPLANADGROUPSRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/keywordPlanAdGroups:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDPLANADGROUPSERVICE) + +DESCRIPTOR.services_by_name['KeywordPlanAdGroupService'] = _KEYWORDPLANADGROUPSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_service_pb2_grpc.py new file mode 100644 index 000000000..95d2c3966 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_ad_group_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import keyword_plan_ad_group_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2 + + +class KeywordPlanAdGroupServiceStub(object): + """Proto file describing the keyword plan ad group service. + + Service to manage Keyword Plan ad groups. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordPlanAdGroup = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanAdGroupService/GetKeywordPlanAdGroup', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.GetKeywordPlanAdGroupRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2.KeywordPlanAdGroup.FromString, + ) + self.MutateKeywordPlanAdGroups = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanAdGroupService/MutateKeywordPlanAdGroups', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsResponse.FromString, + ) + + +class KeywordPlanAdGroupServiceServicer(object): + """Proto file describing the keyword plan ad group service. + + Service to manage Keyword Plan ad groups. + """ + + def GetKeywordPlanAdGroup(self, request, context): + """Returns the requested Keyword Plan ad group in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateKeywordPlanAdGroups(self, request, context): + """Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordPlanAdGroupServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordPlanAdGroup': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordPlanAdGroup, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.GetKeywordPlanAdGroupRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2.KeywordPlanAdGroup.SerializeToString, + ), + 'MutateKeywordPlanAdGroups': grpc.unary_unary_rpc_method_handler( + servicer.MutateKeywordPlanAdGroups, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordPlanAdGroupService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordPlanAdGroupService(object): + """Proto file describing the keyword plan ad group service. + + Service to manage Keyword Plan ad groups. + """ + + @staticmethod + def GetKeywordPlanAdGroup(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanAdGroupService/GetKeywordPlanAdGroup', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.GetKeywordPlanAdGroupRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__ad__group__pb2.KeywordPlanAdGroup.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateKeywordPlanAdGroups(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanAdGroupService/MutateKeywordPlanAdGroups', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__ad__group__service__pb2.MutateKeywordPlanAdGroupsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2.py b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2.py new file mode 100644 index 000000000..d1c090970 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2.py @@ -0,0 +1,418 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/keyword_plan_campaign_keyword_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_keyword_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/keyword_plan_campaign_keyword_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB&KeywordPlanCampaignKeywordServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nRgoogle/ads/googleads_v5/proto/services/keyword_plan_campaign_keyword_service.proto\x12 google.ads.googleads.v5.services\x1aKgoogle/ads/googleads_v5/proto/resources/keyword_plan_campaign_keyword.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"z\n$GetKeywordPlanCampaignKeywordRequest\x12R\n\rresource_name\x18\x01 \x01(\tB;\xe0\x41\x02\xfa\x41\x35\n3googleads.googleapis.com/KeywordPlanCampaignKeyword\"\xd4\x01\n(MutateKeywordPlanCampaignKeywordsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12^\n\noperations\x18\x02 \x03(\x0b\x32\x45.google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x97\x02\n#KeywordPlanCampaignKeywordOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12O\n\x06\x63reate\x18\x01 \x01(\x0b\x32=.google.ads.googleads.v5.resources.KeywordPlanCampaignKeywordH\x00\x12O\n\x06update\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v5.resources.KeywordPlanCampaignKeywordH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xb9\x01\n)MutateKeywordPlanCampaignKeywordsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12Y\n\x07results\x18\x02 \x03(\x0b\x32H.google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordResult\"?\n&MutateKeywordPlanCampaignKeywordResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xe5\x04\n!KeywordPlanCampaignKeywordService\x12\xfd\x01\n\x1dGetKeywordPlanCampaignKeyword\x12\x46.google.ads.googleads.v5.services.GetKeywordPlanCampaignKeywordRequest\x1a=.google.ads.googleads.v5.resources.KeywordPlanCampaignKeyword\"U\x82\xd3\xe4\x93\x02?\x12=/v5/{resource_name=customers/*/keywordPlanCampaignKeywords/*}\xda\x41\rresource_name\x12\xa2\x02\n!MutateKeywordPlanCampaignKeywords\x12J.google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest\x1aK.google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsResponse\"d\x82\xd3\xe4\x93\x02\x45\"@/v5/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8d\x02\n$com.google.ads.googleads.v5.servicesB&KeywordPlanCampaignKeywordServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDPLANCAMPAIGNKEYWORDREQUEST = _descriptor.Descriptor( + name='GetKeywordPlanCampaignKeywordRequest', + full_name='google.ads.googleads.v5.services.GetKeywordPlanCampaignKeywordRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetKeywordPlanCampaignKeywordRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A5\n3googleads.googleapis.com/KeywordPlanCampaignKeyword', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=371, + serialized_end=493, +) + + +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignKeywordsRequest', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=496, + serialized_end=708, +) + + +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION = _descriptor.Descriptor( + name='KeywordPlanCampaignKeywordOperation', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=711, + serialized_end=990, +) + + +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignKeywordsResponse', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=993, + serialized_end=1178, +) + + +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDRESULT = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignKeywordResult', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1180, + serialized_end=1243, +) + +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST.fields_by_name['operations'].message_type = _KEYWORDPLANCAMPAIGNKEYWORDOPERATION +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2._KEYWORDPLANCAMPAIGNKEYWORD +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2._KEYWORDPLANCAMPAIGNKEYWORD +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['create']) +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['create'].containing_oneof = _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['update']) +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['update'].containing_oneof = _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['remove']) +_KEYWORDPLANCAMPAIGNKEYWORDOPERATION.fields_by_name['remove'].containing_oneof = _KEYWORDPLANCAMPAIGNKEYWORDOPERATION.oneofs_by_name['operation'] +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE.fields_by_name['results'].message_type = _MUTATEKEYWORDPLANCAMPAIGNKEYWORDRESULT +DESCRIPTOR.message_types_by_name['GetKeywordPlanCampaignKeywordRequest'] = _GETKEYWORDPLANCAMPAIGNKEYWORDREQUEST +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignKeywordsRequest'] = _MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignKeywordOperation'] = _KEYWORDPLANCAMPAIGNKEYWORDOPERATION +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignKeywordsResponse'] = _MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignKeywordResult'] = _MUTATEKEYWORDPLANCAMPAIGNKEYWORDRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordPlanCampaignKeywordRequest = _reflection.GeneratedProtocolMessageType('GetKeywordPlanCampaignKeywordRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETKEYWORDPLANCAMPAIGNKEYWORDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_keyword_service_pb2' + , + '__doc__': """Request message for [KeywordPlanCampaignKeywordService.GetKeywordPlanC + ampaignKeyword][google.ads.googleads.v5.services.KeywordPlanCampaignKe + ywordService.GetKeywordPlanCampaignKeyword]. + + Attributes: + resource_name: + Required. The resource name of the plan to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetKeywordPlanCampaignKeywordRequest) + }) +_sym_db.RegisterMessage(GetKeywordPlanCampaignKeywordRequest) + +MutateKeywordPlanCampaignKeywordsRequest = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignKeywordsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_keyword_service_pb2' + , + '__doc__': """Request message for [KeywordPlanCampaignKeywordService.MutateKeywordPl + anCampaignKeywords][google.ads.googleads.v5.services.KeywordPlanCampai + gnKeywordService.MutateKeywordPlanCampaignKeywords]. + + Attributes: + customer_id: + Required. The ID of the customer whose campaign keywords are + being modified. + operations: + Required. The list of operations to perform on individual + Keyword Plan campaign keywords. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsRequest) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignKeywordsRequest) + +KeywordPlanCampaignKeywordOperation = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignKeywordOperation', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNKEYWORDOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_keyword_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a Keyword Plan campaign + keyword. + + Attributes: + update_mask: + The FieldMask that determines which resource fields are + modified in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + Keyword Plan campaign keyword. + update: + Update operation: The Keyword Plan campaign keyword expected + to have a valid resource name. + remove: + Remove operation: A resource name for the removed Keyword Plan + campaign keywords expected in this format: ``customers/{custo + mer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanCampaignKeywordOperation) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignKeywordOperation) + +MutateKeywordPlanCampaignKeywordsResponse = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignKeywordsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_keyword_service_pb2' + , + '__doc__': """Response message for a Keyword Plan campaign keyword mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordsResponse) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignKeywordsResponse) + +MutateKeywordPlanCampaignKeywordResult = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignKeywordResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNKEYWORDRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_keyword_service_pb2' + , + '__doc__': """The result for the Keyword Plan campaign keyword mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignKeywordResult) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignKeywordResult) + + +DESCRIPTOR._options = None +_GETKEYWORDPLANCAMPAIGNKEYWORDREQUEST.fields_by_name['resource_name']._options = None +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST.fields_by_name['operations']._options = None + +_KEYWORDPLANCAMPAIGNKEYWORDSERVICE = _descriptor.ServiceDescriptor( + name='KeywordPlanCampaignKeywordService', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1246, + serialized_end=1859, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordPlanCampaignKeyword', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService.GetKeywordPlanCampaignKeyword', + index=0, + containing_service=None, + input_type=_GETKEYWORDPLANCAMPAIGNKEYWORDREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2._KEYWORDPLANCAMPAIGNKEYWORD, + serialized_options=b'\202\323\344\223\002?\022=/v5/{resource_name=customers/*/keywordPlanCampaignKeywords/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateKeywordPlanCampaignKeywords', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords', + index=1, + containing_service=None, + input_type=_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSREQUEST, + output_type=_MUTATEKEYWORDPLANCAMPAIGNKEYWORDSRESPONSE, + serialized_options=b'\202\323\344\223\002E\"@/v5/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDPLANCAMPAIGNKEYWORDSERVICE) + +DESCRIPTOR.services_by_name['KeywordPlanCampaignKeywordService'] = _KEYWORDPLANCAMPAIGNKEYWORDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2_grpc.py new file mode 100644 index 000000000..95049783d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_keyword_service_pb2_grpc.py @@ -0,0 +1,119 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_keyword_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_keyword_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2 + + +class KeywordPlanCampaignKeywordServiceStub(object): + """Proto file describing the keyword plan campaign keyword service. + + Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is + required to add the campaign keywords. Only negative keywords are supported. + A maximum of 1000 negative keywords are allowed per plan. This includes both + campaign negative keywords and ad group negative keywords. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordPlanCampaignKeyword = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService/GetKeywordPlanCampaignKeyword', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.GetKeywordPlanCampaignKeywordRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2.KeywordPlanCampaignKeyword.FromString, + ) + self.MutateKeywordPlanCampaignKeywords = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService/MutateKeywordPlanCampaignKeywords', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsResponse.FromString, + ) + + +class KeywordPlanCampaignKeywordServiceServicer(object): + """Proto file describing the keyword plan campaign keyword service. + + Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is + required to add the campaign keywords. Only negative keywords are supported. + A maximum of 1000 negative keywords are allowed per plan. This includes both + campaign negative keywords and ad group negative keywords. + """ + + def GetKeywordPlanCampaignKeyword(self, request, context): + """Returns the requested plan in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateKeywordPlanCampaignKeywords(self, request, context): + """Creates, updates, or removes Keyword Plan campaign keywords. Operation + statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordPlanCampaignKeywordServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordPlanCampaignKeyword': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordPlanCampaignKeyword, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.GetKeywordPlanCampaignKeywordRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2.KeywordPlanCampaignKeyword.SerializeToString, + ), + 'MutateKeywordPlanCampaignKeywords': grpc.unary_unary_rpc_method_handler( + servicer.MutateKeywordPlanCampaignKeywords, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordPlanCampaignKeywordService(object): + """Proto file describing the keyword plan campaign keyword service. + + Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is + required to add the campaign keywords. Only negative keywords are supported. + A maximum of 1000 negative keywords are allowed per plan. This includes both + campaign negative keywords and ad group negative keywords. + """ + + @staticmethod + def GetKeywordPlanCampaignKeyword(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService/GetKeywordPlanCampaignKeyword', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.GetKeywordPlanCampaignKeywordRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__keyword__pb2.KeywordPlanCampaignKeyword.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateKeywordPlanCampaignKeywords(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService/MutateKeywordPlanCampaignKeywords', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__keyword__service__pb2.MutateKeywordPlanCampaignKeywordsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2.py b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2.py new file mode 100644 index 000000000..70bf4b9c8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/keyword_plan_campaign_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/keyword_plan_campaign_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\037KeywordPlanCampaignServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/keyword_plan_campaign_service.proto\x12 google.ads.googleads.v5.services\x1a\x43google/ads/googleads_v5/proto/resources/keyword_plan_campaign.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"l\n\x1dGetKeywordPlanCampaignRequest\x12K\n\rresource_name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,googleads.googleapis.com/KeywordPlanCampaign\"\xc6\x01\n!MutateKeywordPlanCampaignsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\noperations\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v5.services.KeywordPlanCampaignOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x82\x02\n\x1cKeywordPlanCampaignOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12H\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.KeywordPlanCampaignH\x00\x12H\n\x06update\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v5.resources.KeywordPlanCampaignH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xab\x01\n\"MutateKeywordPlanCampaignsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12R\n\x07results\x18\x02 \x03(\x0b\x32\x41.google.ads.googleads.v5.services.MutateKeywordPlanCampaignResult\"8\n\x1fMutateKeywordPlanCampaignResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xa6\x04\n\x1aKeywordPlanCampaignService\x12\xe1\x01\n\x16GetKeywordPlanCampaign\x12?.google.ads.googleads.v5.services.GetKeywordPlanCampaignRequest\x1a\x36.google.ads.googleads.v5.resources.KeywordPlanCampaign\"N\x82\xd3\xe4\x93\x02\x38\x12\x36/v5/{resource_name=customers/*/keywordPlanCampaigns/*}\xda\x41\rresource_name\x12\x86\x02\n\x1aMutateKeywordPlanCampaigns\x12\x43.google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest\x1a\x44.google.ads.googleads.v5.services.MutateKeywordPlanCampaignsResponse\"]\x82\xd3\xe4\x93\x02>\"9/v5/customers/{customer_id=*}/keywordPlanCampaigns:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x86\x02\n$com.google.ads.googleads.v5.servicesB\x1fKeywordPlanCampaignServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDPLANCAMPAIGNREQUEST = _descriptor.Descriptor( + name='GetKeywordPlanCampaignRequest', + full_name='google.ads.googleads.v5.services.GetKeywordPlanCampaignRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetKeywordPlanCampaignRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A.\n,googleads.googleapis.com/KeywordPlanCampaign', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=355, + serialized_end=463, +) + + +_MUTATEKEYWORDPLANCAMPAIGNSREQUEST = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignsRequest', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=466, + serialized_end=664, +) + + +_KEYWORDPLANCAMPAIGNOPERATION = _descriptor.Descriptor( + name='KeywordPlanCampaignOperation', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=667, + serialized_end=925, +) + + +_MUTATEKEYWORDPLANCAMPAIGNSRESPONSE = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignsResponse', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=928, + serialized_end=1099, +) + + +_MUTATEKEYWORDPLANCAMPAIGNRESULT = _descriptor.Descriptor( + name='MutateKeywordPlanCampaignResult', + full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateKeywordPlanCampaignResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1101, + serialized_end=1157, +) + +_MUTATEKEYWORDPLANCAMPAIGNSREQUEST.fields_by_name['operations'].message_type = _KEYWORDPLANCAMPAIGNOPERATION +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2._KEYWORDPLANCAMPAIGN +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2._KEYWORDPLANCAMPAIGN +_KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['create']) +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['create'].containing_oneof = _KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['update']) +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['update'].containing_oneof = _KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['remove']) +_KEYWORDPLANCAMPAIGNOPERATION.fields_by_name['remove'].containing_oneof = _KEYWORDPLANCAMPAIGNOPERATION.oneofs_by_name['operation'] +_MUTATEKEYWORDPLANCAMPAIGNSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEKEYWORDPLANCAMPAIGNSRESPONSE.fields_by_name['results'].message_type = _MUTATEKEYWORDPLANCAMPAIGNRESULT +DESCRIPTOR.message_types_by_name['GetKeywordPlanCampaignRequest'] = _GETKEYWORDPLANCAMPAIGNREQUEST +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignsRequest'] = _MUTATEKEYWORDPLANCAMPAIGNSREQUEST +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignOperation'] = _KEYWORDPLANCAMPAIGNOPERATION +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignsResponse'] = _MUTATEKEYWORDPLANCAMPAIGNSRESPONSE +DESCRIPTOR.message_types_by_name['MutateKeywordPlanCampaignResult'] = _MUTATEKEYWORDPLANCAMPAIGNRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordPlanCampaignRequest = _reflection.GeneratedProtocolMessageType('GetKeywordPlanCampaignRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETKEYWORDPLANCAMPAIGNREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_service_pb2' + , + '__doc__': """Request message for [KeywordPlanCampaignService.GetKeywordPlanCampaign + ][google.ads.googleads.v5.services.KeywordPlanCampaignService.GetKeywo + rdPlanCampaign]. + + Attributes: + resource_name: + Required. The resource name of the Keyword Plan campaign to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetKeywordPlanCampaignRequest) + }) +_sym_db.RegisterMessage(GetKeywordPlanCampaignRequest) + +MutateKeywordPlanCampaignsRequest = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_service_pb2' + , + '__doc__': """Request message for [KeywordPlanCampaignService.MutateKeywordPlanCampa + igns][google.ads.googleads.v5.services.KeywordPlanCampaignService.Muta + teKeywordPlanCampaigns]. + + Attributes: + customer_id: + Required. The ID of the customer whose Keyword Plan campaigns + are being modified. + operations: + Required. The list of operations to perform on individual + Keyword Plan campaigns. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignsRequest) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignsRequest) + +KeywordPlanCampaignOperation = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignOperation', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a Keyword Plan + campaign. + + Attributes: + update_mask: + The FieldMask that determines which resource fields are + modified in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + Keyword Plan campaign. + update: + Update operation: The Keyword Plan campaign is expected to + have a valid resource name. + remove: + Remove operation: A resource name for the removed Keyword Plan + campaign is expected, in this format: ``customers/{customer_i + d}/keywordPlanCampaigns/{keywordPlan_campaign_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanCampaignOperation) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignOperation) + +MutateKeywordPlanCampaignsResponse = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_service_pb2' + , + '__doc__': """Response message for a Keyword Plan campaign mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignsResponse) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignsResponse) + +MutateKeywordPlanCampaignResult = _reflection.GeneratedProtocolMessageType('MutateKeywordPlanCampaignResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANCAMPAIGNRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_campaign_service_pb2' + , + '__doc__': """The result for the Keyword Plan campaign mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlanCampaignResult) + }) +_sym_db.RegisterMessage(MutateKeywordPlanCampaignResult) + + +DESCRIPTOR._options = None +_GETKEYWORDPLANCAMPAIGNREQUEST.fields_by_name['resource_name']._options = None +_MUTATEKEYWORDPLANCAMPAIGNSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEKEYWORDPLANCAMPAIGNSREQUEST.fields_by_name['operations']._options = None + +_KEYWORDPLANCAMPAIGNSERVICE = _descriptor.ServiceDescriptor( + name='KeywordPlanCampaignService', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1160, + serialized_end=1710, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordPlanCampaign', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignService.GetKeywordPlanCampaign', + index=0, + containing_service=None, + input_type=_GETKEYWORDPLANCAMPAIGNREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2._KEYWORDPLANCAMPAIGN, + serialized_options=b'\202\323\344\223\0028\0226/v5/{resource_name=customers/*/keywordPlanCampaigns/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateKeywordPlanCampaigns', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns', + index=1, + containing_service=None, + input_type=_MUTATEKEYWORDPLANCAMPAIGNSREQUEST, + output_type=_MUTATEKEYWORDPLANCAMPAIGNSRESPONSE, + serialized_options=b'\202\323\344\223\002>\"9/v5/customers/{customer_id=*}/keywordPlanCampaigns:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDPLANCAMPAIGNSERVICE) + +DESCRIPTOR.services_by_name['KeywordPlanCampaignService'] = _KEYWORDPLANCAMPAIGNSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2_grpc.py new file mode 100644 index 000000000..e919db490 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_campaign_service_pb2_grpc.py @@ -0,0 +1,110 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import keyword_plan_campaign_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2 + + +class KeywordPlanCampaignServiceStub(object): + """Proto file describing the keyword plan campaign service. + + Service to manage Keyword Plan campaigns. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordPlanCampaign = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanCampaignService/GetKeywordPlanCampaign', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.GetKeywordPlanCampaignRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2.KeywordPlanCampaign.FromString, + ) + self.MutateKeywordPlanCampaigns = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanCampaignService/MutateKeywordPlanCampaigns', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsResponse.FromString, + ) + + +class KeywordPlanCampaignServiceServicer(object): + """Proto file describing the keyword plan campaign service. + + Service to manage Keyword Plan campaigns. + """ + + def GetKeywordPlanCampaign(self, request, context): + """Returns the requested Keyword Plan campaign in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateKeywordPlanCampaigns(self, request, context): + """Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordPlanCampaignServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordPlanCampaign': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordPlanCampaign, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.GetKeywordPlanCampaignRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2.KeywordPlanCampaign.SerializeToString, + ), + 'MutateKeywordPlanCampaigns': grpc.unary_unary_rpc_method_handler( + servicer.MutateKeywordPlanCampaigns, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordPlanCampaignService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordPlanCampaignService(object): + """Proto file describing the keyword plan campaign service. + + Service to manage Keyword Plan campaigns. + """ + + @staticmethod + def GetKeywordPlanCampaign(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanCampaignService/GetKeywordPlanCampaign', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.GetKeywordPlanCampaignRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__campaign__pb2.KeywordPlanCampaign.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateKeywordPlanCampaigns(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanCampaignService/MutateKeywordPlanCampaigns', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__campaign__service__pb2.MutateKeywordPlanCampaignsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2.py b/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2.py new file mode 100644 index 000000000..49c795bb9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2.py @@ -0,0 +1,580 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/keyword_plan_idea_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import keyword_plan_common_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2 +from google.ads.google_ads.v5.proto.enums import keyword_plan_network_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__network__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/keyword_plan_idea_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033KeywordPlanIdeaServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/keyword_plan_idea_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/common/keyword_plan_common.proto\x1a>google/ads/googleads_v5/proto/enums/keyword_plan_network.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/api/client.proto\"\xf6\x04\n\x1bGenerateKeywordIdeasRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12\x33\n\x08language\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x02\x12:\n\x14geo_target_constants\x18\x08 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1e\n\x16include_adult_keywords\x18\n \x01(\x08\x12\x12\n\npage_token\x18\x0c \x01(\t\x12\x11\n\tpage_size\x18\r \x01(\x05\x12\x66\n\x14keyword_plan_network\x18\t \x01(\x0e\x32H.google.ads.googleads.v5.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork\x12S\n\x14keyword_and_url_seed\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v5.services.KeywordAndUrlSeedH\x00\x12\x45\n\x0ckeyword_seed\x18\x03 \x01(\x0b\x32-.google.ads.googleads.v5.services.KeywordSeedH\x00\x12=\n\x08url_seed\x18\x05 \x01(\x0b\x32).google.ads.googleads.v5.services.UrlSeedH\x00\x12?\n\tsite_seed\x18\x0b \x01(\x0b\x32*.google.ads.googleads.v5.services.SiteSeedH\x00\x42\x06\n\x04seed\"n\n\x11KeywordAndUrlSeed\x12)\n\x03url\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08keywords\x18\x02 \x03(\x0b\x32\x1c.google.protobuf.StringValue\"=\n\x0bKeywordSeed\x12.\n\x08keywords\x18\x01 \x03(\x0b\x32\x1c.google.protobuf.StringValue\"6\n\x08SiteSeed\x12*\n\x04site\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"4\n\x07UrlSeed\x12)\n\x03url\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x98\x01\n\x1bGenerateKeywordIdeaResponse\x12L\n\x07results\x18\x01 \x03(\x0b\x32;.google.ads.googleads.v5.services.GenerateKeywordIdeaResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x03\"\xa3\x01\n\x19GenerateKeywordIdeaResult\x12*\n\x04text\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12Z\n\x14keyword_idea_metrics\x18\x03 \x01(\x0b\x32<.google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics2\x8b\x02\n\x16KeywordPlanIdeaService\x12\xd3\x01\n\x14GenerateKeywordIdeas\x12=.google.ads.googleads.v5.services.GenerateKeywordIdeasRequest\x1a=.google.ads.googleads.v5.services.GenerateKeywordIdeaResponse\"=\x82\xd3\xe4\x93\x02\x37\"2/v5/customers/{customer_id=*}:generateKeywordIdeas:\x01*\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1bKeywordPlanIdeaServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__network__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,]) + + + + +_GENERATEKEYWORDIDEASREQUEST = _descriptor.Descriptor( + name='GenerateKeywordIdeasRequest', + full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.language', index=1, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='geo_target_constants', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.geo_target_constants', index=2, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='include_adult_keywords', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.include_adult_keywords', index=3, + number=10, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.page_token', index=4, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.page_size', index=5, + number=13, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_plan_network', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.keyword_plan_network', index=6, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_and_url_seed', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.keyword_and_url_seed', index=7, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_seed', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.keyword_seed', index=8, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='url_seed', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.url_seed', index=9, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='site_seed', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.site_seed', index=10, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='seed', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeasRequest.seed', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=357, + serialized_end=987, +) + + +_KEYWORDANDURLSEED = _descriptor.Descriptor( + name='KeywordAndUrlSeed', + full_name='google.ads.googleads.v5.services.KeywordAndUrlSeed', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.services.KeywordAndUrlSeed.url', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keywords', full_name='google.ads.googleads.v5.services.KeywordAndUrlSeed.keywords', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=989, + serialized_end=1099, +) + + +_KEYWORDSEED = _descriptor.Descriptor( + name='KeywordSeed', + full_name='google.ads.googleads.v5.services.KeywordSeed', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keywords', full_name='google.ads.googleads.v5.services.KeywordSeed.keywords', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1101, + serialized_end=1162, +) + + +_SITESEED = _descriptor.Descriptor( + name='SiteSeed', + full_name='google.ads.googleads.v5.services.SiteSeed', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='site', full_name='google.ads.googleads.v5.services.SiteSeed.site', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1164, + serialized_end=1218, +) + + +_URLSEED = _descriptor.Descriptor( + name='UrlSeed', + full_name='google.ads.googleads.v5.services.UrlSeed', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='url', full_name='google.ads.googleads.v5.services.UrlSeed.url', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1220, + serialized_end=1272, +) + + +_GENERATEKEYWORDIDEARESPONSE = _descriptor.Descriptor( + name='GenerateKeywordIdeaResponse', + full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_size', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResponse.total_size', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1275, + serialized_end=1427, +) + + +_GENERATEKEYWORDIDEARESULT = _descriptor.Descriptor( + name='GenerateKeywordIdeaResult', + full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResult.text', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_idea_metrics', full_name='google.ads.googleads.v5.services.GenerateKeywordIdeaResult.keyword_idea_metrics', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1430, + serialized_end=1593, +) + +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['language'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['geo_target_constants'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_plan_network'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__plan__network__pb2._KEYWORDPLANNETWORKENUM_KEYWORDPLANNETWORK +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_and_url_seed'].message_type = _KEYWORDANDURLSEED +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_seed'].message_type = _KEYWORDSEED +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['url_seed'].message_type = _URLSEED +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['site_seed'].message_type = _SITESEED +_GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'].fields.append( + _GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_and_url_seed']) +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_and_url_seed'].containing_oneof = _GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'] +_GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'].fields.append( + _GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_seed']) +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['keyword_seed'].containing_oneof = _GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'] +_GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'].fields.append( + _GENERATEKEYWORDIDEASREQUEST.fields_by_name['url_seed']) +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['url_seed'].containing_oneof = _GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'] +_GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'].fields.append( + _GENERATEKEYWORDIDEASREQUEST.fields_by_name['site_seed']) +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['site_seed'].containing_oneof = _GENERATEKEYWORDIDEASREQUEST.oneofs_by_name['seed'] +_KEYWORDANDURLSEED.fields_by_name['url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDANDURLSEED.fields_by_name['keywords'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDSEED.fields_by_name['keywords'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_SITESEED.fields_by_name['site'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_URLSEED.fields_by_name['url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEKEYWORDIDEARESPONSE.fields_by_name['results'].message_type = _GENERATEKEYWORDIDEARESULT +_GENERATEKEYWORDIDEARESULT.fields_by_name['text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEKEYWORDIDEARESULT.fields_by_name['keyword_idea_metrics'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2._KEYWORDPLANHISTORICALMETRICS +DESCRIPTOR.message_types_by_name['GenerateKeywordIdeasRequest'] = _GENERATEKEYWORDIDEASREQUEST +DESCRIPTOR.message_types_by_name['KeywordAndUrlSeed'] = _KEYWORDANDURLSEED +DESCRIPTOR.message_types_by_name['KeywordSeed'] = _KEYWORDSEED +DESCRIPTOR.message_types_by_name['SiteSeed'] = _SITESEED +DESCRIPTOR.message_types_by_name['UrlSeed'] = _URLSEED +DESCRIPTOR.message_types_by_name['GenerateKeywordIdeaResponse'] = _GENERATEKEYWORDIDEARESPONSE +DESCRIPTOR.message_types_by_name['GenerateKeywordIdeaResult'] = _GENERATEKEYWORDIDEARESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GenerateKeywordIdeasRequest = _reflection.GeneratedProtocolMessageType('GenerateKeywordIdeasRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEKEYWORDIDEASREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Request message for [KeywordPlanIdeaService.GenerateKeywordIdeas][goog + le.ads.googleads.v5.services.KeywordPlanIdeaService.GenerateKeywordIde + as]. + + Attributes: + customer_id: + The ID of the customer with the recommendation. + language: + Required. The resource name of the language to target. + Required + geo_target_constants: + The resource names of the location to target. Max 10 + include_adult_keywords: + If true, adult keywords will be included in response. The + default value is false. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. To request next page of + results use the value obtained from ``next_page_token`` in the + previous response. The request fields must match across pages. + page_size: + Number of results to retrieve in a single page. A maximum of + 10,000 results may be returned, if the page\_size exceeds + this, it is ignored. If unspecified, at most 10,000 results + will be returned. The server may decide to further limit the + number of returned resources. If the response contains fewer + than 10,000 results it may not be assumed as last page of + results. + keyword_plan_network: + Targeting network. + seed: + The type of seed to generate keyword ideas. + keyword_and_url_seed: + A Keyword and a specific Url to generate ideas from e.g. cars, + www.example.com/cars. + keyword_seed: + A Keyword or phrase to generate ideas from, e.g. cars. + url_seed: + A specific url to generate ideas from, e.g. + www.example.com/cars. + site_seed: + The site to generate ideas from, e.g. www.example.com. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateKeywordIdeasRequest) + }) +_sym_db.RegisterMessage(GenerateKeywordIdeasRequest) + +KeywordAndUrlSeed = _reflection.GeneratedProtocolMessageType('KeywordAndUrlSeed', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDANDURLSEED, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Keyword And Url Seed + + Attributes: + url: + The URL to crawl in order to generate keyword ideas. + keywords: + Requires at least one keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordAndUrlSeed) + }) +_sym_db.RegisterMessage(KeywordAndUrlSeed) + +KeywordSeed = _reflection.GeneratedProtocolMessageType('KeywordSeed', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDSEED, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Keyword Seed + + Attributes: + keywords: + Requires at least one keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordSeed) + }) +_sym_db.RegisterMessage(KeywordSeed) + +SiteSeed = _reflection.GeneratedProtocolMessageType('SiteSeed', (_message.Message,), { + 'DESCRIPTOR' : _SITESEED, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Site Seed + + Attributes: + site: + The domain name of the site. If the customer requesting the + ideas doesn't own the site provided only public information is + returned. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SiteSeed) + }) +_sym_db.RegisterMessage(SiteSeed) + +UrlSeed = _reflection.GeneratedProtocolMessageType('UrlSeed', (_message.Message,), { + 'DESCRIPTOR' : _URLSEED, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Url Seed + + Attributes: + url: + The URL to crawl in order to generate keyword ideas. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UrlSeed) + }) +_sym_db.RegisterMessage(UrlSeed) + +GenerateKeywordIdeaResponse = _reflection.GeneratedProtocolMessageType('GenerateKeywordIdeaResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEKEYWORDIDEARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """Response message for [KeywordPlanIdeaService.GenerateKeywordIdeas][goo + gle.ads.googleads.v5.services.KeywordPlanIdeaService.GenerateKeywordId + eas]. + + Attributes: + results: + Results of generating keyword ideas. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + total_size: + Total number of results available. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateKeywordIdeaResponse) + }) +_sym_db.RegisterMessage(GenerateKeywordIdeaResponse) + +GenerateKeywordIdeaResult = _reflection.GeneratedProtocolMessageType('GenerateKeywordIdeaResult', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEKEYWORDIDEARESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_idea_service_pb2' + , + '__doc__': """The result of generating keyword ideas. + + Attributes: + text: + Text of the keyword idea. As in Keyword Plan historical + metrics, this text may not be an actual keyword, but the + canonical form of multiple keywords. See + KeywordPlanKeywordHistoricalMetrics message in + KeywordPlanService. + keyword_idea_metrics: + The historical metrics for the keyword + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateKeywordIdeaResult) + }) +_sym_db.RegisterMessage(GenerateKeywordIdeaResult) + + +DESCRIPTOR._options = None +_GENERATEKEYWORDIDEASREQUEST.fields_by_name['language']._options = None + +_KEYWORDPLANIDEASERVICE = _descriptor.ServiceDescriptor( + name='KeywordPlanIdeaService', + full_name='google.ads.googleads.v5.services.KeywordPlanIdeaService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1596, + serialized_end=1863, + methods=[ + _descriptor.MethodDescriptor( + name='GenerateKeywordIdeas', + full_name='google.ads.googleads.v5.services.KeywordPlanIdeaService.GenerateKeywordIdeas', + index=0, + containing_service=None, + input_type=_GENERATEKEYWORDIDEASREQUEST, + output_type=_GENERATEKEYWORDIDEARESPONSE, + serialized_options=b'\202\323\344\223\0027\"2/v5/customers/{customer_id=*}:generateKeywordIdeas:\001*', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDPLANIDEASERVICE) + +DESCRIPTOR.services_by_name['KeywordPlanIdeaService'] = _KEYWORDPLANIDEASERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2_grpc.py new file mode 100644 index 000000000..a9e3a9276 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_idea_service_pb2_grpc.py @@ -0,0 +1,75 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import keyword_plan_idea_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2 + + +class KeywordPlanIdeaServiceStub(object): + """Proto file describing the keyword plan idea service. + + Service to generate keyword ideas. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GenerateKeywordIdeas = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanIdeaService/GenerateKeywordIdeas', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeasRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeaResponse.FromString, + ) + + +class KeywordPlanIdeaServiceServicer(object): + """Proto file describing the keyword plan idea service. + + Service to generate keyword ideas. + """ + + def GenerateKeywordIdeas(self, request, context): + """Returns a list of keyword ideas. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordPlanIdeaServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GenerateKeywordIdeas': grpc.unary_unary_rpc_method_handler( + servicer.GenerateKeywordIdeas, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeasRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordPlanIdeaService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordPlanIdeaService(object): + """Proto file describing the keyword plan idea service. + + Service to generate keyword ideas. + """ + + @staticmethod + def GenerateKeywordIdeas(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanIdeaService/GenerateKeywordIdeas', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeasRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__idea__service__pb2.GenerateKeywordIdeaResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2.py b/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2.py new file mode 100644 index 000000000..e6828e5b8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2.py @@ -0,0 +1,1525 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/keyword_plan_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import keyword_plan_common_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2 +from google.ads.google_ads.v5.proto.resources import keyword_plan_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/keyword_plan_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\027KeywordPlanServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/services/keyword_plan_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/common/keyword_plan_common.proto\x1a:google/ads/googleads_v5/proto/resources/keyword_plan.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\\\n\x15GetKeywordPlanRequest\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$googleads.googleapis.com/KeywordPlan\"\xb6\x01\n\x19MutateKeywordPlansRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12O\n\noperations\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.KeywordPlanOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xea\x01\n\x14KeywordPlanOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12@\n\x06\x63reate\x18\x01 \x01(\x0b\x32..google.ads.googleads.v5.resources.KeywordPlanH\x00\x12@\n\x06update\x18\x02 \x01(\x0b\x32..google.ads.googleads.v5.resources.KeywordPlanH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x9c\x01\n\x1aMutateKeywordPlansResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12K\n\x07results\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.services.MutateKeywordPlansResult\"1\n\x18MutateKeywordPlansResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\"9\n\x1cGenerateForecastCurveRequest\x12\x19\n\x0ckeyword_plan\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x85\x01\n\x1dGenerateForecastCurveResponse\x12\x64\n\x18\x63\x61mpaign_forecast_curves\x18\x01 \x03(\x0b\x32\x42.google.ads.googleads.v5.services.KeywordPlanCampaignForecastCurve\">\n!GenerateForecastTimeSeriesRequest\x12\x19\n\x0ckeyword_plan\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x91\x01\n\"GenerateForecastTimeSeriesResponse\x12k\n\x1cweekly_time_series_forecasts\x18\x01 \x03(\x0b\x32\x45.google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast\";\n\x1eGenerateForecastMetricsRequest\x12\x19\n\x0ckeyword_plan\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xaf\x02\n\x1fGenerateForecastMetricsResponse\x12Y\n\x12\x63\x61mpaign_forecasts\x18\x01 \x03(\x0b\x32=.google.ads.googleads.v5.services.KeywordPlanCampaignForecast\x12X\n\x12\x61\x64_group_forecasts\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.KeywordPlanAdGroupForecast\x12W\n\x11keyword_forecasts\x18\x03 \x03(\x0b\x32<.google.ads.googleads.v5.services.KeywordPlanKeywordForecast\"\xa8\x01\n\x1bKeywordPlanCampaignForecast\x12;\n\x15keyword_plan_campaign\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12L\n\x11\x63\x61mpaign_forecast\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.services.ForecastMetrics\"\xa7\x01\n\x1aKeywordPlanAdGroupForecast\x12;\n\x15keyword_plan_ad_group\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12L\n\x11\x61\x64_group_forecast\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.services.ForecastMetrics\"\xae\x01\n\x1aKeywordPlanKeywordForecast\x12\x43\n\x1dkeyword_plan_ad_group_keyword\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12K\n\x10keyword_forecast\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.services.ForecastMetrics\"\xc8\x01\n KeywordPlanCampaignForecastCurve\x12;\n\x15keyword_plan_campaign\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12g\n\x1amax_cpc_bid_forecast_curve\x18\x02 \x01(\x0b\x32\x43.google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecastCurve\"\x82\x01\n!KeywordPlanMaxCpcBidForecastCurve\x12]\n\x15max_cpc_bid_forecasts\x18\x01 \x03(\x0b\x32>.google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecast\"\xa8\x01\n\x1cKeywordPlanMaxCpcBidForecast\x12\x37\n\x12max_cpc_bid_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12O\n\x14max_cpc_bid_forecast\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.services.ForecastMetrics\"\xba\x01\n#KeywordPlanWeeklyTimeSeriesForecast\x12\"\n\x15keyword_plan_campaign\x18\x01 \x01(\tH\x00\x88\x01\x01\x12U\n\x10weekly_forecasts\x18\x02 \x03(\x0b\x32;.google.ads.googleads.v5.services.KeywordPlanWeeklyForecastB\x18\n\x16_keyword_plan_campaign\"\x88\x01\n\x19KeywordPlanWeeklyForecast\x12\x17\n\nstart_date\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x08\x66orecast\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v5.services.ForecastMetricsB\r\n\x0b_start_date\"\x81\x02\n\x0f\x46orecastMetrics\x12\x31\n\x0bimpressions\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12)\n\x03\x63tr\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x30\n\x0b\x61verage_cpc\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12,\n\x06\x63licks\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x30\n\x0b\x63ost_micros\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"=\n GenerateHistoricalMetricsRequest\x12\x19\n\x0ckeyword_plan\x18\x01 \x01(\tB\x03\xe0\x41\x02\"{\n!GenerateHistoricalMetricsResponse\x12V\n\x07metrics\x18\x01 \x03(\x0b\x32\x45.google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics\"\xc8\x01\n#KeywordPlanKeywordHistoricalMetrics\x12\x32\n\x0csearch_query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0e\x63lose_variants\x18\x03 \x03(\t\x12U\n\x0fkeyword_metrics\x18\x02 \x01(\x0b\x32<.google.ads.googleads.v5.common.KeywordPlanHistoricalMetrics2\xf2\x0b\n\x12KeywordPlanService\x12\xc1\x01\n\x0eGetKeywordPlan\x12\x37.google.ads.googleads.v5.services.GetKeywordPlanRequest\x1a..google.ads.googleads.v5.resources.KeywordPlan\"F\x82\xd3\xe4\x93\x02\x30\x12./v5/{resource_name=customers/*/keywordPlans/*}\xda\x41\rresource_name\x12\xe6\x01\n\x12MutateKeywordPlans\x12;.google.ads.googleads.v5.services.MutateKeywordPlansRequest\x1a<.google.ads.googleads.v5.services.MutateKeywordPlansResponse\"U\x82\xd3\xe4\x93\x02\x36\"1/v5/customers/{customer_id=*}/keywordPlans:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x12\xf7\x01\n\x15GenerateForecastCurve\x12>.google.ads.googleads.v5.services.GenerateForecastCurveRequest\x1a?.google.ads.googleads.v5.services.GenerateForecastCurveResponse\"]\x82\xd3\xe4\x93\x02H\"C/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve:\x01*\xda\x41\x0ckeyword_plan\x12\x8b\x02\n\x1aGenerateForecastTimeSeries\x12\x43.google.ads.googleads.v5.services.GenerateForecastTimeSeriesRequest\x1a\x44.google.ads.googleads.v5.services.GenerateForecastTimeSeriesResponse\"b\x82\xd3\xe4\x93\x02M\"H/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries:\x01*\xda\x41\x0ckeyword_plan\x12\xff\x01\n\x17GenerateForecastMetrics\x12@.google.ads.googleads.v5.services.GenerateForecastMetricsRequest\x1a\x41.google.ads.googleads.v5.services.GenerateForecastMetricsResponse\"_\x82\xd3\xe4\x93\x02J\"E/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics:\x01*\xda\x41\x0ckeyword_plan\x12\x87\x02\n\x19GenerateHistoricalMetrics\x12\x42.google.ads.googleads.v5.services.GenerateHistoricalMetricsRequest\x1a\x43.google.ads.googleads.v5.services.GenerateHistoricalMetricsResponse\"a\x82\xd3\xe4\x93\x02L\"G/v5/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics:\x01*\xda\x41\x0ckeyword_plan\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfe\x01\n$com.google.ads.googleads.v5.servicesB\x17KeywordPlanServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDPLANREQUEST = _descriptor.Descriptor( + name='GetKeywordPlanRequest', + full_name='google.ads.googleads.v5.services.GetKeywordPlanRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetKeywordPlanRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A&\n$googleads.googleapis.com/KeywordPlan', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=433, + serialized_end=525, +) + + +_MUTATEKEYWORDPLANSREQUEST = _descriptor.Descriptor( + name='MutateKeywordPlansRequest', + full_name='google.ads.googleads.v5.services.MutateKeywordPlansRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateKeywordPlansRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateKeywordPlansRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateKeywordPlansRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateKeywordPlansRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=528, + serialized_end=710, +) + + +_KEYWORDPLANOPERATION = _descriptor.Descriptor( + name='KeywordPlanOperation', + full_name='google.ads.googleads.v5.services.KeywordPlanOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.KeywordPlanOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.KeywordPlanOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.KeywordPlanOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.KeywordPlanOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.KeywordPlanOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=713, + serialized_end=947, +) + + +_MUTATEKEYWORDPLANSRESPONSE = _descriptor.Descriptor( + name='MutateKeywordPlansResponse', + full_name='google.ads.googleads.v5.services.MutateKeywordPlansResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateKeywordPlansResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateKeywordPlansResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=950, + serialized_end=1106, +) + + +_MUTATEKEYWORDPLANSRESULT = _descriptor.Descriptor( + name='MutateKeywordPlansResult', + full_name='google.ads.googleads.v5.services.MutateKeywordPlansResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateKeywordPlansResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1108, + serialized_end=1157, +) + + +_GENERATEFORECASTCURVEREQUEST = _descriptor.Descriptor( + name='GenerateForecastCurveRequest', + full_name='google.ads.googleads.v5.services.GenerateForecastCurveRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.services.GenerateForecastCurveRequest.keyword_plan', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1159, + serialized_end=1216, +) + + +_GENERATEFORECASTCURVERESPONSE = _descriptor.Descriptor( + name='GenerateForecastCurveResponse', + full_name='google.ads.googleads.v5.services.GenerateForecastCurveResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_forecast_curves', full_name='google.ads.googleads.v5.services.GenerateForecastCurveResponse.campaign_forecast_curves', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1219, + serialized_end=1352, +) + + +_GENERATEFORECASTTIMESERIESREQUEST = _descriptor.Descriptor( + name='GenerateForecastTimeSeriesRequest', + full_name='google.ads.googleads.v5.services.GenerateForecastTimeSeriesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.services.GenerateForecastTimeSeriesRequest.keyword_plan', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1354, + serialized_end=1416, +) + + +_GENERATEFORECASTTIMESERIESRESPONSE = _descriptor.Descriptor( + name='GenerateForecastTimeSeriesResponse', + full_name='google.ads.googleads.v5.services.GenerateForecastTimeSeriesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='weekly_time_series_forecasts', full_name='google.ads.googleads.v5.services.GenerateForecastTimeSeriesResponse.weekly_time_series_forecasts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1419, + serialized_end=1564, +) + + +_GENERATEFORECASTMETRICSREQUEST = _descriptor.Descriptor( + name='GenerateForecastMetricsRequest', + full_name='google.ads.googleads.v5.services.GenerateForecastMetricsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.services.GenerateForecastMetricsRequest.keyword_plan', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1566, + serialized_end=1625, +) + + +_GENERATEFORECASTMETRICSRESPONSE = _descriptor.Descriptor( + name='GenerateForecastMetricsResponse', + full_name='google.ads.googleads.v5.services.GenerateForecastMetricsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='campaign_forecasts', full_name='google.ads.googleads.v5.services.GenerateForecastMetricsResponse.campaign_forecasts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_forecasts', full_name='google.ads.googleads.v5.services.GenerateForecastMetricsResponse.ad_group_forecasts', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_forecasts', full_name='google.ads.googleads.v5.services.GenerateForecastMetricsResponse.keyword_forecasts', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1628, + serialized_end=1931, +) + + +_KEYWORDPLANCAMPAIGNFORECAST = _descriptor.Descriptor( + name='KeywordPlanCampaignForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan_campaign', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecast.keyword_plan_campaign', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_forecast', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecast.campaign_forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1934, + serialized_end=2102, +) + + +_KEYWORDPLANADGROUPFORECAST = _descriptor.Descriptor( + name='KeywordPlanAdGroupForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupForecast.keyword_plan_ad_group', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_group_forecast', full_name='google.ads.googleads.v5.services.KeywordPlanAdGroupForecast.ad_group_forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2105, + serialized_end=2272, +) + + +_KEYWORDPLANKEYWORDFORECAST = _descriptor.Descriptor( + name='KeywordPlanKeywordForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanKeywordForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan_ad_group_keyword', full_name='google.ads.googleads.v5.services.KeywordPlanKeywordForecast.keyword_plan_ad_group_keyword', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_forecast', full_name='google.ads.googleads.v5.services.KeywordPlanKeywordForecast.keyword_forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2275, + serialized_end=2449, +) + + +_KEYWORDPLANCAMPAIGNFORECASTCURVE = _descriptor.Descriptor( + name='KeywordPlanCampaignForecastCurve', + full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecastCurve', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan_campaign', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecastCurve.keyword_plan_campaign', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_cpc_bid_forecast_curve', full_name='google.ads.googleads.v5.services.KeywordPlanCampaignForecastCurve.max_cpc_bid_forecast_curve', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2452, + serialized_end=2652, +) + + +_KEYWORDPLANMAXCPCBIDFORECASTCURVE = _descriptor.Descriptor( + name='KeywordPlanMaxCpcBidForecastCurve', + full_name='google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecastCurve', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='max_cpc_bid_forecasts', full_name='google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecastCurve.max_cpc_bid_forecasts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2655, + serialized_end=2785, +) + + +_KEYWORDPLANMAXCPCBIDFORECAST = _descriptor.Descriptor( + name='KeywordPlanMaxCpcBidForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='max_cpc_bid_micros', full_name='google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecast.max_cpc_bid_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_cpc_bid_forecast', full_name='google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecast.max_cpc_bid_forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2788, + serialized_end=2956, +) + + +_KEYWORDPLANWEEKLYTIMESERIESFORECAST = _descriptor.Descriptor( + name='KeywordPlanWeeklyTimeSeriesForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan_campaign', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast.keyword_plan_campaign', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='weekly_forecasts', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast.weekly_forecasts', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_keyword_plan_campaign', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast._keyword_plan_campaign', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2959, + serialized_end=3145, +) + + +_KEYWORDPLANWEEKLYFORECAST = _descriptor.Descriptor( + name='KeywordPlanWeeklyForecast', + full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyForecast.start_date', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='forecast', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyForecast.forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_start_date', full_name='google.ads.googleads.v5.services.KeywordPlanWeeklyForecast._start_date', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3148, + serialized_end=3284, +) + + +_FORECASTMETRICS = _descriptor.Descriptor( + name='ForecastMetrics', + full_name='google.ads.googleads.v5.services.ForecastMetrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.services.ForecastMetrics.impressions', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ctr', full_name='google.ads.googleads.v5.services.ForecastMetrics.ctr', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='average_cpc', full_name='google.ads.googleads.v5.services.ForecastMetrics.average_cpc', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v5.services.ForecastMetrics.clicks', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.services.ForecastMetrics.cost_micros', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3287, + serialized_end=3544, +) + + +_GENERATEHISTORICALMETRICSREQUEST = _descriptor.Descriptor( + name='GenerateHistoricalMetricsRequest', + full_name='google.ads.googleads.v5.services.GenerateHistoricalMetricsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='keyword_plan', full_name='google.ads.googleads.v5.services.GenerateHistoricalMetricsRequest.keyword_plan', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3546, + serialized_end=3607, +) + + +_GENERATEHISTORICALMETRICSRESPONSE = _descriptor.Descriptor( + name='GenerateHistoricalMetricsResponse', + full_name='google.ads.googleads.v5.services.GenerateHistoricalMetricsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='metrics', full_name='google.ads.googleads.v5.services.GenerateHistoricalMetricsResponse.metrics', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3609, + serialized_end=3732, +) + + +_KEYWORDPLANKEYWORDHISTORICALMETRICS = _descriptor.Descriptor( + name='KeywordPlanKeywordHistoricalMetrics', + full_name='google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='search_query', full_name='google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics.search_query', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='close_variants', full_name='google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics.close_variants', index=1, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword_metrics', full_name='google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics.keyword_metrics', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3735, + serialized_end=3935, +) + +_MUTATEKEYWORDPLANSREQUEST.fields_by_name['operations'].message_type = _KEYWORDPLANOPERATION +_KEYWORDPLANOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_KEYWORDPLANOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2._KEYWORDPLAN +_KEYWORDPLANOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2._KEYWORDPLAN +_KEYWORDPLANOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANOPERATION.fields_by_name['create']) +_KEYWORDPLANOPERATION.fields_by_name['create'].containing_oneof = _KEYWORDPLANOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANOPERATION.fields_by_name['update']) +_KEYWORDPLANOPERATION.fields_by_name['update'].containing_oneof = _KEYWORDPLANOPERATION.oneofs_by_name['operation'] +_KEYWORDPLANOPERATION.oneofs_by_name['operation'].fields.append( + _KEYWORDPLANOPERATION.fields_by_name['remove']) +_KEYWORDPLANOPERATION.fields_by_name['remove'].containing_oneof = _KEYWORDPLANOPERATION.oneofs_by_name['operation'] +_MUTATEKEYWORDPLANSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEKEYWORDPLANSRESPONSE.fields_by_name['results'].message_type = _MUTATEKEYWORDPLANSRESULT +_GENERATEFORECASTCURVERESPONSE.fields_by_name['campaign_forecast_curves'].message_type = _KEYWORDPLANCAMPAIGNFORECASTCURVE +_GENERATEFORECASTTIMESERIESRESPONSE.fields_by_name['weekly_time_series_forecasts'].message_type = _KEYWORDPLANWEEKLYTIMESERIESFORECAST +_GENERATEFORECASTMETRICSRESPONSE.fields_by_name['campaign_forecasts'].message_type = _KEYWORDPLANCAMPAIGNFORECAST +_GENERATEFORECASTMETRICSRESPONSE.fields_by_name['ad_group_forecasts'].message_type = _KEYWORDPLANADGROUPFORECAST +_GENERATEFORECASTMETRICSRESPONSE.fields_by_name['keyword_forecasts'].message_type = _KEYWORDPLANKEYWORDFORECAST +_KEYWORDPLANCAMPAIGNFORECAST.fields_by_name['keyword_plan_campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANCAMPAIGNFORECAST.fields_by_name['campaign_forecast'].message_type = _FORECASTMETRICS +_KEYWORDPLANADGROUPFORECAST.fields_by_name['keyword_plan_ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANADGROUPFORECAST.fields_by_name['ad_group_forecast'].message_type = _FORECASTMETRICS +_KEYWORDPLANKEYWORDFORECAST.fields_by_name['keyword_plan_ad_group_keyword'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANKEYWORDFORECAST.fields_by_name['keyword_forecast'].message_type = _FORECASTMETRICS +_KEYWORDPLANCAMPAIGNFORECASTCURVE.fields_by_name['keyword_plan_campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANCAMPAIGNFORECASTCURVE.fields_by_name['max_cpc_bid_forecast_curve'].message_type = _KEYWORDPLANMAXCPCBIDFORECASTCURVE +_KEYWORDPLANMAXCPCBIDFORECASTCURVE.fields_by_name['max_cpc_bid_forecasts'].message_type = _KEYWORDPLANMAXCPCBIDFORECAST +_KEYWORDPLANMAXCPCBIDFORECAST.fields_by_name['max_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_KEYWORDPLANMAXCPCBIDFORECAST.fields_by_name['max_cpc_bid_forecast'].message_type = _FORECASTMETRICS +_KEYWORDPLANWEEKLYTIMESERIESFORECAST.fields_by_name['weekly_forecasts'].message_type = _KEYWORDPLANWEEKLYFORECAST +_KEYWORDPLANWEEKLYTIMESERIESFORECAST.oneofs_by_name['_keyword_plan_campaign'].fields.append( + _KEYWORDPLANWEEKLYTIMESERIESFORECAST.fields_by_name['keyword_plan_campaign']) +_KEYWORDPLANWEEKLYTIMESERIESFORECAST.fields_by_name['keyword_plan_campaign'].containing_oneof = _KEYWORDPLANWEEKLYTIMESERIESFORECAST.oneofs_by_name['_keyword_plan_campaign'] +_KEYWORDPLANWEEKLYFORECAST.fields_by_name['forecast'].message_type = _FORECASTMETRICS +_KEYWORDPLANWEEKLYFORECAST.oneofs_by_name['_start_date'].fields.append( + _KEYWORDPLANWEEKLYFORECAST.fields_by_name['start_date']) +_KEYWORDPLANWEEKLYFORECAST.fields_by_name['start_date'].containing_oneof = _KEYWORDPLANWEEKLYFORECAST.oneofs_by_name['_start_date'] +_FORECASTMETRICS.fields_by_name['impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_FORECASTMETRICS.fields_by_name['ctr'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_FORECASTMETRICS.fields_by_name['average_cpc'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FORECASTMETRICS.fields_by_name['clicks'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_FORECASTMETRICS.fields_by_name['cost_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_GENERATEHISTORICALMETRICSRESPONSE.fields_by_name['metrics'].message_type = _KEYWORDPLANKEYWORDHISTORICALMETRICS +_KEYWORDPLANKEYWORDHISTORICALMETRICS.fields_by_name['search_query'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDPLANKEYWORDHISTORICALMETRICS.fields_by_name['keyword_metrics'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_keyword__plan__common__pb2._KEYWORDPLANHISTORICALMETRICS +DESCRIPTOR.message_types_by_name['GetKeywordPlanRequest'] = _GETKEYWORDPLANREQUEST +DESCRIPTOR.message_types_by_name['MutateKeywordPlansRequest'] = _MUTATEKEYWORDPLANSREQUEST +DESCRIPTOR.message_types_by_name['KeywordPlanOperation'] = _KEYWORDPLANOPERATION +DESCRIPTOR.message_types_by_name['MutateKeywordPlansResponse'] = _MUTATEKEYWORDPLANSRESPONSE +DESCRIPTOR.message_types_by_name['MutateKeywordPlansResult'] = _MUTATEKEYWORDPLANSRESULT +DESCRIPTOR.message_types_by_name['GenerateForecastCurveRequest'] = _GENERATEFORECASTCURVEREQUEST +DESCRIPTOR.message_types_by_name['GenerateForecastCurveResponse'] = _GENERATEFORECASTCURVERESPONSE +DESCRIPTOR.message_types_by_name['GenerateForecastTimeSeriesRequest'] = _GENERATEFORECASTTIMESERIESREQUEST +DESCRIPTOR.message_types_by_name['GenerateForecastTimeSeriesResponse'] = _GENERATEFORECASTTIMESERIESRESPONSE +DESCRIPTOR.message_types_by_name['GenerateForecastMetricsRequest'] = _GENERATEFORECASTMETRICSREQUEST +DESCRIPTOR.message_types_by_name['GenerateForecastMetricsResponse'] = _GENERATEFORECASTMETRICSRESPONSE +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignForecast'] = _KEYWORDPLANCAMPAIGNFORECAST +DESCRIPTOR.message_types_by_name['KeywordPlanAdGroupForecast'] = _KEYWORDPLANADGROUPFORECAST +DESCRIPTOR.message_types_by_name['KeywordPlanKeywordForecast'] = _KEYWORDPLANKEYWORDFORECAST +DESCRIPTOR.message_types_by_name['KeywordPlanCampaignForecastCurve'] = _KEYWORDPLANCAMPAIGNFORECASTCURVE +DESCRIPTOR.message_types_by_name['KeywordPlanMaxCpcBidForecastCurve'] = _KEYWORDPLANMAXCPCBIDFORECASTCURVE +DESCRIPTOR.message_types_by_name['KeywordPlanMaxCpcBidForecast'] = _KEYWORDPLANMAXCPCBIDFORECAST +DESCRIPTOR.message_types_by_name['KeywordPlanWeeklyTimeSeriesForecast'] = _KEYWORDPLANWEEKLYTIMESERIESFORECAST +DESCRIPTOR.message_types_by_name['KeywordPlanWeeklyForecast'] = _KEYWORDPLANWEEKLYFORECAST +DESCRIPTOR.message_types_by_name['ForecastMetrics'] = _FORECASTMETRICS +DESCRIPTOR.message_types_by_name['GenerateHistoricalMetricsRequest'] = _GENERATEHISTORICALMETRICSREQUEST +DESCRIPTOR.message_types_by_name['GenerateHistoricalMetricsResponse'] = _GENERATEHISTORICALMETRICSRESPONSE +DESCRIPTOR.message_types_by_name['KeywordPlanKeywordHistoricalMetrics'] = _KEYWORDPLANKEYWORDHISTORICALMETRICS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordPlanRequest = _reflection.GeneratedProtocolMessageType('GetKeywordPlanRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETKEYWORDPLANREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.GetKeywordPlan][google.ads.goo + gleads.v5.services.KeywordPlanService.GetKeywordPlan]. + + Attributes: + resource_name: + Required. The resource name of the plan to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetKeywordPlanRequest) + }) +_sym_db.RegisterMessage(GetKeywordPlanRequest) + +MutateKeywordPlansRequest = _reflection.GeneratedProtocolMessageType('MutateKeywordPlansRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.MutateKeywordPlans][google.ads + .googleads.v5.services.KeywordPlanService.MutateKeywordPlans]. + + Attributes: + customer_id: + Required. The ID of the customer whose keyword plans are being + modified. + operations: + Required. The list of operations to perform on individual + keyword plans. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlansRequest) + }) +_sym_db.RegisterMessage(MutateKeywordPlansRequest) + +KeywordPlanOperation = _reflection.GeneratedProtocolMessageType('KeywordPlanOperation', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on a keyword plan. + + Attributes: + update_mask: + The FieldMask that determines which resource fields are + modified in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + keyword plan. + update: + Update operation: The keyword plan is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed keyword plan + is expected in this format: + ``customers/{customer_id}/keywordPlans/{keyword_plan_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanOperation) + }) +_sym_db.RegisterMessage(KeywordPlanOperation) + +MutateKeywordPlansResponse = _reflection.GeneratedProtocolMessageType('MutateKeywordPlansResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Response message for a keyword plan mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlansResponse) + }) +_sym_db.RegisterMessage(MutateKeywordPlansResponse) + +MutateKeywordPlansResult = _reflection.GeneratedProtocolMessageType('MutateKeywordPlansResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEKEYWORDPLANSRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The result for the keyword plan mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateKeywordPlansResult) + }) +_sym_db.RegisterMessage(MutateKeywordPlansResult) + +GenerateForecastCurveRequest = _reflection.GeneratedProtocolMessageType('GenerateForecastCurveRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTCURVEREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.GenerateForecastCurve][google. + ads.googleads.v5.services.KeywordPlanService.GenerateForecastCurve]. + + Attributes: + keyword_plan: + Required. The resource name of the keyword plan to be + forecasted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastCurveRequest) + }) +_sym_db.RegisterMessage(GenerateForecastCurveRequest) + +GenerateForecastCurveResponse = _reflection.GeneratedProtocolMessageType('GenerateForecastCurveResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTCURVERESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Response message for [KeywordPlanService.GenerateForecastCurve][google + .ads.googleads.v5.services.KeywordPlanService.GenerateForecastCurve]. + + Attributes: + campaign_forecast_curves: + List of forecast curves for the keyword plan campaign. One + maximum. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastCurveResponse) + }) +_sym_db.RegisterMessage(GenerateForecastCurveResponse) + +GenerateForecastTimeSeriesRequest = _reflection.GeneratedProtocolMessageType('GenerateForecastTimeSeriesRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTTIMESERIESREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.GenerateForecastTimeSeries][go + ogle.ads.googleads.v5.services.KeywordPlanService.GenerateForecastTime + Series]. + + Attributes: + keyword_plan: + Required. The resource name of the keyword plan to be + forecasted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastTimeSeriesRequest) + }) +_sym_db.RegisterMessage(GenerateForecastTimeSeriesRequest) + +GenerateForecastTimeSeriesResponse = _reflection.GeneratedProtocolMessageType('GenerateForecastTimeSeriesResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTTIMESERIESRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Response message for [KeywordPlanService.GenerateForecastTimeSeries][g + oogle.ads.googleads.v5.services.KeywordPlanService.GenerateForecastTim + eSeries]. + + Attributes: + weekly_time_series_forecasts: + List of weekly time series forecasts for the keyword plan + campaign. One maximum. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastTimeSeriesResponse) + }) +_sym_db.RegisterMessage(GenerateForecastTimeSeriesResponse) + +GenerateForecastMetricsRequest = _reflection.GeneratedProtocolMessageType('GenerateForecastMetricsRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTMETRICSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.GenerateForecastMetrics][googl + e.ads.googleads.v5.services.KeywordPlanService.GenerateForecastMetrics + ]. + + Attributes: + keyword_plan: + Required. The resource name of the keyword plan to be + forecasted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastMetricsRequest) + }) +_sym_db.RegisterMessage(GenerateForecastMetricsRequest) + +GenerateForecastMetricsResponse = _reflection.GeneratedProtocolMessageType('GenerateForecastMetricsResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEFORECASTMETRICSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Response message for [KeywordPlanService.GenerateForecastMetrics][goog + le.ads.googleads.v5.services.KeywordPlanService.GenerateForecastMetric + s]. + + Attributes: + campaign_forecasts: + List of campaign forecasts. One maximum. + ad_group_forecasts: + List of ad group forecasts. + keyword_forecasts: + List of keyword forecasts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateForecastMetricsResponse) + }) +_sym_db.RegisterMessage(GenerateForecastMetricsResponse) + +KeywordPlanCampaignForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """A campaign forecast. + + Attributes: + keyword_plan_campaign: + The resource name of the Keyword Plan campaign related to the + forecast. ``customers/{customer_id}/keywordPlanCampaigns/{key + word_plan_campaign_id}`` + campaign_forecast: + The forecast for the Keyword Plan campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanCampaignForecast) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignForecast) + +KeywordPlanAdGroupForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanAdGroupForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANADGROUPFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """An ad group forecast. + + Attributes: + keyword_plan_ad_group: + The resource name of the Keyword Plan ad group related to the + forecast. ``customers/{customer_id}/keywordPlanAdGroups/{keyw + ord_plan_ad_group_id}`` + ad_group_forecast: + The forecast for the Keyword Plan ad group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanAdGroupForecast) + }) +_sym_db.RegisterMessage(KeywordPlanAdGroupForecast) + +KeywordPlanKeywordForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanKeywordForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANKEYWORDFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """A keyword forecast. + + Attributes: + keyword_plan_ad_group_keyword: + The resource name of the Keyword Plan keyword related to the + forecast. ``customers/{customer_id}/keywordPlanAdGroupKeyword + s/{keyword_plan_ad_group_keyword_id}`` + keyword_forecast: + The forecast for the Keyword Plan keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanKeywordForecast) + }) +_sym_db.RegisterMessage(KeywordPlanKeywordForecast) + +KeywordPlanCampaignForecastCurve = _reflection.GeneratedProtocolMessageType('KeywordPlanCampaignForecastCurve', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANCAMPAIGNFORECASTCURVE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The forecast curve for the campaign. + + Attributes: + keyword_plan_campaign: + The resource name of the Keyword Plan campaign related to the + forecast. ``customers/{customer_id}/keywordPlanCampaigns/{key + word_plan_campaign_id}`` + max_cpc_bid_forecast_curve: + The max cpc bid forecast curve for the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanCampaignForecastCurve) + }) +_sym_db.RegisterMessage(KeywordPlanCampaignForecastCurve) + +KeywordPlanMaxCpcBidForecastCurve = _reflection.GeneratedProtocolMessageType('KeywordPlanMaxCpcBidForecastCurve', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANMAXCPCBIDFORECASTCURVE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The max cpc bid forecast curve. + + Attributes: + max_cpc_bid_forecasts: + The forecasts for the Keyword Plan campaign at different max + CPC bids. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecastCurve) + }) +_sym_db.RegisterMessage(KeywordPlanMaxCpcBidForecastCurve) + +KeywordPlanMaxCpcBidForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanMaxCpcBidForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANMAXCPCBIDFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The forecast of the campaign at a specific bid. + + Attributes: + max_cpc_bid_micros: + The max cpc bid in micros. + max_cpc_bid_forecast: + The forecast for the Keyword Plan campaign at the specific + bid. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanMaxCpcBidForecast) + }) +_sym_db.RegisterMessage(KeywordPlanMaxCpcBidForecast) + +KeywordPlanWeeklyTimeSeriesForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanWeeklyTimeSeriesForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANWEEKLYTIMESERIESFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The weekly time series forecast for the keyword plan campaign. + + Attributes: + keyword_plan_campaign: + The resource name of the Keyword Plan campaign related to the + forecast. ``customers/{customer_id}/keywordPlanCampaigns/{key + word_plan_campaign_id}`` + weekly_forecasts: + The forecasts for the Keyword Plan campaign at different max + CPC bids. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanWeeklyTimeSeriesForecast) + }) +_sym_db.RegisterMessage(KeywordPlanWeeklyTimeSeriesForecast) + +KeywordPlanWeeklyForecast = _reflection.GeneratedProtocolMessageType('KeywordPlanWeeklyForecast', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANWEEKLYFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """The forecast of the campaign for the week starting start\_date. + + Attributes: + start_date: + The start date, in yyyy-mm-dd format. This date is inclusive. + forecast: + The forecast for the Keyword Plan campaign for the week. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanWeeklyForecast) + }) +_sym_db.RegisterMessage(KeywordPlanWeeklyForecast) + +ForecastMetrics = _reflection.GeneratedProtocolMessageType('ForecastMetrics', (_message.Message,), { + 'DESCRIPTOR' : _FORECASTMETRICS, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Forecast metrics. + + Attributes: + impressions: + Impressions + ctr: + Ctr + average_cpc: + AVG cpc + clicks: + Clicks + cost_micros: + Cost + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ForecastMetrics) + }) +_sym_db.RegisterMessage(ForecastMetrics) + +GenerateHistoricalMetricsRequest = _reflection.GeneratedProtocolMessageType('GenerateHistoricalMetricsRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEHISTORICALMETRICSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Request message for [KeywordPlanService.GenerateHistoricalMetrics][goo + gle.ads.googleads.v5.services.KeywordPlanService.GenerateHistoricalMet + rics]. + + Attributes: + keyword_plan: + Required. The resource name of the keyword plan of which + historical metrics are requested. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateHistoricalMetricsRequest) + }) +_sym_db.RegisterMessage(GenerateHistoricalMetricsRequest) + +GenerateHistoricalMetricsResponse = _reflection.GeneratedProtocolMessageType('GenerateHistoricalMetricsResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEHISTORICALMETRICSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """Response message for [KeywordPlanService.GenerateHistoricalMetrics][go + ogle.ads.googleads.v5.services.KeywordPlanService.GenerateHistoricalMe + trics]. + + Attributes: + metrics: + List of keyword historical metrics. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateHistoricalMetricsResponse) + }) +_sym_db.RegisterMessage(GenerateHistoricalMetricsResponse) + +KeywordPlanKeywordHistoricalMetrics = _reflection.GeneratedProtocolMessageType('KeywordPlanKeywordHistoricalMetrics', (_message.Message,), { + 'DESCRIPTOR' : _KEYWORDPLANKEYWORDHISTORICALMETRICS, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_plan_service_pb2' + , + '__doc__': """A keyword historical metrics. + + Attributes: + search_query: + The text of the query associated with one or more + ad\_group\_keywords in the plan. Note that we de-dupe your + keywords list, eliminating close variants before returning the + plan's keywords as text. For example, if your plan originally + contained the keywords 'car' and 'cars', the returned search + query will only contain 'cars'. Starting V5, the list of de- + duped queries will be included in close\_variants field. + close_variants: + The list of close variant queries for search\_query whose + search results are combined into the search\_query. + keyword_metrics: + The historical metrics for the query associated with one or + more ad\_group\_keywords in the plan. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.KeywordPlanKeywordHistoricalMetrics) + }) +_sym_db.RegisterMessage(KeywordPlanKeywordHistoricalMetrics) + + +DESCRIPTOR._options = None +_GETKEYWORDPLANREQUEST.fields_by_name['resource_name']._options = None +_MUTATEKEYWORDPLANSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEKEYWORDPLANSREQUEST.fields_by_name['operations']._options = None +_GENERATEFORECASTCURVEREQUEST.fields_by_name['keyword_plan']._options = None +_GENERATEFORECASTTIMESERIESREQUEST.fields_by_name['keyword_plan']._options = None +_GENERATEFORECASTMETRICSREQUEST.fields_by_name['keyword_plan']._options = None +_GENERATEHISTORICALMETRICSREQUEST.fields_by_name['keyword_plan']._options = None + +_KEYWORDPLANSERVICE = _descriptor.ServiceDescriptor( + name='KeywordPlanService', + full_name='google.ads.googleads.v5.services.KeywordPlanService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=3938, + serialized_end=5460, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordPlan', + full_name='google.ads.googleads.v5.services.KeywordPlanService.GetKeywordPlan', + index=0, + containing_service=None, + input_type=_GETKEYWORDPLANREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2._KEYWORDPLAN, + serialized_options=b'\202\323\344\223\0020\022./v5/{resource_name=customers/*/keywordPlans/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateKeywordPlans', + full_name='google.ads.googleads.v5.services.KeywordPlanService.MutateKeywordPlans', + index=1, + containing_service=None, + input_type=_MUTATEKEYWORDPLANSREQUEST, + output_type=_MUTATEKEYWORDPLANSRESPONSE, + serialized_options=b'\202\323\344\223\0026\"1/v5/customers/{customer_id=*}/keywordPlans:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateForecastCurve', + full_name='google.ads.googleads.v5.services.KeywordPlanService.GenerateForecastCurve', + index=2, + containing_service=None, + input_type=_GENERATEFORECASTCURVEREQUEST, + output_type=_GENERATEFORECASTCURVERESPONSE, + serialized_options=b'\202\323\344\223\002H\"C/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastCurve:\001*\332A\014keyword_plan', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateForecastTimeSeries', + full_name='google.ads.googleads.v5.services.KeywordPlanService.GenerateForecastTimeSeries', + index=3, + containing_service=None, + input_type=_GENERATEFORECASTTIMESERIESREQUEST, + output_type=_GENERATEFORECASTTIMESERIESRESPONSE, + serialized_options=b'\202\323\344\223\002M\"H/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastTimeSeries:\001*\332A\014keyword_plan', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateForecastMetrics', + full_name='google.ads.googleads.v5.services.KeywordPlanService.GenerateForecastMetrics', + index=4, + containing_service=None, + input_type=_GENERATEFORECASTMETRICSREQUEST, + output_type=_GENERATEFORECASTMETRICSRESPONSE, + serialized_options=b'\202\323\344\223\002J\"E/v5/{keyword_plan=customers/*/keywordPlans/*}:generateForecastMetrics:\001*\332A\014keyword_plan', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateHistoricalMetrics', + full_name='google.ads.googleads.v5.services.KeywordPlanService.GenerateHistoricalMetrics', + index=5, + containing_service=None, + input_type=_GENERATEHISTORICALMETRICSREQUEST, + output_type=_GENERATEHISTORICALMETRICSRESPONSE, + serialized_options=b'\202\323\344\223\002L\"G/v5/{keyword_plan=customers/*/keywordPlans/*}:generateHistoricalMetrics:\001*\332A\014keyword_plan', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDPLANSERVICE) + +DESCRIPTOR.services_by_name['KeywordPlanService'] = _KEYWORDPLANSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2_grpc.py new file mode 100644 index 000000000..0d77b9975 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_plan_service_pb2_grpc.py @@ -0,0 +1,253 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import keyword_plan_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2 +from google.ads.google_ads.v5.proto.services import keyword_plan_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2 + + +class KeywordPlanServiceStub(object): + """Proto file describing the keyword plan service. + + Service to manage keyword plans. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordPlan = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/GetKeywordPlan', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GetKeywordPlanRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2.KeywordPlan.FromString, + ) + self.MutateKeywordPlans = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/MutateKeywordPlans', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansResponse.FromString, + ) + self.GenerateForecastCurve = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastCurve', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveResponse.FromString, + ) + self.GenerateForecastTimeSeries = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastTimeSeries', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesResponse.FromString, + ) + self.GenerateForecastMetrics = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastMetrics', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsResponse.FromString, + ) + self.GenerateHistoricalMetrics = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordPlanService/GenerateHistoricalMetrics', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsResponse.FromString, + ) + + +class KeywordPlanServiceServicer(object): + """Proto file describing the keyword plan service. + + Service to manage keyword plans. + """ + + def GetKeywordPlan(self, request, context): + """Returns the requested plan in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateKeywordPlans(self, request, context): + """Creates, updates, or removes keyword plans. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateForecastCurve(self, request, context): + """Returns the requested Keyword Plan forecast curve. + Only the bidding strategy is considered for generating forecast curve. + The bidding strategy value specified in the plan is ignored. + + To generate a forecast at a value specified in the plan, use + KeywordPlanService.GenerateForecastMetrics. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateForecastTimeSeries(self, request, context): + """Returns a forecast in the form of a time series for the Keyword Plan over + the next 52 weeks. + (1) Forecasts closer to the current date are generally more accurate than + further out. + + (2) The forecast reflects seasonal trends using current and + prior traffic patterns. The forecast period of the plan is ignored. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateForecastMetrics(self, request, context): + """Returns the requested Keyword Plan forecasts. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateHistoricalMetrics(self, request, context): + """Returns the requested Keyword Plan historical metrics. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordPlanServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordPlan': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordPlan, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GetKeywordPlanRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2.KeywordPlan.SerializeToString, + ), + 'MutateKeywordPlans': grpc.unary_unary_rpc_method_handler( + servicer.MutateKeywordPlans, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansResponse.SerializeToString, + ), + 'GenerateForecastCurve': grpc.unary_unary_rpc_method_handler( + servicer.GenerateForecastCurve, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveResponse.SerializeToString, + ), + 'GenerateForecastTimeSeries': grpc.unary_unary_rpc_method_handler( + servicer.GenerateForecastTimeSeries, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesResponse.SerializeToString, + ), + 'GenerateForecastMetrics': grpc.unary_unary_rpc_method_handler( + servicer.GenerateForecastMetrics, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsResponse.SerializeToString, + ), + 'GenerateHistoricalMetrics': grpc.unary_unary_rpc_method_handler( + servicer.GenerateHistoricalMetrics, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordPlanService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordPlanService(object): + """Proto file describing the keyword plan service. + + Service to manage keyword plans. + """ + + @staticmethod + def GetKeywordPlan(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/GetKeywordPlan', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GetKeywordPlanRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__plan__pb2.KeywordPlan.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateKeywordPlans(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/MutateKeywordPlans', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.MutateKeywordPlansResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateForecastCurve(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastCurve', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastCurveResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateForecastTimeSeries(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastTimeSeries', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastTimeSeriesResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateForecastMetrics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/GenerateForecastMetrics', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateForecastMetricsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateHistoricalMetrics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordPlanService/GenerateHistoricalMetrics', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__plan__service__pb2.GenerateHistoricalMetricsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2.py new file mode 100644 index 000000000..ad84b8544 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/keyword_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/keyword_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\027KeywordViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nAgoogle/ads/googleads_v5/proto/services/keyword_view_service.proto\x12 google.ads.googleads.v5.services\x1a:google/ads/googleads_v5/proto/resources/keyword_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\\\n\x15GetKeywordViewRequest\x12\x43\n\rresource_name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$googleads.googleapis.com/KeywordView2\xf5\x01\n\x12KeywordViewService\x12\xc1\x01\n\x0eGetKeywordView\x12\x37.google.ads.googleads.v5.services.GetKeywordViewRequest\x1a..google.ads.googleads.v5.resources.KeywordView\"F\x82\xd3\xe4\x93\x02\x30\x12./v5/{resource_name=customers/*/keywordViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfe\x01\n$com.google.ads.googleads.v5.servicesB\x17KeywordViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDVIEWREQUEST = _descriptor.Descriptor( + name='GetKeywordViewRequest', + full_name='google.ads.googleads.v5.services.GetKeywordViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetKeywordViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A&\n$googleads.googleapis.com/KeywordView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=278, + serialized_end=370, +) + +DESCRIPTOR.message_types_by_name['GetKeywordViewRequest'] = _GETKEYWORDVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordViewRequest = _reflection.GeneratedProtocolMessageType('GetKeywordViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETKEYWORDVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.keyword_view_service_pb2' + , + '__doc__': """Request message for [KeywordViewService.GetKeywordView][google.ads.goo + gleads.v5.services.KeywordViewService.GetKeywordView]. + + Attributes: + resource_name: + Required. The resource name of the keyword view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetKeywordViewRequest) + }) +_sym_db.RegisterMessage(GetKeywordViewRequest) + + +DESCRIPTOR._options = None +_GETKEYWORDVIEWREQUEST.fields_by_name['resource_name']._options = None + +_KEYWORDVIEWSERVICE = _descriptor.ServiceDescriptor( + name='KeywordViewService', + full_name='google.ads.googleads.v5.services.KeywordViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=373, + serialized_end=618, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordView', + full_name='google.ads.googleads.v5.services.KeywordViewService.GetKeywordView', + index=0, + containing_service=None, + input_type=_GETKEYWORDVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2._KEYWORDVIEW, + serialized_options=b'\202\323\344\223\0020\022./v5/{resource_name=customers/*/keywordViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDVIEWSERVICE) + +DESCRIPTOR.services_by_name['KeywordViewService'] = _KEYWORDVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2_grpc.py new file mode 100644 index 000000000..6599c0230 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/keyword_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.ads.google_ads.v5.proto.services import keyword_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__view__service__pb2 + + +class KeywordViewServiceStub(object): + """Proto file describing the Keyword View service. + + Service to manage keyword views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordView = channel.unary_unary( + '/google.ads.googleads.v5.services.KeywordViewService/GetKeywordView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__view__service__pb2.GetKeywordViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2.KeywordView.FromString, + ) + + +class KeywordViewServiceServicer(object): + """Proto file describing the Keyword View service. + + Service to manage keyword views. + """ + + def GetKeywordView(self, request, context): + """Returns the requested keyword view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordView': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__view__service__pb2.GetKeywordViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2.KeywordView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.KeywordViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class KeywordViewService(object): + """Proto file describing the Keyword View service. + + Service to manage keyword views. + """ + + @staticmethod + def GetKeywordView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.KeywordViewService/GetKeywordView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_keyword__view__service__pb2.GetKeywordViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_keyword__view__pb2.KeywordView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/label_service_pb2.py b/google/ads/google_ads/v5/proto/services/label_service_pb2.py new file mode 100644 index 000000000..d8cfced9b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/label_service_pb2.py @@ -0,0 +1,437 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/label_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/label_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\021LabelServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/services/label_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x33google/ads/googleads_v5/proto/resources/label.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"P\n\x0fGetLabelRequest\x12=\n\rresource_name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1egoogleads.googleapis.com/Label\"\x95\x02\n\x13MutateLabelsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12I\n\noperations\x18\x02 \x03(\x0b\x32\x30.google.ads.googleads.v5.services.LabelOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xd8\x01\n\x0eLabelOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12:\n\x06\x63reate\x18\x01 \x01(\x0b\x32(.google.ads.googleads.v5.resources.LabelH\x00\x12:\n\x06update\x18\x02 \x01(\x0b\x32(.google.ads.googleads.v5.resources.LabelH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x8f\x01\n\x14MutateLabelsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12\x44\n\x07results\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v5.services.MutateLabelResult\"c\n\x11MutateLabelResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x37\n\x05label\x18\x02 \x01(\x0b\x32(.google.ads.googleads.v5.resources.Label2\xa8\x03\n\x0cLabelService\x12\xa9\x01\n\x08GetLabel\x12\x31.google.ads.googleads.v5.services.GetLabelRequest\x1a(.google.ads.googleads.v5.resources.Label\"@\x82\xd3\xe4\x93\x02*\x12(/v5/{resource_name=customers/*/labels/*}\xda\x41\rresource_name\x12\xce\x01\n\x0cMutateLabels\x12\x35.google.ads.googleads.v5.services.MutateLabelsRequest\x1a\x36.google.ads.googleads.v5.services.MutateLabelsResponse\"O\x82\xd3\xe4\x93\x02\x30\"+/v5/customers/{customer_id=*}/labels:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xf8\x01\n$com.google.ads.googleads.v5.servicesB\x11LabelServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETLABELREQUEST = _descriptor.Descriptor( + name='GetLabelRequest', + full_name='google.ads.googleads.v5.services.GetLabelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetLabelRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A \n\036googleads.googleapis.com/Label', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=388, + serialized_end=468, +) + + +_MUTATELABELSREQUEST = _descriptor.Descriptor( + name='MutateLabelsRequest', + full_name='google.ads.googleads.v5.services.MutateLabelsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateLabelsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateLabelsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateLabelsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateLabelsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateLabelsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=471, + serialized_end=748, +) + + +_LABELOPERATION = _descriptor.Descriptor( + name='LabelOperation', + full_name='google.ads.googleads.v5.services.LabelOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.LabelOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.LabelOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.LabelOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.LabelOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.LabelOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=751, + serialized_end=967, +) + + +_MUTATELABELSRESPONSE = _descriptor.Descriptor( + name='MutateLabelsResponse', + full_name='google.ads.googleads.v5.services.MutateLabelsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateLabelsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateLabelsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=970, + serialized_end=1113, +) + + +_MUTATELABELRESULT = _descriptor.Descriptor( + name='MutateLabelResult', + full_name='google.ads.googleads.v5.services.MutateLabelResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateLabelResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='google.ads.googleads.v5.services.MutateLabelResult.label', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1115, + serialized_end=1214, +) + +_MUTATELABELSREQUEST.fields_by_name['operations'].message_type = _LABELOPERATION +_MUTATELABELSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_LABELOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_LABELOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2._LABEL +_LABELOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2._LABEL +_LABELOPERATION.oneofs_by_name['operation'].fields.append( + _LABELOPERATION.fields_by_name['create']) +_LABELOPERATION.fields_by_name['create'].containing_oneof = _LABELOPERATION.oneofs_by_name['operation'] +_LABELOPERATION.oneofs_by_name['operation'].fields.append( + _LABELOPERATION.fields_by_name['update']) +_LABELOPERATION.fields_by_name['update'].containing_oneof = _LABELOPERATION.oneofs_by_name['operation'] +_LABELOPERATION.oneofs_by_name['operation'].fields.append( + _LABELOPERATION.fields_by_name['remove']) +_LABELOPERATION.fields_by_name['remove'].containing_oneof = _LABELOPERATION.oneofs_by_name['operation'] +_MUTATELABELSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATELABELSRESPONSE.fields_by_name['results'].message_type = _MUTATELABELRESULT +_MUTATELABELRESULT.fields_by_name['label'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2._LABEL +DESCRIPTOR.message_types_by_name['GetLabelRequest'] = _GETLABELREQUEST +DESCRIPTOR.message_types_by_name['MutateLabelsRequest'] = _MUTATELABELSREQUEST +DESCRIPTOR.message_types_by_name['LabelOperation'] = _LABELOPERATION +DESCRIPTOR.message_types_by_name['MutateLabelsResponse'] = _MUTATELABELSRESPONSE +DESCRIPTOR.message_types_by_name['MutateLabelResult'] = _MUTATELABELRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetLabelRequest = _reflection.GeneratedProtocolMessageType('GetLabelRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETLABELREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.label_service_pb2' + , + '__doc__': """Request message for [LabelService.GetLabel][google.ads.googleads.v5.se + rvices.LabelService.GetLabel]. + + Attributes: + resource_name: + Required. The resource name of the label to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetLabelRequest) + }) +_sym_db.RegisterMessage(GetLabelRequest) + +MutateLabelsRequest = _reflection.GeneratedProtocolMessageType('MutateLabelsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATELABELSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.label_service_pb2' + , + '__doc__': """Request message for [LabelService.MutateLabels][google.ads.googleads.v + 5.services.LabelService.MutateLabels]. + + Attributes: + customer_id: + Required. ID of the customer whose labels are being modified. + operations: + Required. The list of operations to perform on labels. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateLabelsRequest) + }) +_sym_db.RegisterMessage(MutateLabelsRequest) + +LabelOperation = _reflection.GeneratedProtocolMessageType('LabelOperation', (_message.Message,), { + 'DESCRIPTOR' : _LABELOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.label_service_pb2' + , + '__doc__': """A single operation (create, remove, update) on a label. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + label. + update: + Update operation: The label is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the label being removed, + in this format: ``customers/{customer_id}/labels/{label_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.LabelOperation) + }) +_sym_db.RegisterMessage(LabelOperation) + +MutateLabelsResponse = _reflection.GeneratedProtocolMessageType('MutateLabelsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATELABELSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.label_service_pb2' + , + '__doc__': """Response message for a labels mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateLabelsResponse) + }) +_sym_db.RegisterMessage(MutateLabelsResponse) + +MutateLabelResult = _reflection.GeneratedProtocolMessageType('MutateLabelResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATELABELRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.label_service_pb2' + , + '__doc__': """The result for a label mutate. + + Attributes: + resource_name: + Returned for successful operations. + label: + The mutated label with only mutable fields after mutate. The + field will only be returned when response\_content\_type is + set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateLabelResult) + }) +_sym_db.RegisterMessage(MutateLabelResult) + + +DESCRIPTOR._options = None +_GETLABELREQUEST.fields_by_name['resource_name']._options = None +_MUTATELABELSREQUEST.fields_by_name['customer_id']._options = None +_MUTATELABELSREQUEST.fields_by_name['operations']._options = None + +_LABELSERVICE = _descriptor.ServiceDescriptor( + name='LabelService', + full_name='google.ads.googleads.v5.services.LabelService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1217, + serialized_end=1641, + methods=[ + _descriptor.MethodDescriptor( + name='GetLabel', + full_name='google.ads.googleads.v5.services.LabelService.GetLabel', + index=0, + containing_service=None, + input_type=_GETLABELREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2._LABEL, + serialized_options=b'\202\323\344\223\002*\022(/v5/{resource_name=customers/*/labels/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateLabels', + full_name='google.ads.googleads.v5.services.LabelService.MutateLabels', + index=1, + containing_service=None, + input_type=_MUTATELABELSREQUEST, + output_type=_MUTATELABELSRESPONSE, + serialized_options=b'\202\323\344\223\0020\"+/v5/customers/{customer_id=*}/labels:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_LABELSERVICE) + +DESCRIPTOR.services_by_name['LabelService'] = _LABELSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/label_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/label_service_pb2_grpc.py new file mode 100644 index 000000000..0004d845d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/label_service_pb2_grpc.py @@ -0,0 +1,103 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import label_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2 +from google.ads.google_ads.v5.proto.services import label_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2 + + +class LabelServiceStub(object): + """Service to manage labels. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetLabel = channel.unary_unary( + '/google.ads.googleads.v5.services.LabelService/GetLabel', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.GetLabelRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2.Label.FromString, + ) + self.MutateLabels = channel.unary_unary( + '/google.ads.googleads.v5.services.LabelService/MutateLabels', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsResponse.FromString, + ) + + +class LabelServiceServicer(object): + """Service to manage labels. + """ + + def GetLabel(self, request, context): + """Returns the requested label in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateLabels(self, request, context): + """Creates, updates, or removes labels. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_LabelServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetLabel': grpc.unary_unary_rpc_method_handler( + servicer.GetLabel, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.GetLabelRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2.Label.SerializeToString, + ), + 'MutateLabels': grpc.unary_unary_rpc_method_handler( + servicer.MutateLabels, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.LabelService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class LabelService(object): + """Service to manage labels. + """ + + @staticmethod + def GetLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.LabelService/GetLabel', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.GetLabelRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_label__pb2.Label.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateLabels(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.LabelService/MutateLabels', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_label__service__pb2.MutateLabelsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2.py new file mode 100644 index 000000000..de0967bea --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/landing_page_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/landing_page_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033LandingPageViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/landing_page_view_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/landing_page_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"d\n\x19GetLandingPageViewRequest\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(googleads.googleapis.com/LandingPageView2\x89\x02\n\x16LandingPageViewService\x12\xd1\x01\n\x12GetLandingPageView\x12;.google.ads.googleads.v5.services.GetLandingPageViewRequest\x1a\x32.google.ads.googleads.v5.resources.LandingPageView\"J\x82\xd3\xe4\x93\x02\x34\x12\x32/v5/{resource_name=customers/*/landingPageViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1bLandingPageViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETLANDINGPAGEVIEWREQUEST = _descriptor.Descriptor( + name='GetLandingPageViewRequest', + full_name='google.ads.googleads.v5.services.GetLandingPageViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetLandingPageViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A*\n(googleads.googleapis.com/LandingPageView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=288, + serialized_end=388, +) + +DESCRIPTOR.message_types_by_name['GetLandingPageViewRequest'] = _GETLANDINGPAGEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetLandingPageViewRequest = _reflection.GeneratedProtocolMessageType('GetLandingPageViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETLANDINGPAGEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.landing_page_view_service_pb2' + , + '__doc__': """Request message for [LandingPageViewService.GetLandingPageView][google + .ads.googleads.v5.services.LandingPageViewService.GetLandingPageView]. + + Attributes: + resource_name: + Required. The resource name of the landing page view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetLandingPageViewRequest) + }) +_sym_db.RegisterMessage(GetLandingPageViewRequest) + + +DESCRIPTOR._options = None +_GETLANDINGPAGEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_LANDINGPAGEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='LandingPageViewService', + full_name='google.ads.googleads.v5.services.LandingPageViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=391, + serialized_end=656, + methods=[ + _descriptor.MethodDescriptor( + name='GetLandingPageView', + full_name='google.ads.googleads.v5.services.LandingPageViewService.GetLandingPageView', + index=0, + containing_service=None, + input_type=_GETLANDINGPAGEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2._LANDINGPAGEVIEW, + serialized_options=b'\202\323\344\223\0024\0222/v5/{resource_name=customers/*/landingPageViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_LANDINGPAGEVIEWSERVICE) + +DESCRIPTOR.services_by_name['LandingPageViewService'] = _LANDINGPAGEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2_grpc.py new file mode 100644 index 000000000..e97af9690 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/landing_page_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import landing_page_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2 +from google.ads.google_ads.v5.proto.services import landing_page_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_landing__page__view__service__pb2 + + +class LandingPageViewServiceStub(object): + """Proto file describing the landing page view service. + + Service to fetch landing page views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetLandingPageView = channel.unary_unary( + '/google.ads.googleads.v5.services.LandingPageViewService/GetLandingPageView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_landing__page__view__service__pb2.GetLandingPageViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2.LandingPageView.FromString, + ) + + +class LandingPageViewServiceServicer(object): + """Proto file describing the landing page view service. + + Service to fetch landing page views. + """ + + def GetLandingPageView(self, request, context): + """Returns the requested landing page view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_LandingPageViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetLandingPageView': grpc.unary_unary_rpc_method_handler( + servicer.GetLandingPageView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_landing__page__view__service__pb2.GetLandingPageViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2.LandingPageView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.LandingPageViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class LandingPageViewService(object): + """Proto file describing the landing page view service. + + Service to fetch landing page views. + """ + + @staticmethod + def GetLandingPageView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.LandingPageViewService/GetLandingPageView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_landing__page__view__service__pb2.GetLandingPageViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_landing__page__view__pb2.LandingPageView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/language_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/language_constant_service_pb2.py new file mode 100644 index 000000000..42ff49d64 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/language_constant_service_pb2.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/language_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import language_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/language_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034LanguageConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nFgoogle/ads/googleads_v5/proto/services/language_constant_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/resources/language_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"f\n\x1aGetLanguageConstantRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/LanguageConstant2\x82\x02\n\x17LanguageConstantService\x12\xc9\x01\n\x13GetLanguageConstant\x12<.google.ads.googleads.v5.services.GetLanguageConstantRequest\x1a\x33.google.ads.googleads.v5.resources.LanguageConstant\"?\x82\xd3\xe4\x93\x02)\x12\'/v5/{resource_name=languageConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1cLanguageConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETLANGUAGECONSTANTREQUEST = _descriptor.Descriptor( + name='GetLanguageConstantRequest', + full_name='google.ads.googleads.v5.services.GetLanguageConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetLanguageConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/LanguageConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=288, + serialized_end=390, +) + +DESCRIPTOR.message_types_by_name['GetLanguageConstantRequest'] = _GETLANGUAGECONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetLanguageConstantRequest = _reflection.GeneratedProtocolMessageType('GetLanguageConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETLANGUAGECONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.language_constant_service_pb2' + , + '__doc__': """Request message for [LanguageConstantService.GetLanguageConstant][goog + le.ads.googleads.v5.services.LanguageConstantService.GetLanguageConsta + nt]. + + Attributes: + resource_name: + Required. Resource name of the language constant to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetLanguageConstantRequest) + }) +_sym_db.RegisterMessage(GetLanguageConstantRequest) + + +DESCRIPTOR._options = None +_GETLANGUAGECONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_LANGUAGECONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='LanguageConstantService', + full_name='google.ads.googleads.v5.services.LanguageConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=393, + serialized_end=651, + methods=[ + _descriptor.MethodDescriptor( + name='GetLanguageConstant', + full_name='google.ads.googleads.v5.services.LanguageConstantService.GetLanguageConstant', + index=0, + containing_service=None, + input_type=_GETLANGUAGECONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2._LANGUAGECONSTANT, + serialized_options=b'\202\323\344\223\002)\022\'/v5/{resource_name=languageConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_LANGUAGECONSTANTSERVICE) + +DESCRIPTOR.services_by_name['LanguageConstantService'] = _LANGUAGECONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/language_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/language_constant_service_pb2_grpc.py new file mode 100644 index 000000000..e069edf6f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/language_constant_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import language_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2 +from google.ads.google_ads.v5.proto.services import language_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_language__constant__service__pb2 + + +class LanguageConstantServiceStub(object): + """Proto file describing the language constant service. + + Service to fetch language constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetLanguageConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.LanguageConstantService/GetLanguageConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_language__constant__service__pb2.GetLanguageConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2.LanguageConstant.FromString, + ) + + +class LanguageConstantServiceServicer(object): + """Proto file describing the language constant service. + + Service to fetch language constants. + """ + + def GetLanguageConstant(self, request, context): + """Returns the requested language constant. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_LanguageConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetLanguageConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetLanguageConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_language__constant__service__pb2.GetLanguageConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2.LanguageConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.LanguageConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class LanguageConstantService(object): + """Proto file describing the language constant service. + + Service to fetch language constants. + """ + + @staticmethod + def GetLanguageConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.LanguageConstantService/GetLanguageConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_language__constant__service__pb2.GetLanguageConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_language__constant__pb2.LanguageConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/location_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/location_view_service_pb2.py new file mode 100644 index 000000000..9dcf480b7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/location_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/location_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/location_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030LocationViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/location_view_service.proto\x12 google.ads.googleads.v5.services\x1a;google/ads/googleads_v5/proto/resources/location_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"^\n\x16GetLocationViewRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/LocationView2\xfa\x01\n\x13LocationViewService\x12\xc5\x01\n\x0fGetLocationView\x12\x38.google.ads.googleads.v5.services.GetLocationViewRequest\x1a/.google.ads.googleads.v5.resources.LocationView\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/locationViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18LocationViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETLOCATIONVIEWREQUEST = _descriptor.Descriptor( + name='GetLocationViewRequest', + full_name='google.ads.googleads.v5.services.GetLocationViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetLocationViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/LocationView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=374, +) + +DESCRIPTOR.message_types_by_name['GetLocationViewRequest'] = _GETLOCATIONVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetLocationViewRequest = _reflection.GeneratedProtocolMessageType('GetLocationViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETLOCATIONVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.location_view_service_pb2' + , + '__doc__': """Request message for [LocationViewService.GetLocationView][google.ads.g + oogleads.v5.services.LocationViewService.GetLocationView]. + + Attributes: + resource_name: + Required. The resource name of the location view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetLocationViewRequest) + }) +_sym_db.RegisterMessage(GetLocationViewRequest) + + +DESCRIPTOR._options = None +_GETLOCATIONVIEWREQUEST.fields_by_name['resource_name']._options = None + +_LOCATIONVIEWSERVICE = _descriptor.ServiceDescriptor( + name='LocationViewService', + full_name='google.ads.googleads.v5.services.LocationViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=377, + serialized_end=627, + methods=[ + _descriptor.MethodDescriptor( + name='GetLocationView', + full_name='google.ads.googleads.v5.services.LocationViewService.GetLocationView', + index=0, + containing_service=None, + input_type=_GETLOCATIONVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2._LOCATIONVIEW, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/locationViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_LOCATIONVIEWSERVICE) + +DESCRIPTOR.services_by_name['LocationViewService'] = _LOCATIONVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/location_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/location_view_service_pb2_grpc.py new file mode 100644 index 000000000..6580c653e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/location_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2 +from google.ads.google_ads.v5.proto.services import location_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_location__view__service__pb2 + + +class LocationViewServiceStub(object): + """Proto file describing the Location View service. + + Service to fetch location views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetLocationView = channel.unary_unary( + '/google.ads.googleads.v5.services.LocationViewService/GetLocationView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_location__view__service__pb2.GetLocationViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2.LocationView.FromString, + ) + + +class LocationViewServiceServicer(object): + """Proto file describing the Location View service. + + Service to fetch location views. + """ + + def GetLocationView(self, request, context): + """Returns the requested location view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_LocationViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetLocationView': grpc.unary_unary_rpc_method_handler( + servicer.GetLocationView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_location__view__service__pb2.GetLocationViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2.LocationView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.LocationViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class LocationViewService(object): + """Proto file describing the Location View service. + + Service to fetch location views. + """ + + @staticmethod + def GetLocationView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.LocationViewService/GetLocationView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_location__view__service__pb2.GetLocationViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_location__view__pb2.LocationView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2.py new file mode 100644 index 000000000..be9f198b5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/managed_placement_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import managed_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/managed_placement_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB ManagedPlacementViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/services/managed_placement_view_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/resources/managed_placement_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"n\n\x1eGetManagedPlacementViewRequest\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-googleads.googleapis.com/ManagedPlacementView2\xa2\x02\n\x1bManagedPlacementViewService\x12\xe5\x01\n\x17GetManagedPlacementView\x12@.google.ads.googleads.v5.services.GetManagedPlacementViewRequest\x1a\x37.google.ads.googleads.v5.resources.ManagedPlacementView\"O\x82\xd3\xe4\x93\x02\x39\x12\x37/v5/{resource_name=customers/*/managedPlacementViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x87\x02\n$com.google.ads.googleads.v5.servicesB ManagedPlacementViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETMANAGEDPLACEMENTVIEWREQUEST = _descriptor.Descriptor( + name='GetManagedPlacementViewRequest', + full_name='google.ads.googleads.v5.services.GetManagedPlacementViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetManagedPlacementViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A/\n-googleads.googleapis.com/ManagedPlacementView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=408, +) + +DESCRIPTOR.message_types_by_name['GetManagedPlacementViewRequest'] = _GETMANAGEDPLACEMENTVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetManagedPlacementViewRequest = _reflection.GeneratedProtocolMessageType('GetManagedPlacementViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETMANAGEDPLACEMENTVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.managed_placement_view_service_pb2' + , + '__doc__': """Request message for [ManagedPlacementViewService.GetManagedPlacementVi + ew][google.ads.googleads.v5.services.ManagedPlacementViewService.GetMa + nagedPlacementView]. + + Attributes: + resource_name: + Required. The resource name of the Managed Placement View to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetManagedPlacementViewRequest) + }) +_sym_db.RegisterMessage(GetManagedPlacementViewRequest) + + +DESCRIPTOR._options = None +_GETMANAGEDPLACEMENTVIEWREQUEST.fields_by_name['resource_name']._options = None + +_MANAGEDPLACEMENTVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ManagedPlacementViewService', + full_name='google.ads.googleads.v5.services.ManagedPlacementViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=411, + serialized_end=701, + methods=[ + _descriptor.MethodDescriptor( + name='GetManagedPlacementView', + full_name='google.ads.googleads.v5.services.ManagedPlacementViewService.GetManagedPlacementView', + index=0, + containing_service=None, + input_type=_GETMANAGEDPLACEMENTVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2._MANAGEDPLACEMENTVIEW, + serialized_options=b'\202\323\344\223\0029\0227/v5/{resource_name=customers/*/managedPlacementViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_MANAGEDPLACEMENTVIEWSERVICE) + +DESCRIPTOR.services_by_name['ManagedPlacementViewService'] = _MANAGEDPLACEMENTVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2_grpc.py new file mode 100644 index 000000000..50f5c8c58 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/managed_placement_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import managed_placement_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2 +from google.ads.google_ads.v5.proto.services import managed_placement_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_managed__placement__view__service__pb2 + + +class ManagedPlacementViewServiceStub(object): + """Proto file describing the Managed Placement View service. + + Service to manage Managed Placement views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetManagedPlacementView = channel.unary_unary( + '/google.ads.googleads.v5.services.ManagedPlacementViewService/GetManagedPlacementView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_managed__placement__view__service__pb2.GetManagedPlacementViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2.ManagedPlacementView.FromString, + ) + + +class ManagedPlacementViewServiceServicer(object): + """Proto file describing the Managed Placement View service. + + Service to manage Managed Placement views. + """ + + def GetManagedPlacementView(self, request, context): + """Returns the requested Managed Placement view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ManagedPlacementViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetManagedPlacementView': grpc.unary_unary_rpc_method_handler( + servicer.GetManagedPlacementView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_managed__placement__view__service__pb2.GetManagedPlacementViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2.ManagedPlacementView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ManagedPlacementViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ManagedPlacementViewService(object): + """Proto file describing the Managed Placement View service. + + Service to manage Managed Placement views. + """ + + @staticmethod + def GetManagedPlacementView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ManagedPlacementViewService/GetManagedPlacementView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_managed__placement__view__service__pb2.GetManagedPlacementViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_managed__placement__view__pb2.ManagedPlacementView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/media_file_service_pb2.py b/google/ads/google_ads/v5/proto/services/media_file_service_pb2.py new file mode 100644 index 000000000..8b5714350 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/media_file_service_pb2.py @@ -0,0 +1,400 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/media_file_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import media_file_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/media_file_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025MediaFileServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/services/media_file_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x38google/ads/googleads_v5/proto/resources/media_file.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"X\n\x13GetMediaFileRequest\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"googleads.googleapis.com/MediaFile\"\x9d\x02\n\x17MutateMediaFilesRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12M\n\noperations\x18\x02 \x03(\x0b\x32\x34.google.ads.googleads.v5.services.MediaFileOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"a\n\x12MediaFileOperation\x12>\n\x06\x63reate\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v5.resources.MediaFileH\x00\x42\x0b\n\toperation\"\x97\x01\n\x18MutateMediaFilesResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x07results\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.MutateMediaFileResult\"p\n\x15MutateMediaFileResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12@\n\nmedia_file\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.resources.MediaFile2\xcc\x03\n\x10MediaFileService\x12\xb9\x01\n\x0cGetMediaFile\x12\x35.google.ads.googleads.v5.services.GetMediaFileRequest\x1a,.google.ads.googleads.v5.resources.MediaFile\"D\x82\xd3\xe4\x93\x02.\x12,/v5/{resource_name=customers/*/mediaFiles/*}\xda\x41\rresource_name\x12\xde\x01\n\x10MutateMediaFiles\x12\x39.google.ads.googleads.v5.services.MutateMediaFilesRequest\x1a:.google.ads.googleads.v5.services.MutateMediaFilesResponse\"S\x82\xd3\xe4\x93\x02\x34\"//v5/customers/{customer_id=*}/mediaFiles:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15MediaFileServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETMEDIAFILEREQUEST = _descriptor.Descriptor( + name='GetMediaFileRequest', + full_name='google.ads.googleads.v5.services.GetMediaFileRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetMediaFileRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A$\n\"googleads.googleapis.com/MediaFile', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=364, + serialized_end=452, +) + + +_MUTATEMEDIAFILESREQUEST = _descriptor.Descriptor( + name='MutateMediaFilesRequest', + full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateMediaFilesRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=455, + serialized_end=740, +) + + +_MEDIAFILEOPERATION = _descriptor.Descriptor( + name='MediaFileOperation', + full_name='google.ads.googleads.v5.services.MediaFileOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.MediaFileOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MediaFileOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=742, + serialized_end=839, +) + + +_MUTATEMEDIAFILESRESPONSE = _descriptor.Descriptor( + name='MutateMediaFilesResponse', + full_name='google.ads.googleads.v5.services.MutateMediaFilesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateMediaFilesResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateMediaFilesResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=842, + serialized_end=993, +) + + +_MUTATEMEDIAFILERESULT = _descriptor.Descriptor( + name='MutateMediaFileResult', + full_name='google.ads.googleads.v5.services.MutateMediaFileResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateMediaFileResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='media_file', full_name='google.ads.googleads.v5.services.MutateMediaFileResult.media_file', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=995, + serialized_end=1107, +) + +_MUTATEMEDIAFILESREQUEST.fields_by_name['operations'].message_type = _MEDIAFILEOPERATION +_MUTATEMEDIAFILESREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_MEDIAFILEOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2._MEDIAFILE +_MEDIAFILEOPERATION.oneofs_by_name['operation'].fields.append( + _MEDIAFILEOPERATION.fields_by_name['create']) +_MEDIAFILEOPERATION.fields_by_name['create'].containing_oneof = _MEDIAFILEOPERATION.oneofs_by_name['operation'] +_MUTATEMEDIAFILESRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEMEDIAFILESRESPONSE.fields_by_name['results'].message_type = _MUTATEMEDIAFILERESULT +_MUTATEMEDIAFILERESULT.fields_by_name['media_file'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2._MEDIAFILE +DESCRIPTOR.message_types_by_name['GetMediaFileRequest'] = _GETMEDIAFILEREQUEST +DESCRIPTOR.message_types_by_name['MutateMediaFilesRequest'] = _MUTATEMEDIAFILESREQUEST +DESCRIPTOR.message_types_by_name['MediaFileOperation'] = _MEDIAFILEOPERATION +DESCRIPTOR.message_types_by_name['MutateMediaFilesResponse'] = _MUTATEMEDIAFILESRESPONSE +DESCRIPTOR.message_types_by_name['MutateMediaFileResult'] = _MUTATEMEDIAFILERESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetMediaFileRequest = _reflection.GeneratedProtocolMessageType('GetMediaFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETMEDIAFILEREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.media_file_service_pb2' + , + '__doc__': """Request message for [MediaFileService.GetMediaFile][google.ads.googlea + ds.v5.services.MediaFileService.GetMediaFile] + + Attributes: + resource_name: + Required. The resource name of the media file to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetMediaFileRequest) + }) +_sym_db.RegisterMessage(GetMediaFileRequest) + +MutateMediaFilesRequest = _reflection.GeneratedProtocolMessageType('MutateMediaFilesRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMEDIAFILESREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.media_file_service_pb2' + , + '__doc__': """Request message for [MediaFileService.MutateMediaFiles][google.ads.goo + gleads.v5.services.MediaFileService.MutateMediaFiles] + + Attributes: + customer_id: + Required. The ID of the customer whose media files are being + modified. + operations: + Required. The list of operations to perform on individual + media file. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMediaFilesRequest) + }) +_sym_db.RegisterMessage(MutateMediaFilesRequest) + +MediaFileOperation = _reflection.GeneratedProtocolMessageType('MediaFileOperation', (_message.Message,), { + 'DESCRIPTOR' : _MEDIAFILEOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.media_file_service_pb2' + , + '__doc__': """A single operation to create media file. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + media file. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MediaFileOperation) + }) +_sym_db.RegisterMessage(MediaFileOperation) + +MutateMediaFilesResponse = _reflection.GeneratedProtocolMessageType('MutateMediaFilesResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMEDIAFILESRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.media_file_service_pb2' + , + '__doc__': """Response message for a media file mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMediaFilesResponse) + }) +_sym_db.RegisterMessage(MutateMediaFilesResponse) + +MutateMediaFileResult = _reflection.GeneratedProtocolMessageType('MutateMediaFileResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMEDIAFILERESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.media_file_service_pb2' + , + '__doc__': """The result for the media file mutate. + + Attributes: + resource_name: + The resource name returned for successful operations. + media_file: + The mutated media file with only mutable fields after mutate. + The field will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMediaFileResult) + }) +_sym_db.RegisterMessage(MutateMediaFileResult) + + +DESCRIPTOR._options = None +_GETMEDIAFILEREQUEST.fields_by_name['resource_name']._options = None +_MUTATEMEDIAFILESREQUEST.fields_by_name['customer_id']._options = None +_MUTATEMEDIAFILESREQUEST.fields_by_name['operations']._options = None + +_MEDIAFILESERVICE = _descriptor.ServiceDescriptor( + name='MediaFileService', + full_name='google.ads.googleads.v5.services.MediaFileService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1110, + serialized_end=1570, + methods=[ + _descriptor.MethodDescriptor( + name='GetMediaFile', + full_name='google.ads.googleads.v5.services.MediaFileService.GetMediaFile', + index=0, + containing_service=None, + input_type=_GETMEDIAFILEREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2._MEDIAFILE, + serialized_options=b'\202\323\344\223\002.\022,/v5/{resource_name=customers/*/mediaFiles/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateMediaFiles', + full_name='google.ads.googleads.v5.services.MediaFileService.MutateMediaFiles', + index=1, + containing_service=None, + input_type=_MUTATEMEDIAFILESREQUEST, + output_type=_MUTATEMEDIAFILESRESPONSE, + serialized_options=b'\202\323\344\223\0024\"//v5/customers/{customer_id=*}/mediaFiles:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_MEDIAFILESERVICE) + +DESCRIPTOR.services_by_name['MediaFileService'] = _MEDIAFILESERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/media_file_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/media_file_service_pb2_grpc.py new file mode 100644 index 000000000..5753b662c --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/media_file_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import media_file_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2 +from google.ads.google_ads.v5.proto.services import media_file_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2 + + +class MediaFileServiceStub(object): + """Proto file describing the Media File service. + + Service to manage media files. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetMediaFile = channel.unary_unary( + '/google.ads.googleads.v5.services.MediaFileService/GetMediaFile', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.GetMediaFileRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2.MediaFile.FromString, + ) + self.MutateMediaFiles = channel.unary_unary( + '/google.ads.googleads.v5.services.MediaFileService/MutateMediaFiles', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesResponse.FromString, + ) + + +class MediaFileServiceServicer(object): + """Proto file describing the Media File service. + + Service to manage media files. + """ + + def GetMediaFile(self, request, context): + """Returns the requested media file in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateMediaFiles(self, request, context): + """Creates media files. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MediaFileServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetMediaFile': grpc.unary_unary_rpc_method_handler( + servicer.GetMediaFile, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.GetMediaFileRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2.MediaFile.SerializeToString, + ), + 'MutateMediaFiles': grpc.unary_unary_rpc_method_handler( + servicer.MutateMediaFiles, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.MediaFileService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class MediaFileService(object): + """Proto file describing the Media File service. + + Service to manage media files. + """ + + @staticmethod + def GetMediaFile(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MediaFileService/GetMediaFile', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.GetMediaFileRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_media__file__pb2.MediaFile.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateMediaFiles(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MediaFileService/MutateMediaFiles', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_media__file__service__pb2.MutateMediaFilesResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2.py b/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2.py new file mode 100644 index 000000000..1d1732807 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2.py @@ -0,0 +1,475 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/merchant_center_link_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import merchant_center_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/merchant_center_link_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036MerchantCenterLinkServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nIgoogle/ads/googleads_v5/proto/services/merchant_center_link_service.proto\x12 google.ads.googleads.v5.services\x1a\x42google/ads/googleads_v5/proto/resources/merchant_center_link.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\":\n\x1eListMerchantCenterLinksRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"w\n\x1fListMerchantCenterLinksResponse\x12T\n\x15merchant_center_links\x18\x01 \x03(\x0b\x32\x35.google.ads.googleads.v5.resources.MerchantCenterLink\"j\n\x1cGetMerchantCenterLinkRequest\x12J\n\rresource_name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+googleads.googleapis.com/MerchantCenterLink\"\x92\x01\n\x1fMutateMerchantCenterLinkRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\toperation\x18\x02 \x01(\x0b\x32=.google.ads.googleads.v5.services.MerchantCenterLinkOperationB\x03\xe0\x41\x02\"\xb6\x01\n\x1bMerchantCenterLinkOperation\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x06update\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v5.resources.MerchantCenterLinkH\x00\x12\x10\n\x06remove\x18\x02 \x01(\tH\x00\x42\x0b\n\toperation\"t\n MutateMerchantCenterLinkResponse\x12P\n\x06result\x18\x02 \x01(\x0b\x32@.google.ads.googleads.v5.services.MutateMerchantCenterLinkResult\"7\n\x1eMutateMerchantCenterLinkResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x83\x06\n\x19MerchantCenterLinkService\x12\xe7\x01\n\x17ListMerchantCenterLinks\x12@.google.ads.googleads.v5.services.ListMerchantCenterLinksRequest\x1a\x41.google.ads.googleads.v5.services.ListMerchantCenterLinksResponse\"G\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/customers/{customer_id=*}/merchantCenterLinks\xda\x41\x0b\x63ustomer_id\x12\xdd\x01\n\x15GetMerchantCenterLink\x12>.google.ads.googleads.v5.services.GetMerchantCenterLinkRequest\x1a\x35.google.ads.googleads.v5.resources.MerchantCenterLink\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/merchantCenterLinks/*}\xda\x41\rresource_name\x12\xfe\x01\n\x18MutateMerchantCenterLink\x12\x41.google.ads.googleads.v5.services.MutateMerchantCenterLinkRequest\x1a\x42.google.ads.googleads.v5.services.MutateMerchantCenterLinkResponse\"[\x82\xd3\xe4\x93\x02=\"8/v5/customers/{customer_id=*}/merchantCenterLinks:mutate:\x01*\xda\x41\x15\x63ustomer_id,operation\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1eMerchantCenterLinkServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_LISTMERCHANTCENTERLINKSREQUEST = _descriptor.Descriptor( + name='ListMerchantCenterLinksRequest', + full_name='google.ads.googleads.v5.services.ListMerchantCenterLinksRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.ListMerchantCenterLinksRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=328, + serialized_end=386, +) + + +_LISTMERCHANTCENTERLINKSRESPONSE = _descriptor.Descriptor( + name='ListMerchantCenterLinksResponse', + full_name='google.ads.googleads.v5.services.ListMerchantCenterLinksResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='merchant_center_links', full_name='google.ads.googleads.v5.services.ListMerchantCenterLinksResponse.merchant_center_links', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=388, + serialized_end=507, +) + + +_GETMERCHANTCENTERLINKREQUEST = _descriptor.Descriptor( + name='GetMerchantCenterLinkRequest', + full_name='google.ads.googleads.v5.services.GetMerchantCenterLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetMerchantCenterLinkRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/MerchantCenterLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=509, + serialized_end=615, +) + + +_MUTATEMERCHANTCENTERLINKREQUEST = _descriptor.Descriptor( + name='MutateMerchantCenterLinkRequest', + full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkRequest.operation', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=618, + serialized_end=764, +) + + +_MERCHANTCENTERLINKOPERATION = _descriptor.Descriptor( + name='MerchantCenterLinkOperation', + full_name='google.ads.googleads.v5.services.MerchantCenterLinkOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.MerchantCenterLinkOperation.update_mask', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.MerchantCenterLinkOperation.update', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.MerchantCenterLinkOperation.remove', index=2, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.MerchantCenterLinkOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=767, + serialized_end=949, +) + + +_MUTATEMERCHANTCENTERLINKRESPONSE = _descriptor.Descriptor( + name='MutateMerchantCenterLinkResponse', + full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='result', full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkResponse.result', index=0, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=951, + serialized_end=1067, +) + + +_MUTATEMERCHANTCENTERLINKRESULT = _descriptor.Descriptor( + name='MutateMerchantCenterLinkResult', + full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateMerchantCenterLinkResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1069, + serialized_end=1124, +) + +_LISTMERCHANTCENTERLINKSRESPONSE.fields_by_name['merchant_center_links'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2._MERCHANTCENTERLINK +_MUTATEMERCHANTCENTERLINKREQUEST.fields_by_name['operation'].message_type = _MERCHANTCENTERLINKOPERATION +_MERCHANTCENTERLINKOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_MERCHANTCENTERLINKOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2._MERCHANTCENTERLINK +_MERCHANTCENTERLINKOPERATION.oneofs_by_name['operation'].fields.append( + _MERCHANTCENTERLINKOPERATION.fields_by_name['update']) +_MERCHANTCENTERLINKOPERATION.fields_by_name['update'].containing_oneof = _MERCHANTCENTERLINKOPERATION.oneofs_by_name['operation'] +_MERCHANTCENTERLINKOPERATION.oneofs_by_name['operation'].fields.append( + _MERCHANTCENTERLINKOPERATION.fields_by_name['remove']) +_MERCHANTCENTERLINKOPERATION.fields_by_name['remove'].containing_oneof = _MERCHANTCENTERLINKOPERATION.oneofs_by_name['operation'] +_MUTATEMERCHANTCENTERLINKRESPONSE.fields_by_name['result'].message_type = _MUTATEMERCHANTCENTERLINKRESULT +DESCRIPTOR.message_types_by_name['ListMerchantCenterLinksRequest'] = _LISTMERCHANTCENTERLINKSREQUEST +DESCRIPTOR.message_types_by_name['ListMerchantCenterLinksResponse'] = _LISTMERCHANTCENTERLINKSRESPONSE +DESCRIPTOR.message_types_by_name['GetMerchantCenterLinkRequest'] = _GETMERCHANTCENTERLINKREQUEST +DESCRIPTOR.message_types_by_name['MutateMerchantCenterLinkRequest'] = _MUTATEMERCHANTCENTERLINKREQUEST +DESCRIPTOR.message_types_by_name['MerchantCenterLinkOperation'] = _MERCHANTCENTERLINKOPERATION +DESCRIPTOR.message_types_by_name['MutateMerchantCenterLinkResponse'] = _MUTATEMERCHANTCENTERLINKRESPONSE +DESCRIPTOR.message_types_by_name['MutateMerchantCenterLinkResult'] = _MUTATEMERCHANTCENTERLINKRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ListMerchantCenterLinksRequest = _reflection.GeneratedProtocolMessageType('ListMerchantCenterLinksRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTMERCHANTCENTERLINKSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """Request message for [MerchantCenterLinkService.ListMerchantCenterLinks + ][google.ads.googleads.v5.services.MerchantCenterLinkService.ListMerch + antCenterLinks]. + + Attributes: + customer_id: + Required. The ID of the customer onto which to apply the + Merchant Center link list operation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListMerchantCenterLinksRequest) + }) +_sym_db.RegisterMessage(ListMerchantCenterLinksRequest) + +ListMerchantCenterLinksResponse = _reflection.GeneratedProtocolMessageType('ListMerchantCenterLinksResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTMERCHANTCENTERLINKSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """Response message for [MerchantCenterLinkService.ListMerchantCenterLink + s][google.ads.googleads.v5.services.MerchantCenterLinkService.ListMerc + hantCenterLinks]. + + Attributes: + merchant_center_links: + Merchant Center links available for the requested customer + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListMerchantCenterLinksResponse) + }) +_sym_db.RegisterMessage(ListMerchantCenterLinksResponse) + +GetMerchantCenterLinkRequest = _reflection.GeneratedProtocolMessageType('GetMerchantCenterLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETMERCHANTCENTERLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """Request message for [MerchantCenterLinkService.GetMerchantCenterLink][ + google.ads.googleads.v5.services.MerchantCenterLinkService.GetMerchant + CenterLink]. + + Attributes: + resource_name: + Required. Resource name of the Merchant Center link. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetMerchantCenterLinkRequest) + }) +_sym_db.RegisterMessage(GetMerchantCenterLinkRequest) + +MutateMerchantCenterLinkRequest = _reflection.GeneratedProtocolMessageType('MutateMerchantCenterLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMERCHANTCENTERLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """Request message for [MerchantCenterLinkService.MutateMerchantCenterLin + k][google.ads.googleads.v5.services.MerchantCenterLinkService.MutateMe + rchantCenterLink]. + + Attributes: + customer_id: + Required. The ID of the customer being modified. + operation: + Required. The operation to perform on the link + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMerchantCenterLinkRequest) + }) +_sym_db.RegisterMessage(MutateMerchantCenterLinkRequest) + +MerchantCenterLinkOperation = _reflection.GeneratedProtocolMessageType('MerchantCenterLinkOperation', (_message.Message,), { + 'DESCRIPTOR' : _MERCHANTCENTERLINKOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """A single update on a Merchant Center link. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The operation to perform + update: + Update operation: The merchant center link is expected to have + a valid resource name. + remove: + Remove operation: A resource name for the removed merchant + center link is expected, in this format: ``customers/{custome + r_id}/merchantCenterLinks/{merchant_center_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MerchantCenterLinkOperation) + }) +_sym_db.RegisterMessage(MerchantCenterLinkOperation) + +MutateMerchantCenterLinkResponse = _reflection.GeneratedProtocolMessageType('MutateMerchantCenterLinkResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMERCHANTCENTERLINKRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """Response message for Merchant Center link mutate. + + Attributes: + result: + Result for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMerchantCenterLinkResponse) + }) +_sym_db.RegisterMessage(MutateMerchantCenterLinkResponse) + +MutateMerchantCenterLinkResult = _reflection.GeneratedProtocolMessageType('MutateMerchantCenterLinkResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEMERCHANTCENTERLINKRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.merchant_center_link_service_pb2' + , + '__doc__': """The result for the Merchant Center link mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateMerchantCenterLinkResult) + }) +_sym_db.RegisterMessage(MutateMerchantCenterLinkResult) + + +DESCRIPTOR._options = None +_LISTMERCHANTCENTERLINKSREQUEST.fields_by_name['customer_id']._options = None +_GETMERCHANTCENTERLINKREQUEST.fields_by_name['resource_name']._options = None +_MUTATEMERCHANTCENTERLINKREQUEST.fields_by_name['customer_id']._options = None +_MUTATEMERCHANTCENTERLINKREQUEST.fields_by_name['operation']._options = None + +_MERCHANTCENTERLINKSERVICE = _descriptor.ServiceDescriptor( + name='MerchantCenterLinkService', + full_name='google.ads.googleads.v5.services.MerchantCenterLinkService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1127, + serialized_end=1898, + methods=[ + _descriptor.MethodDescriptor( + name='ListMerchantCenterLinks', + full_name='google.ads.googleads.v5.services.MerchantCenterLinkService.ListMerchantCenterLinks', + index=0, + containing_service=None, + input_type=_LISTMERCHANTCENTERLINKSREQUEST, + output_type=_LISTMERCHANTCENTERLINKSRESPONSE, + serialized_options=b'\202\323\344\223\0023\0221/v5/customers/{customer_id=*}/merchantCenterLinks\332A\013customer_id', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GetMerchantCenterLink', + full_name='google.ads.googleads.v5.services.MerchantCenterLinkService.GetMerchantCenterLink', + index=1, + containing_service=None, + input_type=_GETMERCHANTCENTERLINKREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2._MERCHANTCENTERLINK, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/merchantCenterLinks/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateMerchantCenterLink', + full_name='google.ads.googleads.v5.services.MerchantCenterLinkService.MutateMerchantCenterLink', + index=2, + containing_service=None, + input_type=_MUTATEMERCHANTCENTERLINKREQUEST, + output_type=_MUTATEMERCHANTCENTERLINKRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/merchantCenterLinks:mutate:\001*\332A\025customer_id,operation', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_MERCHANTCENTERLINKSERVICE) + +DESCRIPTOR.services_by_name['MerchantCenterLinkService'] = _MERCHANTCENTERLINKSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2_grpc.py new file mode 100644 index 000000000..6ced8ab8e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/merchant_center_link_service_pb2_grpc.py @@ -0,0 +1,145 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import merchant_center_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2 +from google.ads.google_ads.v5.proto.services import merchant_center_link_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2 + + +class MerchantCenterLinkServiceStub(object): + """Proto file describing the MerchantCenterLink service. + + This service allows management of links between Google Ads and Google + Merchant Center. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.ListMerchantCenterLinks = channel.unary_unary( + '/google.ads.googleads.v5.services.MerchantCenterLinkService/ListMerchantCenterLinks', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksResponse.FromString, + ) + self.GetMerchantCenterLink = channel.unary_unary( + '/google.ads.googleads.v5.services.MerchantCenterLinkService/GetMerchantCenterLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.GetMerchantCenterLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2.MerchantCenterLink.FromString, + ) + self.MutateMerchantCenterLink = channel.unary_unary( + '/google.ads.googleads.v5.services.MerchantCenterLinkService/MutateMerchantCenterLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkResponse.FromString, + ) + + +class MerchantCenterLinkServiceServicer(object): + """Proto file describing the MerchantCenterLink service. + + This service allows management of links between Google Ads and Google + Merchant Center. + """ + + def ListMerchantCenterLinks(self, request, context): + """Returns Merchant Center links available for this customer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetMerchantCenterLink(self, request, context): + """Returns the Merchant Center link in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateMerchantCenterLink(self, request, context): + """Updates status or removes a Merchant Center link. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MerchantCenterLinkServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListMerchantCenterLinks': grpc.unary_unary_rpc_method_handler( + servicer.ListMerchantCenterLinks, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksResponse.SerializeToString, + ), + 'GetMerchantCenterLink': grpc.unary_unary_rpc_method_handler( + servicer.GetMerchantCenterLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.GetMerchantCenterLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2.MerchantCenterLink.SerializeToString, + ), + 'MutateMerchantCenterLink': grpc.unary_unary_rpc_method_handler( + servicer.MutateMerchantCenterLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.MerchantCenterLinkService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class MerchantCenterLinkService(object): + """Proto file describing the MerchantCenterLink service. + + This service allows management of links between Google Ads and Google + Merchant Center. + """ + + @staticmethod + def ListMerchantCenterLinks(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MerchantCenterLinkService/ListMerchantCenterLinks', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.ListMerchantCenterLinksResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetMerchantCenterLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MerchantCenterLinkService/GetMerchantCenterLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.GetMerchantCenterLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_merchant__center__link__pb2.MerchantCenterLink.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateMerchantCenterLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MerchantCenterLinkService/MutateMerchantCenterLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_merchant__center__link__service__pb2.MutateMerchantCenterLinkResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2.py new file mode 100644 index 000000000..14cb0da69 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/mobile_app_category_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import mobile_app_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/mobile_app_category_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB%MobileAppCategoryConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nQgoogle/ads/googleads_v5/proto/services/mobile_app_category_constant_service.proto\x12 google.ads.googleads.v5.services\x1aJgoogle/ads/googleads_v5/proto/resources/mobile_app_category_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"x\n#GetMobileAppCategoryConstantRequest\x12Q\n\rresource_name\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\n2googleads.googleapis.com/MobileAppCategoryConstant2\xaf\x02\n MobileAppCategoryConstantService\x12\xed\x01\n\x1cGetMobileAppCategoryConstant\x12\x45.google.ads.googleads.v5.services.GetMobileAppCategoryConstantRequest\x1a<.google.ads.googleads.v5.resources.MobileAppCategoryConstant\"H\x82\xd3\xe4\x93\x02\x32\x12\x30/v5/{resource_name=mobileAppCategoryConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8c\x02\n$com.google.ads.googleads.v5.servicesB%MobileAppCategoryConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETMOBILEAPPCATEGORYCONSTANTREQUEST = _descriptor.Descriptor( + name='GetMobileAppCategoryConstantRequest', + full_name='google.ads.googleads.v5.services.GetMobileAppCategoryConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetMobileAppCategoryConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A4\n2googleads.googleapis.com/MobileAppCategoryConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=310, + serialized_end=430, +) + +DESCRIPTOR.message_types_by_name['GetMobileAppCategoryConstantRequest'] = _GETMOBILEAPPCATEGORYCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetMobileAppCategoryConstantRequest = _reflection.GeneratedProtocolMessageType('GetMobileAppCategoryConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETMOBILEAPPCATEGORYCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.mobile_app_category_constant_service_pb2' + , + '__doc__': """Request message for [MobileAppCategoryConstantService.GetMobileAppCate + goryConstant][google.ads.googleads.v5.services.MobileAppCategoryConsta + ntService.GetMobileAppCategoryConstant]. + + Attributes: + resource_name: + Required. Resource name of the mobile app category constant to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetMobileAppCategoryConstantRequest) + }) +_sym_db.RegisterMessage(GetMobileAppCategoryConstantRequest) + + +DESCRIPTOR._options = None +_GETMOBILEAPPCATEGORYCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_MOBILEAPPCATEGORYCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='MobileAppCategoryConstantService', + full_name='google.ads.googleads.v5.services.MobileAppCategoryConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=433, + serialized_end=736, + methods=[ + _descriptor.MethodDescriptor( + name='GetMobileAppCategoryConstant', + full_name='google.ads.googleads.v5.services.MobileAppCategoryConstantService.GetMobileAppCategoryConstant', + index=0, + containing_service=None, + input_type=_GETMOBILEAPPCATEGORYCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2._MOBILEAPPCATEGORYCONSTANT, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=mobileAppCategoryConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_MOBILEAPPCATEGORYCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['MobileAppCategoryConstantService'] = _MOBILEAPPCATEGORYCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2_grpc.py new file mode 100644 index 000000000..9a5e04595 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/mobile_app_category_constant_service_pb2_grpc.py @@ -0,0 +1,70 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import mobile_app_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2 +from google.ads.google_ads.v5.proto.services import mobile_app_category_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__app__category__constant__service__pb2 + + +class MobileAppCategoryConstantServiceStub(object): + """Service to fetch mobile app category constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetMobileAppCategoryConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.MobileAppCategoryConstantService/GetMobileAppCategoryConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__app__category__constant__service__pb2.GetMobileAppCategoryConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2.MobileAppCategoryConstant.FromString, + ) + + +class MobileAppCategoryConstantServiceServicer(object): + """Service to fetch mobile app category constants. + """ + + def GetMobileAppCategoryConstant(self, request, context): + """Returns the requested mobile app category constant. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MobileAppCategoryConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetMobileAppCategoryConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetMobileAppCategoryConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__app__category__constant__service__pb2.GetMobileAppCategoryConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2.MobileAppCategoryConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.MobileAppCategoryConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class MobileAppCategoryConstantService(object): + """Service to fetch mobile app category constants. + """ + + @staticmethod + def GetMobileAppCategoryConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MobileAppCategoryConstantService/GetMobileAppCategoryConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__app__category__constant__service__pb2.GetMobileAppCategoryConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__app__category__constant__pb2.MobileAppCategoryConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2.py new file mode 100644 index 000000000..8c1eade4b --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/mobile_device_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import mobile_device_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/mobile_device_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB MobileDeviceConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nKgoogle/ads/googleads_v5/proto/services/mobile_device_constant_service.proto\x12 google.ads.googleads.v5.services\x1a\x44google/ads/googleads_v5/proto/resources/mobile_device_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"n\n\x1eGetMobileDeviceConstantRequest\x12L\n\rresource_name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-googleads.googleapis.com/MobileDeviceConstant2\x96\x02\n\x1bMobileDeviceConstantService\x12\xd9\x01\n\x17GetMobileDeviceConstant\x12@.google.ads.googleads.v5.services.GetMobileDeviceConstantRequest\x1a\x37.google.ads.googleads.v5.resources.MobileDeviceConstant\"C\x82\xd3\xe4\x93\x02-\x12+/v5/{resource_name=mobileDeviceConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x87\x02\n$com.google.ads.googleads.v5.servicesB MobileDeviceConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETMOBILEDEVICECONSTANTREQUEST = _descriptor.Descriptor( + name='GetMobileDeviceConstantRequest', + full_name='google.ads.googleads.v5.services.GetMobileDeviceConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetMobileDeviceConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A/\n-googleads.googleapis.com/MobileDeviceConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=298, + serialized_end=408, +) + +DESCRIPTOR.message_types_by_name['GetMobileDeviceConstantRequest'] = _GETMOBILEDEVICECONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetMobileDeviceConstantRequest = _reflection.GeneratedProtocolMessageType('GetMobileDeviceConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETMOBILEDEVICECONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.mobile_device_constant_service_pb2' + , + '__doc__': """Request message for [MobileDeviceConstantService.GetMobileDeviceConsta + nt][google.ads.googleads.v5.services.MobileDeviceConstantService.GetMo + bileDeviceConstant]. + + Attributes: + resource_name: + Required. Resource name of the mobile device to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetMobileDeviceConstantRequest) + }) +_sym_db.RegisterMessage(GetMobileDeviceConstantRequest) + + +DESCRIPTOR._options = None +_GETMOBILEDEVICECONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_MOBILEDEVICECONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='MobileDeviceConstantService', + full_name='google.ads.googleads.v5.services.MobileDeviceConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=411, + serialized_end=689, + methods=[ + _descriptor.MethodDescriptor( + name='GetMobileDeviceConstant', + full_name='google.ads.googleads.v5.services.MobileDeviceConstantService.GetMobileDeviceConstant', + index=0, + containing_service=None, + input_type=_GETMOBILEDEVICECONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2._MOBILEDEVICECONSTANT, + serialized_options=b'\202\323\344\223\002-\022+/v5/{resource_name=mobileDeviceConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_MOBILEDEVICECONSTANTSERVICE) + +DESCRIPTOR.services_by_name['MobileDeviceConstantService'] = _MOBILEDEVICECONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2_grpc.py new file mode 100644 index 000000000..8053e7bf8 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/mobile_device_constant_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import mobile_device_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2 +from google.ads.google_ads.v5.proto.services import mobile_device_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__device__constant__service__pb2 + + +class MobileDeviceConstantServiceStub(object): + """Proto file describing the mobile device constant service. + + Service to fetch mobile device constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetMobileDeviceConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.MobileDeviceConstantService/GetMobileDeviceConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__device__constant__service__pb2.GetMobileDeviceConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2.MobileDeviceConstant.FromString, + ) + + +class MobileDeviceConstantServiceServicer(object): + """Proto file describing the mobile device constant service. + + Service to fetch mobile device constants. + """ + + def GetMobileDeviceConstant(self, request, context): + """Returns the requested mobile device constant in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MobileDeviceConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetMobileDeviceConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetMobileDeviceConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__device__constant__service__pb2.GetMobileDeviceConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2.MobileDeviceConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.MobileDeviceConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class MobileDeviceConstantService(object): + """Proto file describing the mobile device constant service. + + Service to fetch mobile device constants. + """ + + @staticmethod + def GetMobileDeviceConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.MobileDeviceConstantService/GetMobileDeviceConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_mobile__device__constant__service__pb2.GetMobileDeviceConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_mobile__device__constant__pb2.MobileDeviceConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2.py b/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2.py new file mode 100644 index 000000000..b5c6c76a2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2.py @@ -0,0 +1,520 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/offline_user_data_job_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import offline_user_data_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2 +from google.ads.google_ads.v5.proto.resources import offline_user_data_job_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/offline_user_data_job_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\036OfflineUserDataJobServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nJgoogle/ads/googleads_v5/proto/services/offline_user_data_job_service.proto\x12 google.ads.googleads.v5.services\x1a.google.ads.googleads.v5.services.GetOfflineUserDataJobRequest\x1a\x35.google.ads.googleads.v5.resources.OfflineUserDataJob\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/offlineUserDataJobs/*}\xda\x41\rresource_name\x12\xa1\x02\n\x1f\x41\x64\x64OfflineUserDataJobOperations\x12H.google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest\x1aI.google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsResponse\"i\x82\xd3\xe4\x93\x02H\"C/v5/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations:\x01*\xda\x41\x18resource_name,operations\x12\xfe\x01\n\x15RunOfflineUserDataJob\x12>.google.ads.googleads.v5.services.RunOfflineUserDataJobRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\x82\xd3\xe4\x93\x02>\"9/v5/{resource_name=customers/*/offlineUserDataJobs/*}:run:\x01*\xda\x41\rresource_name\xca\x41.\n\x15google.protobuf.Empty\x12\x15google.protobuf.Empty\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1eOfflineUserDataJobServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_CREATEOFFLINEUSERDATAJOBREQUEST = _descriptor.Descriptor( + name='CreateOfflineUserDataJobRequest', + full_name='google.ads.googleads.v5.services.CreateOfflineUserDataJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.CreateOfflineUserDataJobRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='job', full_name='google.ads.googleads.v5.services.CreateOfflineUserDataJobRequest.job', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=453, + serialized_end=585, +) + + +_CREATEOFFLINEUSERDATAJOBRESPONSE = _descriptor.Descriptor( + name='CreateOfflineUserDataJobResponse', + full_name='google.ads.googleads.v5.services.CreateOfflineUserDataJobResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.CreateOfflineUserDataJobResponse.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=587, + serialized_end=644, +) + + +_GETOFFLINEUSERDATAJOBREQUEST = _descriptor.Descriptor( + name='GetOfflineUserDataJobRequest', + full_name='google.ads.googleads.v5.services.GetOfflineUserDataJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetOfflineUserDataJobRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/OfflineUserDataJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=646, + serialized_end=752, +) + + +_RUNOFFLINEUSERDATAJOBREQUEST = _descriptor.Descriptor( + name='RunOfflineUserDataJobRequest', + full_name='google.ads.googleads.v5.services.RunOfflineUserDataJobRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.RunOfflineUserDataJobRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/OfflineUserDataJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=754, + serialized_end=860, +) + + +_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST = _descriptor.Descriptor( + name='AddOfflineUserDataJobOperationsRequest', + full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/OfflineUserDataJob', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='enable_partial_failure', full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest.enable_partial_failure', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest.operations', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=863, + serialized_end=1127, +) + + +_OFFLINEUSERDATAJOBOPERATION = _descriptor.Descriptor( + name='OfflineUserDataJobOperation', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.OfflineUserDataJobOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.OfflineUserDataJobOperation.remove', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove_all', full_name='google.ads.googleads.v5.services.OfflineUserDataJobOperation.remove_all', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.OfflineUserDataJobOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1130, + serialized_end=1314, +) + + +_ADDOFFLINEUSERDATAJOBOPERATIONSRESPONSE = _descriptor.Descriptor( + name='AddOfflineUserDataJobOperationsResponse', + full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsResponse.partial_failure_error', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1316, + serialized_end=1408, +) + +_CREATEOFFLINEUSERDATAJOBREQUEST.fields_by_name['job'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2._OFFLINEUSERDATAJOB +_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST.fields_by_name['enable_partial_failure'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST.fields_by_name['operations'].message_type = _OFFLINEUSERDATAJOBOPERATION +_OFFLINEUSERDATAJOBOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2._USERDATA +_OFFLINEUSERDATAJOBOPERATION.fields_by_name['remove'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2._USERDATA +_OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'].fields.append( + _OFFLINEUSERDATAJOBOPERATION.fields_by_name['create']) +_OFFLINEUSERDATAJOBOPERATION.fields_by_name['create'].containing_oneof = _OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'] +_OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'].fields.append( + _OFFLINEUSERDATAJOBOPERATION.fields_by_name['remove']) +_OFFLINEUSERDATAJOBOPERATION.fields_by_name['remove'].containing_oneof = _OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'] +_OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'].fields.append( + _OFFLINEUSERDATAJOBOPERATION.fields_by_name['remove_all']) +_OFFLINEUSERDATAJOBOPERATION.fields_by_name['remove_all'].containing_oneof = _OFFLINEUSERDATAJOBOPERATION.oneofs_by_name['operation'] +_ADDOFFLINEUSERDATAJOBOPERATIONSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +DESCRIPTOR.message_types_by_name['CreateOfflineUserDataJobRequest'] = _CREATEOFFLINEUSERDATAJOBREQUEST +DESCRIPTOR.message_types_by_name['CreateOfflineUserDataJobResponse'] = _CREATEOFFLINEUSERDATAJOBRESPONSE +DESCRIPTOR.message_types_by_name['GetOfflineUserDataJobRequest'] = _GETOFFLINEUSERDATAJOBREQUEST +DESCRIPTOR.message_types_by_name['RunOfflineUserDataJobRequest'] = _RUNOFFLINEUSERDATAJOBREQUEST +DESCRIPTOR.message_types_by_name['AddOfflineUserDataJobOperationsRequest'] = _ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST +DESCRIPTOR.message_types_by_name['OfflineUserDataJobOperation'] = _OFFLINEUSERDATAJOBOPERATION +DESCRIPTOR.message_types_by_name['AddOfflineUserDataJobOperationsResponse'] = _ADDOFFLINEUSERDATAJOBOPERATIONSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CreateOfflineUserDataJobRequest = _reflection.GeneratedProtocolMessageType('CreateOfflineUserDataJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATEOFFLINEUSERDATAJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Request message for [OfflineUserDataJobService.CreateOfflineUserDataJo + b][google.ads.googleads.v5.services.OfflineUserDataJobService.CreateOf + flineUserDataJob]. + + Attributes: + customer_id: + Required. The ID of the customer for which to create an + offline user data job. + job: + Required. The offline user data job to be created. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateOfflineUserDataJobRequest) + }) +_sym_db.RegisterMessage(CreateOfflineUserDataJobRequest) + +CreateOfflineUserDataJobResponse = _reflection.GeneratedProtocolMessageType('CreateOfflineUserDataJobResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATEOFFLINEUSERDATAJOBRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Response message for [OfflineUserDataJobService.CreateOfflineUserDataJ + ob][google.ads.googleads.v5.services.OfflineUserDataJobService.CreateO + fflineUserDataJob]. + + Attributes: + resource_name: + The resource name of the OfflineUserDataJob. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CreateOfflineUserDataJobResponse) + }) +_sym_db.RegisterMessage(CreateOfflineUserDataJobResponse) + +GetOfflineUserDataJobRequest = _reflection.GeneratedProtocolMessageType('GetOfflineUserDataJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETOFFLINEUSERDATAJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Request message for [OfflineUserDataJobService.GetOfflineUserDataJob][ + google.ads.googleads.v5.services.OfflineUserDataJobService.GetOfflineU + serDataJob]. + + Attributes: + resource_name: + Required. The resource name of the OfflineUserDataJob to get. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetOfflineUserDataJobRequest) + }) +_sym_db.RegisterMessage(GetOfflineUserDataJobRequest) + +RunOfflineUserDataJobRequest = _reflection.GeneratedProtocolMessageType('RunOfflineUserDataJobRequest', (_message.Message,), { + 'DESCRIPTOR' : _RUNOFFLINEUSERDATAJOBREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Request message for [OfflineUserDataJobService.RunOfflineUserDataJob][ + google.ads.googleads.v5.services.OfflineUserDataJobService.RunOfflineU + serDataJob]. + + Attributes: + resource_name: + Required. The resource name of the OfflineUserDataJob to run. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RunOfflineUserDataJobRequest) + }) +_sym_db.RegisterMessage(RunOfflineUserDataJobRequest) + +AddOfflineUserDataJobOperationsRequest = _reflection.GeneratedProtocolMessageType('AddOfflineUserDataJobOperationsRequest', (_message.Message,), { + 'DESCRIPTOR' : _ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Request message for [OfflineUserDataJobService.AddOfflineUserDataJobOp + erations][google.ads.googleads.v5.services.OfflineUserDataJobService.A + ddOfflineUserDataJobOperations]. + + Attributes: + resource_name: + Required. The resource name of the OfflineUserDataJob. + enable_partial_failure: + True to enable partial failure for the offline user data job. + operations: + Required. The list of operations to be done. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsRequest) + }) +_sym_db.RegisterMessage(AddOfflineUserDataJobOperationsRequest) + +OfflineUserDataJobOperation = _reflection.GeneratedProtocolMessageType('OfflineUserDataJobOperation', (_message.Message,), { + 'DESCRIPTOR' : _OFFLINEUSERDATAJOBOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Operation to be made for the AddOfflineUserDataJobOperationsRequest. + + Attributes: + operation: + Operation to be made for the + AddOfflineUserDataJobOperationsRequest. + create: + Add the provided data to the transaction. Data cannot be + retrieved after being uploaded. + remove: + Remove the provided data from the transaction. Data cannot be + retrieved after being uploaded. + remove_all: + Remove all previously provided data. This is only supported + for Customer Match. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.OfflineUserDataJobOperation) + }) +_sym_db.RegisterMessage(OfflineUserDataJobOperation) + +AddOfflineUserDataJobOperationsResponse = _reflection.GeneratedProtocolMessageType('AddOfflineUserDataJobOperationsResponse', (_message.Message,), { + 'DESCRIPTOR' : _ADDOFFLINEUSERDATAJOBOPERATIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.offline_user_data_job_service_pb2' + , + '__doc__': """Response message for [OfflineUserDataJobService.AddOfflineUserDataJobO + perations][google.ads.googleads.v5.services.OfflineUserDataJobService. + AddOfflineUserDataJobOperations]. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.AddOfflineUserDataJobOperationsResponse) + }) +_sym_db.RegisterMessage(AddOfflineUserDataJobOperationsResponse) + + +DESCRIPTOR._options = None +_CREATEOFFLINEUSERDATAJOBREQUEST.fields_by_name['customer_id']._options = None +_CREATEOFFLINEUSERDATAJOBREQUEST.fields_by_name['job']._options = None +_GETOFFLINEUSERDATAJOBREQUEST.fields_by_name['resource_name']._options = None +_RUNOFFLINEUSERDATAJOBREQUEST.fields_by_name['resource_name']._options = None +_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST.fields_by_name['resource_name']._options = None +_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST.fields_by_name['operations']._options = None + +_OFFLINEUSERDATAJOBSERVICE = _descriptor.ServiceDescriptor( + name='OfflineUserDataJobService', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1411, + serialized_end=2491, + methods=[ + _descriptor.MethodDescriptor( + name='CreateOfflineUserDataJob', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobService.CreateOfflineUserDataJob', + index=0, + containing_service=None, + input_type=_CREATEOFFLINEUSERDATAJOBREQUEST, + output_type=_CREATEOFFLINEUSERDATAJOBRESPONSE, + serialized_options=b'\202\323\344\223\002=\"8/v5/customers/{customer_id=*}/offlineUserDataJobs:create:\001*\332A\017customer_id,job', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GetOfflineUserDataJob', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobService.GetOfflineUserDataJob', + index=1, + containing_service=None, + input_type=_GETOFFLINEUSERDATAJOBREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2._OFFLINEUSERDATAJOB, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/offlineUserDataJobs/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='AddOfflineUserDataJobOperations', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations', + index=2, + containing_service=None, + input_type=_ADDOFFLINEUSERDATAJOBOPERATIONSREQUEST, + output_type=_ADDOFFLINEUSERDATAJOBOPERATIONSRESPONSE, + serialized_options=b'\202\323\344\223\002H\"C/v5/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations:\001*\332A\030resource_name,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='RunOfflineUserDataJob', + full_name='google.ads.googleads.v5.services.OfflineUserDataJobService.RunOfflineUserDataJob', + index=3, + containing_service=None, + input_type=_RUNOFFLINEUSERDATAJOBREQUEST, + output_type=google_dot_longrunning_dot_operations__pb2._OPERATION, + serialized_options=b'\202\323\344\223\002>\"9/v5/{resource_name=customers/*/offlineUserDataJobs/*}:run:\001*\332A\rresource_name\312A.\n\025google.protobuf.Empty\022\025google.protobuf.Empty', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_OFFLINEUSERDATAJOBSERVICE) + +DESCRIPTOR.services_by_name['OfflineUserDataJobService'] = _OFFLINEUSERDATAJOBSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2_grpc.py new file mode 100644 index 000000000..059261672 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/offline_user_data_job_service_pb2_grpc.py @@ -0,0 +1,179 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import offline_user_data_job_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2 +from google.ads.google_ads.v5.proto.services import offline_user_data_job_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2 +from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2 + + +class OfflineUserDataJobServiceStub(object): + """Proto file describing the OfflineUserDataJobService. + + Service to manage offline user data jobs. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateOfflineUserDataJob = channel.unary_unary( + '/google.ads.googleads.v5.services.OfflineUserDataJobService/CreateOfflineUserDataJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobResponse.FromString, + ) + self.GetOfflineUserDataJob = channel.unary_unary( + '/google.ads.googleads.v5.services.OfflineUserDataJobService/GetOfflineUserDataJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.GetOfflineUserDataJobRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2.OfflineUserDataJob.FromString, + ) + self.AddOfflineUserDataJobOperations = channel.unary_unary( + '/google.ads.googleads.v5.services.OfflineUserDataJobService/AddOfflineUserDataJobOperations', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsResponse.FromString, + ) + self.RunOfflineUserDataJob = channel.unary_unary( + '/google.ads.googleads.v5.services.OfflineUserDataJobService/RunOfflineUserDataJob', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.RunOfflineUserDataJobRequest.SerializeToString, + response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString, + ) + + +class OfflineUserDataJobServiceServicer(object): + """Proto file describing the OfflineUserDataJobService. + + Service to manage offline user data jobs. + """ + + def CreateOfflineUserDataJob(self, request, context): + """Creates an offline user data job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetOfflineUserDataJob(self, request, context): + """Returns the offline user data job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AddOfflineUserDataJobOperations(self, request, context): + """Adds operations to the offline user data job. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RunOfflineUserDataJob(self, request, context): + """Runs the offline user data job. + + When finished, the long running operation will contain the processing + result or failure information, if any. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_OfflineUserDataJobServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateOfflineUserDataJob': grpc.unary_unary_rpc_method_handler( + servicer.CreateOfflineUserDataJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobResponse.SerializeToString, + ), + 'GetOfflineUserDataJob': grpc.unary_unary_rpc_method_handler( + servicer.GetOfflineUserDataJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.GetOfflineUserDataJobRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2.OfflineUserDataJob.SerializeToString, + ), + 'AddOfflineUserDataJobOperations': grpc.unary_unary_rpc_method_handler( + servicer.AddOfflineUserDataJobOperations, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsResponse.SerializeToString, + ), + 'RunOfflineUserDataJob': grpc.unary_unary_rpc_method_handler( + servicer.RunOfflineUserDataJob, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.RunOfflineUserDataJobRequest.FromString, + response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.OfflineUserDataJobService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class OfflineUserDataJobService(object): + """Proto file describing the OfflineUserDataJobService. + + Service to manage offline user data jobs. + """ + + @staticmethod + def CreateOfflineUserDataJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.OfflineUserDataJobService/CreateOfflineUserDataJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.CreateOfflineUserDataJobResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetOfflineUserDataJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.OfflineUserDataJobService/GetOfflineUserDataJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.GetOfflineUserDataJobRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_offline__user__data__job__pb2.OfflineUserDataJob.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AddOfflineUserDataJobOperations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.OfflineUserDataJobService/AddOfflineUserDataJobOperations', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.AddOfflineUserDataJobOperationsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RunOfflineUserDataJob(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.OfflineUserDataJobService/RunOfflineUserDataJob', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_offline__user__data__job__service__pb2.RunOfflineUserDataJobRequest.SerializeToString, + google_dot_longrunning_dot_operations__pb2.Operation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2.py new file mode 100644 index 000000000..c9305f915 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/operating_system_version_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import operating_system_version_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/operating_system_version_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB*OperatingSystemVersionConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nVgoogle/ads/googleads_v5/proto/services/operating_system_version_constant_service.proto\x12 google.ads.googleads.v5.services\x1aOgoogle/ads/googleads_v5/proto/resources/operating_system_version_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x82\x01\n(GetOperatingSystemVersionConstantRequest\x12V\n\rresource_name\x18\x01 \x01(\tB?\xe0\x41\x02\xfa\x41\x39\n7googleads.googleapis.com/OperatingSystemVersionConstant2\xc8\x02\n%OperatingSystemVersionConstantService\x12\x81\x02\n!GetOperatingSystemVersionConstant\x12J.google.ads.googleads.v5.services.GetOperatingSystemVersionConstantRequest\x1a\x41.google.ads.googleads.v5.resources.OperatingSystemVersionConstant\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=operatingSystemVersionConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x91\x02\n$com.google.ads.googleads.v5.servicesB*OperatingSystemVersionConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETOPERATINGSYSTEMVERSIONCONSTANTREQUEST = _descriptor.Descriptor( + name='GetOperatingSystemVersionConstantRequest', + full_name='google.ads.googleads.v5.services.GetOperatingSystemVersionConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetOperatingSystemVersionConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A9\n7googleads.googleapis.com/OperatingSystemVersionConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=321, + serialized_end=451, +) + +DESCRIPTOR.message_types_by_name['GetOperatingSystemVersionConstantRequest'] = _GETOPERATINGSYSTEMVERSIONCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetOperatingSystemVersionConstantRequest = _reflection.GeneratedProtocolMessageType('GetOperatingSystemVersionConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETOPERATINGSYSTEMVERSIONCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.operating_system_version_constant_service_pb2' + , + '__doc__': """Request message for [OperatingSystemVersionConstantService.GetOperatin + gSystemVersionConstant][google.ads.googleads.v5.services.OperatingSyst + emVersionConstantService.GetOperatingSystemVersionConstant]. + + Attributes: + resource_name: + Required. Resource name of the OS version to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetOperatingSystemVersionConstantRequest) + }) +_sym_db.RegisterMessage(GetOperatingSystemVersionConstantRequest) + + +DESCRIPTOR._options = None +_GETOPERATINGSYSTEMVERSIONCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_OPERATINGSYSTEMVERSIONCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='OperatingSystemVersionConstantService', + full_name='google.ads.googleads.v5.services.OperatingSystemVersionConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=454, + serialized_end=782, + methods=[ + _descriptor.MethodDescriptor( + name='GetOperatingSystemVersionConstant', + full_name='google.ads.googleads.v5.services.OperatingSystemVersionConstantService.GetOperatingSystemVersionConstant', + index=0, + containing_service=None, + input_type=_GETOPERATINGSYSTEMVERSIONCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2._OPERATINGSYSTEMVERSIONCONSTANT, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=operatingSystemVersionConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_OPERATINGSYSTEMVERSIONCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['OperatingSystemVersionConstantService'] = _OPERATINGSYSTEMVERSIONCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2_grpc.py new file mode 100644 index 000000000..dd41c7b2d --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/operating_system_version_constant_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import operating_system_version_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2 +from google.ads.google_ads.v5.proto.services import operating_system_version_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_operating__system__version__constant__service__pb2 + + +class OperatingSystemVersionConstantServiceStub(object): + """Proto file describing the OS version constant service + + Service to fetch Operating System Version constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetOperatingSystemVersionConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.OperatingSystemVersionConstantService/GetOperatingSystemVersionConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_operating__system__version__constant__service__pb2.GetOperatingSystemVersionConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2.OperatingSystemVersionConstant.FromString, + ) + + +class OperatingSystemVersionConstantServiceServicer(object): + """Proto file describing the OS version constant service + + Service to fetch Operating System Version constants. + """ + + def GetOperatingSystemVersionConstant(self, request, context): + """Returns the requested OS version constant in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_OperatingSystemVersionConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetOperatingSystemVersionConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetOperatingSystemVersionConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_operating__system__version__constant__service__pb2.GetOperatingSystemVersionConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2.OperatingSystemVersionConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.OperatingSystemVersionConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class OperatingSystemVersionConstantService(object): + """Proto file describing the OS version constant service + + Service to fetch Operating System Version constants. + """ + + @staticmethod + def GetOperatingSystemVersionConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.OperatingSystemVersionConstantService/GetOperatingSystemVersionConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_operating__system__version__constant__service__pb2.GetOperatingSystemVersionConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_operating__system__version__constant__pb2.OperatingSystemVersionConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/paid_organic_search_term_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/paid_organic_search_term_view_service_pb2.py new file mode 100644 index 000000000..f502ee220 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/paid_organic_search_term_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/paid_organic_search_term_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import paid_organic_search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_paid__organic__search__term__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/paid_organic_search_term_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB%PaidOrganicSearchTermViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nRgoogle/ads/googleads_v5/proto/services/paid_organic_search_term_view_service.proto\x12 google.ads.googleads.v5.services\x1aKgoogle/ads/googleads_v5/proto/resources/paid_organic_search_term_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"x\n#GetPaidOrganicSearchTermViewRequest\x12Q\n\rresource_name\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\n2googleads.googleapis.com/PaidOrganicSearchTermView2\xbb\x02\n PaidOrganicSearchTermViewService\x12\xf9\x01\n\x1cGetPaidOrganicSearchTermView\x12\x45.google.ads.googleads.v5.services.GetPaidOrganicSearchTermViewRequest\x1a<.google.ads.googleads.v5.resources.PaidOrganicSearchTermView\"T\x82\xd3\xe4\x93\x02>\x12\022.google.ads.googleads.v5.services.GetParentalStatusViewRequest\x1a\x35.google.ads.googleads.v5.resources.ParentalStatusView\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=customers/*/parentalStatusViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x85\x02\n$com.google.ads.googleads.v5.servicesB\x1eParentalStatusViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETPARENTALSTATUSVIEWREQUEST = _descriptor.Descriptor( + name='GetParentalStatusViewRequest', + full_name='google.ads.googleads.v5.services.GetParentalStatusViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetParentalStatusViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A-\n+googleads.googleapis.com/ParentalStatusView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=294, + serialized_end=400, +) + +DESCRIPTOR.message_types_by_name['GetParentalStatusViewRequest'] = _GETPARENTALSTATUSVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetParentalStatusViewRequest = _reflection.GeneratedProtocolMessageType('GetParentalStatusViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPARENTALSTATUSVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.parental_status_view_service_pb2' + , + '__doc__': """Request message for [ParentalStatusViewService.GetParentalStatusView][ + google.ads.googleads.v5.services.ParentalStatusViewService.GetParental + StatusView]. + + Attributes: + resource_name: + Required. The resource name of the parental status view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetParentalStatusViewRequest) + }) +_sym_db.RegisterMessage(GetParentalStatusViewRequest) + + +DESCRIPTOR._options = None +_GETPARENTALSTATUSVIEWREQUEST.fields_by_name['resource_name']._options = None + +_PARENTALSTATUSVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ParentalStatusViewService', + full_name='google.ads.googleads.v5.services.ParentalStatusViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=403, + serialized_end=683, + methods=[ + _descriptor.MethodDescriptor( + name='GetParentalStatusView', + full_name='google.ads.googleads.v5.services.ParentalStatusViewService.GetParentalStatusView', + index=0, + containing_service=None, + input_type=_GETPARENTALSTATUSVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2._PARENTALSTATUSVIEW, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=customers/*/parentalStatusViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_PARENTALSTATUSVIEWSERVICE) + +DESCRIPTOR.services_by_name['ParentalStatusViewService'] = _PARENTALSTATUSVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/parental_status_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/parental_status_view_service_pb2_grpc.py new file mode 100644 index 000000000..a90a0ed25 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/parental_status_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import parental_status_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2 +from google.ads.google_ads.v5.proto.services import parental_status_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_parental__status__view__service__pb2 + + +class ParentalStatusViewServiceStub(object): + """Proto file describing the Parental Status View service. + + Service to manage parental status views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetParentalStatusView = channel.unary_unary( + '/google.ads.googleads.v5.services.ParentalStatusViewService/GetParentalStatusView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_parental__status__view__service__pb2.GetParentalStatusViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2.ParentalStatusView.FromString, + ) + + +class ParentalStatusViewServiceServicer(object): + """Proto file describing the Parental Status View service. + + Service to manage parental status views. + """ + + def GetParentalStatusView(self, request, context): + """Returns the requested parental status view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ParentalStatusViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetParentalStatusView': grpc.unary_unary_rpc_method_handler( + servicer.GetParentalStatusView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_parental__status__view__service__pb2.GetParentalStatusViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2.ParentalStatusView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ParentalStatusViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ParentalStatusViewService(object): + """Proto file describing the Parental Status View service. + + Service to manage parental status views. + """ + + @staticmethod + def GetParentalStatusView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ParentalStatusViewService/GetParentalStatusView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_parental__status__view__service__pb2.GetParentalStatusViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_parental__status__view__pb2.ParentalStatusView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/payments_account_service_pb2.py b/google/ads/google_ads/v5/proto/services/payments_account_service_pb2.py new file mode 100644 index 000000000..246f8229f --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/payments_account_service_pb2.py @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/payments_account_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import payments_account_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_payments__account__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/payments_account_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033PaymentsAccountServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/payments_account_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/payments_account.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"7\n\x1bListPaymentsAccountsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"m\n\x1cListPaymentsAccountsResponse\x12M\n\x11payments_accounts\x18\x01 \x03(\x0b\x32\x32.google.ads.googleads.v5.resources.PaymentsAccount2\x93\x02\n\x16PaymentsAccountService\x12\xdb\x01\n\x14ListPaymentsAccounts\x12=.google.ads.googleads.v5.services.ListPaymentsAccountsRequest\x1a>.google.ads.googleads.v5.services.ListPaymentsAccountsResponse\"D\x82\xd3\xe4\x93\x02\x30\x12./v5/customers/{customer_id=*}/paymentsAccounts\xda\x41\x0b\x63ustomer_id\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1bPaymentsAccountServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_payments__account__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,]) + + + + +_LISTPAYMENTSACCOUNTSREQUEST = _descriptor.Descriptor( + name='ListPaymentsAccountsRequest', + full_name='google.ads.googleads.v5.services.ListPaymentsAccountsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.ListPaymentsAccountsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=259, + serialized_end=314, +) + + +_LISTPAYMENTSACCOUNTSRESPONSE = _descriptor.Descriptor( + name='ListPaymentsAccountsResponse', + full_name='google.ads.googleads.v5.services.ListPaymentsAccountsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='payments_accounts', full_name='google.ads.googleads.v5.services.ListPaymentsAccountsResponse.payments_accounts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=316, + serialized_end=425, +) + +_LISTPAYMENTSACCOUNTSRESPONSE.fields_by_name['payments_accounts'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_payments__account__pb2._PAYMENTSACCOUNT +DESCRIPTOR.message_types_by_name['ListPaymentsAccountsRequest'] = _LISTPAYMENTSACCOUNTSREQUEST +DESCRIPTOR.message_types_by_name['ListPaymentsAccountsResponse'] = _LISTPAYMENTSACCOUNTSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ListPaymentsAccountsRequest = _reflection.GeneratedProtocolMessageType('ListPaymentsAccountsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTPAYMENTSACCOUNTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.payments_account_service_pb2' + , + '__doc__': """Request message for fetching all accessible payments accounts. + + Attributes: + customer_id: + Required. The ID of the customer to apply the PaymentsAccount + list operation to. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPaymentsAccountsRequest) + }) +_sym_db.RegisterMessage(ListPaymentsAccountsRequest) + +ListPaymentsAccountsResponse = _reflection.GeneratedProtocolMessageType('ListPaymentsAccountsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTPAYMENTSACCOUNTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.payments_account_service_pb2' + , + '__doc__': """Response message for [PaymentsAccountService.ListPaymentsAccounts][goo + gle.ads.googleads.v5.services.PaymentsAccountService.ListPaymentsAccou + nts]. + + Attributes: + payments_accounts: + The list of accessible payments accounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPaymentsAccountsResponse) + }) +_sym_db.RegisterMessage(ListPaymentsAccountsResponse) + + +DESCRIPTOR._options = None +_LISTPAYMENTSACCOUNTSREQUEST.fields_by_name['customer_id']._options = None + +_PAYMENTSACCOUNTSERVICE = _descriptor.ServiceDescriptor( + name='PaymentsAccountService', + full_name='google.ads.googleads.v5.services.PaymentsAccountService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=428, + serialized_end=703, + methods=[ + _descriptor.MethodDescriptor( + name='ListPaymentsAccounts', + full_name='google.ads.googleads.v5.services.PaymentsAccountService.ListPaymentsAccounts', + index=0, + containing_service=None, + input_type=_LISTPAYMENTSACCOUNTSREQUEST, + output_type=_LISTPAYMENTSACCOUNTSRESPONSE, + serialized_options=b'\202\323\344\223\0020\022./v5/customers/{customer_id=*}/paymentsAccounts\332A\013customer_id', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_PAYMENTSACCOUNTSERVICE) + +DESCRIPTOR.services_by_name['PaymentsAccountService'] = _PAYMENTSACCOUNTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/payments_account_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/payments_account_service_pb2_grpc.py new file mode 100644 index 000000000..aca794e48 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/payments_account_service_pb2_grpc.py @@ -0,0 +1,80 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import payments_account_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2 + + +class PaymentsAccountServiceStub(object): + """Proto file describing the payments account service. + + Service to provide payments accounts that can be used to set up consolidated + billing. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.ListPaymentsAccounts = channel.unary_unary( + '/google.ads.googleads.v5.services.PaymentsAccountService/ListPaymentsAccounts', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsResponse.FromString, + ) + + +class PaymentsAccountServiceServicer(object): + """Proto file describing the payments account service. + + Service to provide payments accounts that can be used to set up consolidated + billing. + """ + + def ListPaymentsAccounts(self, request, context): + """Returns all payments accounts associated with all managers + between the login customer ID and specified serving customer in the + hierarchy, inclusive. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_PaymentsAccountServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListPaymentsAccounts': grpc.unary_unary_rpc_method_handler( + servicer.ListPaymentsAccounts, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.PaymentsAccountService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class PaymentsAccountService(object): + """Proto file describing the payments account service. + + Service to provide payments accounts that can be used to set up consolidated + billing. + """ + + @staticmethod + def ListPaymentsAccounts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.PaymentsAccountService/ListPaymentsAccounts', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_payments__account__service__pb2.ListPaymentsAccountsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2.py new file mode 100644 index 000000000..bf2942a95 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/product_bidding_category_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import product_bidding_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/product_bidding_category_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB*ProductBiddingCategoryConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nVgoogle/ads/googleads_v5/proto/services/product_bidding_category_constant_service.proto\x12 google.ads.googleads.v5.services\x1aOgoogle/ads/googleads_v5/proto/resources/product_bidding_category_constant.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x82\x01\n(GetProductBiddingCategoryConstantRequest\x12V\n\rresource_name\x18\x01 \x01(\tB?\xe0\x41\x02\xfa\x41\x39\n7googleads.googleapis.com/ProductBiddingCategoryConstant2\xc8\x02\n%ProductBiddingCategoryConstantService\x12\x81\x02\n!GetProductBiddingCategoryConstant\x12J.google.ads.googleads.v5.services.GetProductBiddingCategoryConstantRequest\x1a\x41.google.ads.googleads.v5.resources.ProductBiddingCategoryConstant\"M\x82\xd3\xe4\x93\x02\x37\x12\x35/v5/{resource_name=productBiddingCategoryConstants/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x91\x02\n$com.google.ads.googleads.v5.servicesB*ProductBiddingCategoryConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETPRODUCTBIDDINGCATEGORYCONSTANTREQUEST = _descriptor.Descriptor( + name='GetProductBiddingCategoryConstantRequest', + full_name='google.ads.googleads.v5.services.GetProductBiddingCategoryConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetProductBiddingCategoryConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A9\n7googleads.googleapis.com/ProductBiddingCategoryConstant', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=321, + serialized_end=451, +) + +DESCRIPTOR.message_types_by_name['GetProductBiddingCategoryConstantRequest'] = _GETPRODUCTBIDDINGCATEGORYCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetProductBiddingCategoryConstantRequest = _reflection.GeneratedProtocolMessageType('GetProductBiddingCategoryConstantRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPRODUCTBIDDINGCATEGORYCONSTANTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.product_bidding_category_constant_service_pb2' + , + '__doc__': """Request message for [ProductBiddingCategoryConstantService.GetProductB + iddingCategoryConstant][google.ads.googleads.v5.services.ProductBiddin + gCategoryConstantService.GetProductBiddingCategoryConstant]. + + Attributes: + resource_name: + Required. Resource name of the Product Bidding Category to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetProductBiddingCategoryConstantRequest) + }) +_sym_db.RegisterMessage(GetProductBiddingCategoryConstantRequest) + + +DESCRIPTOR._options = None +_GETPRODUCTBIDDINGCATEGORYCONSTANTREQUEST.fields_by_name['resource_name']._options = None + +_PRODUCTBIDDINGCATEGORYCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='ProductBiddingCategoryConstantService', + full_name='google.ads.googleads.v5.services.ProductBiddingCategoryConstantService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=454, + serialized_end=782, + methods=[ + _descriptor.MethodDescriptor( + name='GetProductBiddingCategoryConstant', + full_name='google.ads.googleads.v5.services.ProductBiddingCategoryConstantService.GetProductBiddingCategoryConstant', + index=0, + containing_service=None, + input_type=_GETPRODUCTBIDDINGCATEGORYCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2._PRODUCTBIDDINGCATEGORYCONSTANT, + serialized_options=b'\202\323\344\223\0027\0225/v5/{resource_name=productBiddingCategoryConstants/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_PRODUCTBIDDINGCATEGORYCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['ProductBiddingCategoryConstantService'] = _PRODUCTBIDDINGCATEGORYCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2_grpc.py new file mode 100644 index 000000000..a6aa70572 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/product_bidding_category_constant_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import product_bidding_category_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2 +from google.ads.google_ads.v5.proto.services import product_bidding_category_constant_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__bidding__category__constant__service__pb2 + + +class ProductBiddingCategoryConstantServiceStub(object): + """Proto file describing the Product Bidding Category constant service + + Service to fetch Product Bidding Categories. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetProductBiddingCategoryConstant = channel.unary_unary( + '/google.ads.googleads.v5.services.ProductBiddingCategoryConstantService/GetProductBiddingCategoryConstant', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__bidding__category__constant__service__pb2.GetProductBiddingCategoryConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2.ProductBiddingCategoryConstant.FromString, + ) + + +class ProductBiddingCategoryConstantServiceServicer(object): + """Proto file describing the Product Bidding Category constant service + + Service to fetch Product Bidding Categories. + """ + + def GetProductBiddingCategoryConstant(self, request, context): + """Returns the requested Product Bidding Category in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ProductBiddingCategoryConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetProductBiddingCategoryConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetProductBiddingCategoryConstant, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__bidding__category__constant__service__pb2.GetProductBiddingCategoryConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2.ProductBiddingCategoryConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ProductBiddingCategoryConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ProductBiddingCategoryConstantService(object): + """Proto file describing the Product Bidding Category constant service + + Service to fetch Product Bidding Categories. + """ + + @staticmethod + def GetProductBiddingCategoryConstant(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ProductBiddingCategoryConstantService/GetProductBiddingCategoryConstant', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__bidding__category__constant__service__pb2.GetProductBiddingCategoryConstantRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__bidding__category__constant__pb2.ProductBiddingCategoryConstant.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2.py new file mode 100644 index 000000000..090122908 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/product_group_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import product_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/product_group_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034ProductGroupViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/services/product_group_view_service.proto\x12 google.ads.googleads.v5.services\x1a@google/ads/googleads_v5/proto/resources/product_group_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"f\n\x1aGetProductGroupViewRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/ProductGroupView2\x8e\x02\n\x17ProductGroupViewService\x12\xd5\x01\n\x13GetProductGroupView\x12<.google.ads.googleads.v5.services.GetProductGroupViewRequest\x1a\x33.google.ads.googleads.v5.resources.ProductGroupView\"K\x82\xd3\xe4\x93\x02\x35\x12\x33/v5/{resource_name=customers/*/productGroupViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1cProductGroupViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETPRODUCTGROUPVIEWREQUEST = _descriptor.Descriptor( + name='GetProductGroupViewRequest', + full_name='google.ads.googleads.v5.services.GetProductGroupViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetProductGroupViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/ProductGroupView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=290, + serialized_end=392, +) + +DESCRIPTOR.message_types_by_name['GetProductGroupViewRequest'] = _GETPRODUCTGROUPVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetProductGroupViewRequest = _reflection.GeneratedProtocolMessageType('GetProductGroupViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPRODUCTGROUPVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.product_group_view_service_pb2' + , + '__doc__': """Request message for [ProductGroupViewService.GetProductGroupView][goog + le.ads.googleads.v5.services.ProductGroupViewService.GetProductGroupVi + ew]. + + Attributes: + resource_name: + Required. The resource name of the product group view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetProductGroupViewRequest) + }) +_sym_db.RegisterMessage(GetProductGroupViewRequest) + + +DESCRIPTOR._options = None +_GETPRODUCTGROUPVIEWREQUEST.fields_by_name['resource_name']._options = None + +_PRODUCTGROUPVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ProductGroupViewService', + full_name='google.ads.googleads.v5.services.ProductGroupViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=395, + serialized_end=665, + methods=[ + _descriptor.MethodDescriptor( + name='GetProductGroupView', + full_name='google.ads.googleads.v5.services.ProductGroupViewService.GetProductGroupView', + index=0, + containing_service=None, + input_type=_GETPRODUCTGROUPVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2._PRODUCTGROUPVIEW, + serialized_options=b'\202\323\344\223\0025\0223/v5/{resource_name=customers/*/productGroupViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_PRODUCTGROUPVIEWSERVICE) + +DESCRIPTOR.services_by_name['ProductGroupViewService'] = _PRODUCTGROUPVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2_grpc.py new file mode 100644 index 000000000..132966a86 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/product_group_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import product_group_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2 +from google.ads.google_ads.v5.proto.services import product_group_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__group__view__service__pb2 + + +class ProductGroupViewServiceStub(object): + """Proto file describing the ProductGroup View service. + + Service to manage product group views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetProductGroupView = channel.unary_unary( + '/google.ads.googleads.v5.services.ProductGroupViewService/GetProductGroupView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__group__view__service__pb2.GetProductGroupViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2.ProductGroupView.FromString, + ) + + +class ProductGroupViewServiceServicer(object): + """Proto file describing the ProductGroup View service. + + Service to manage product group views. + """ + + def GetProductGroupView(self, request, context): + """Returns the requested product group view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ProductGroupViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetProductGroupView': grpc.unary_unary_rpc_method_handler( + servicer.GetProductGroupView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__group__view__service__pb2.GetProductGroupViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2.ProductGroupView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ProductGroupViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ProductGroupViewService(object): + """Proto file describing the ProductGroup View service. + + Service to manage product group views. + """ + + @staticmethod + def GetProductGroupView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ProductGroupViewService/GetProductGroupView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_product__group__view__service__pb2.GetProductGroupViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_product__group__view__pb2.ProductGroupView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2.py b/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2.py new file mode 100644 index 000000000..85f7225be --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2.py @@ -0,0 +1,1526 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/reach_plan_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v5.proto.enums import frequency_cap_time_unit_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2 +from google.ads.google_ads.v5.proto.enums import reach_plan_ad_length_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2 +from google.ads.google_ads.v5.proto.enums import reach_plan_age_range_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__age__range__pb2 +from google.ads.google_ads.v5.proto.enums import reach_plan_network_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__network__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/reach_plan_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025ReachPlanServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/services/reach_plan_service.proto\x12 google.ads.googleads.v5.services\x1a\x33google/ads/googleads_v5/proto/common/criteria.proto\x1a\x41google/ads/googleads_v5/proto/enums/frequency_cap_time_unit.proto\x1a>google/ads/googleads_v5/proto/enums/reach_plan_ad_length.proto\x1a>google/ads/googleads_v5/proto/enums/reach_plan_age_range.proto\x1a\n\ttargeting\x18\x06 \x01(\x0b\x32+.google.ads.googleads.v5.services.Targeting\x12O\n\x10planned_products\x18\x07 \x03(\x0b\x32\x30.google.ads.googleads.v5.services.PlannedProductB\x03\xe0\x41\x02\"\xab\x01\n\x0c\x46requencyCap\x12\x35\n\x0bimpressions\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12\x64\n\ttime_unit\x18\x02 \x01(\x0e\x32L.google.ads.googleads.v5.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnitB\x03\xe0\x41\x02\"\xf4\x02\n\tTargeting\x12;\n\x15plannable_location_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12Y\n\tage_range\x18\x02 \x01(\x0e\x32\x46.google.ads.googleads.v5.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange\x12;\n\x07genders\x18\x03 \x03(\x0b\x32*.google.ads.googleads.v5.common.GenderInfo\x12;\n\x07\x64\x65vices\x18\x04 \x03(\x0b\x32*.google.ads.googleads.v5.common.DeviceInfo\x12U\n\x07network\x18\x05 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.ReachPlanNetworkEnum.ReachPlanNetwork\"I\n\x10\x43\x61mpaignDuration\x12\x35\n\x10\x64uration_in_days\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\x82\x01\n\x0ePlannedProduct\x12<\n\x16plannable_product_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\rbudget_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xc1\x01\n\x1dGenerateReachForecastResponse\x12]\n\x1aon_target_audience_metrics\x18\x01 \x01(\x0b\x32\x39.google.ads.googleads.v5.services.OnTargetAudienceMetrics\x12\x41\n\x0breach_curve\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.services.ReachCurve\"V\n\nReachCurve\x12H\n\x0freach_forecasts\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v5.services.ReachForecast\"\xdc\x01\n\rReachForecast\x12\x30\n\x0b\x63ost_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12<\n\x08\x66orecast\x18\x02 \x01(\x0b\x32*.google.ads.googleads.v5.services.Forecast\x12[\n\x1e\x66orecasted_product_allocations\x18\x03 \x03(\x0b\x32\x33.google.ads.googleads.v5.services.ProductAllocation\"\xe6\x01\n\x08\x46orecast\x12\x34\n\x0fon_target_reach\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x0btotal_reach\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x15on_target_impressions\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x11total_impressions\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x90\x01\n\x17OnTargetAudienceMetrics\x12:\n\x15youtube_audience_size\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14\x63\x65nsus_audience_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value2\xfd\x07\n\x10ReachPlanService\x12\xc2\x01\n\x16ListPlannableLocations\x12?.google.ads.googleads.v5.services.ListPlannableLocationsRequest\x1a@.google.ads.googleads.v5.services.ListPlannableLocationsResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v5:listPlannableLocations:\x01*\x12\xd6\x01\n\x15ListPlannableProducts\x12>.google.ads.googleads.v5.services.ListPlannableProductsRequest\x1a?.google.ads.googleads.v5.services.ListPlannableProductsResponse\"<\x82\xd3\xe4\x93\x02\x1e\"\x19/v5:listPlannableProducts:\x01*\xda\x41\x15plannable_location_id\x12\xa1\x02\n\x17GenerateProductMixIdeas\x12@.google.ads.googleads.v5.services.GenerateProductMixIdeasRequest\x1a\x41.google.ads.googleads.v5.services.GenerateProductMixIdeasResponse\"\x80\x01\x82\xd3\xe4\x93\x02:\"5/v5/customers/{customer_id=*}:generateProductMixIdeas:\x01*\xda\x41=customer_id,plannable_location_id,currency_code,budget_micros\x12\x89\x02\n\x15GenerateReachForecast\x12>.google.ads.googleads.v5.services.GenerateReachForecastRequest\x1a?.google.ads.googleads.v5.services.GenerateReachForecastResponse\"o\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}:generateReachForecast:\x01*\xda\x41.customer_id,campaign_duration,planned_products\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15ReachPlanServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__age__range__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__network__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_LISTPLANNABLELOCATIONSREQUEST = _descriptor.Descriptor( + name='ListPlannableLocationsRequest', + full_name='google.ads.googleads.v5.services.ListPlannableLocationsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=531, + serialized_end=562, +) + + +_LISTPLANNABLELOCATIONSRESPONSE = _descriptor.Descriptor( + name='ListPlannableLocationsResponse', + full_name='google.ads.googleads.v5.services.ListPlannableLocationsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_locations', full_name='google.ads.googleads.v5.services.ListPlannableLocationsResponse.plannable_locations', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=564, + serialized_end=678, +) + + +_PLANNABLELOCATION = _descriptor.Descriptor( + name='PlannableLocation', + full_name='google.ads.googleads.v5.services.PlannableLocation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v5.services.PlannableLocation.id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v5.services.PlannableLocation.name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_country_id', full_name='google.ads.googleads.v5.services.PlannableLocation.parent_country_id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=681, + serialized_end=842, +) + + +_LISTPLANNABLEPRODUCTSREQUEST = _descriptor.Descriptor( + name='ListPlannableProductsRequest', + full_name='google.ads.googleads.v5.services.ListPlannableProductsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_location_id', full_name='google.ads.googleads.v5.services.ListPlannableProductsRequest.plannable_location_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=844, + serialized_end=940, +) + + +_LISTPLANNABLEPRODUCTSRESPONSE = _descriptor.Descriptor( + name='ListPlannableProductsResponse', + full_name='google.ads.googleads.v5.services.ListPlannableProductsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='product_metadata', full_name='google.ads.googleads.v5.services.ListPlannableProductsResponse.product_metadata', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=942, + serialized_end=1050, +) + + +_PRODUCTMETADATA = _descriptor.Descriptor( + name='ProductMetadata', + full_name='google.ads.googleads.v5.services.ProductMetadata', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_product_code', full_name='google.ads.googleads.v5.services.ProductMetadata.plannable_product_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='plannable_targeting', full_name='google.ads.googleads.v5.services.ProductMetadata.plannable_targeting', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1053, + serialized_end=1215, +) + + +_PLANNABLETARGETING = _descriptor.Descriptor( + name='PlannableTargeting', + full_name='google.ads.googleads.v5.services.PlannableTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='age_ranges', full_name='google.ads.googleads.v5.services.PlannableTargeting.age_ranges', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='genders', full_name='google.ads.googleads.v5.services.PlannableTargeting.genders', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='devices', full_name='google.ads.googleads.v5.services.PlannableTargeting.devices', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='networks', full_name='google.ads.googleads.v5.services.PlannableTargeting.networks', index=3, + number=4, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1218, + serialized_end=1540, +) + + +_GENERATEPRODUCTMIXIDEASREQUEST = _descriptor.Descriptor( + name='GenerateProductMixIdeasRequest', + full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='plannable_location_id', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest.plannable_location_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest.currency_code', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_micros', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest.budget_micros', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='preferences', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasRequest.preferences', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1543, + serialized_end=1850, +) + + +_PREFERENCES = _descriptor.Descriptor( + name='Preferences', + full_name='google.ads.googleads.v5.services.Preferences', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='is_skippable', full_name='google.ads.googleads.v5.services.Preferences.is_skippable', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='starts_with_sound', full_name='google.ads.googleads.v5.services.Preferences.starts_with_sound', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ad_length', full_name='google.ads.googleads.v5.services.Preferences.ad_length', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='top_content_only', full_name='google.ads.googleads.v5.services.Preferences.top_content_only', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='has_guaranteed_price', full_name='google.ads.googleads.v5.services.Preferences.has_guaranteed_price', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1853, + serialized_end=2174, +) + + +_GENERATEPRODUCTMIXIDEASRESPONSE = _descriptor.Descriptor( + name='GenerateProductMixIdeasResponse', + full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='product_allocation', full_name='google.ads.googleads.v5.services.GenerateProductMixIdeasResponse.product_allocation', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2176, + serialized_end=2290, +) + + +_PRODUCTALLOCATION = _descriptor.Descriptor( + name='ProductAllocation', + full_name='google.ads.googleads.v5.services.ProductAllocation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_product_code', full_name='google.ads.googleads.v5.services.ProductAllocation.plannable_product_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_micros', full_name='google.ads.googleads.v5.services.ProductAllocation.budget_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2293, + serialized_end=2426, +) + + +_GENERATEREACHFORECASTREQUEST = _descriptor.Descriptor( + name='GenerateReachForecastRequest', + full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.currency_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_duration', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.campaign_duration', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cookie_frequency_cap', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.cookie_frequency_cap', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cookie_frequency_cap_setting', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.cookie_frequency_cap_setting', index=4, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_effective_frequency', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.min_effective_frequency', index=5, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.targeting', index=6, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='planned_products', full_name='google.ads.googleads.v5.services.GenerateReachForecastRequest.planned_products', index=7, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2429, + serialized_end=2974, +) + + +_FREQUENCYCAP = _descriptor.Descriptor( + name='FrequencyCap', + full_name='google.ads.googleads.v5.services.FrequencyCap', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v5.services.FrequencyCap.impressions', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='time_unit', full_name='google.ads.googleads.v5.services.FrequencyCap.time_unit', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2977, + serialized_end=3148, +) + + +_TARGETING = _descriptor.Descriptor( + name='Targeting', + full_name='google.ads.googleads.v5.services.Targeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_location_id', full_name='google.ads.googleads.v5.services.Targeting.plannable_location_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='age_range', full_name='google.ads.googleads.v5.services.Targeting.age_range', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='genders', full_name='google.ads.googleads.v5.services.Targeting.genders', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='devices', full_name='google.ads.googleads.v5.services.Targeting.devices', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='network', full_name='google.ads.googleads.v5.services.Targeting.network', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3151, + serialized_end=3523, +) + + +_CAMPAIGNDURATION = _descriptor.Descriptor( + name='CampaignDuration', + full_name='google.ads.googleads.v5.services.CampaignDuration', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='duration_in_days', full_name='google.ads.googleads.v5.services.CampaignDuration.duration_in_days', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3525, + serialized_end=3598, +) + + +_PLANNEDPRODUCT = _descriptor.Descriptor( + name='PlannedProduct', + full_name='google.ads.googleads.v5.services.PlannedProduct', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='plannable_product_code', full_name='google.ads.googleads.v5.services.PlannedProduct.plannable_product_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='budget_micros', full_name='google.ads.googleads.v5.services.PlannedProduct.budget_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3601, + serialized_end=3731, +) + + +_GENERATEREACHFORECASTRESPONSE = _descriptor.Descriptor( + name='GenerateReachForecastResponse', + full_name='google.ads.googleads.v5.services.GenerateReachForecastResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='on_target_audience_metrics', full_name='google.ads.googleads.v5.services.GenerateReachForecastResponse.on_target_audience_metrics', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reach_curve', full_name='google.ads.googleads.v5.services.GenerateReachForecastResponse.reach_curve', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3734, + serialized_end=3927, +) + + +_REACHCURVE = _descriptor.Descriptor( + name='ReachCurve', + full_name='google.ads.googleads.v5.services.ReachCurve', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='reach_forecasts', full_name='google.ads.googleads.v5.services.ReachCurve.reach_forecasts', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3929, + serialized_end=4015, +) + + +_REACHFORECAST = _descriptor.Descriptor( + name='ReachForecast', + full_name='google.ads.googleads.v5.services.ReachForecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v5.services.ReachForecast.cost_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='forecast', full_name='google.ads.googleads.v5.services.ReachForecast.forecast', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='forecasted_product_allocations', full_name='google.ads.googleads.v5.services.ReachForecast.forecasted_product_allocations', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4018, + serialized_end=4238, +) + + +_FORECAST = _descriptor.Descriptor( + name='Forecast', + full_name='google.ads.googleads.v5.services.Forecast', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='on_target_reach', full_name='google.ads.googleads.v5.services.Forecast.on_target_reach', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_reach', full_name='google.ads.googleads.v5.services.Forecast.total_reach', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='on_target_impressions', full_name='google.ads.googleads.v5.services.Forecast.on_target_impressions', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='total_impressions', full_name='google.ads.googleads.v5.services.Forecast.total_impressions', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4241, + serialized_end=4471, +) + + +_ONTARGETAUDIENCEMETRICS = _descriptor.Descriptor( + name='OnTargetAudienceMetrics', + full_name='google.ads.googleads.v5.services.OnTargetAudienceMetrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='youtube_audience_size', full_name='google.ads.googleads.v5.services.OnTargetAudienceMetrics.youtube_audience_size', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='census_audience_size', full_name='google.ads.googleads.v5.services.OnTargetAudienceMetrics.census_audience_size', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4474, + serialized_end=4618, +) + +_LISTPLANNABLELOCATIONSRESPONSE.fields_by_name['plannable_locations'].message_type = _PLANNABLELOCATION +_PLANNABLELOCATION.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PLANNABLELOCATION.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PLANNABLELOCATION.fields_by_name['parent_country_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_LISTPLANNABLEPRODUCTSREQUEST.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LISTPLANNABLEPRODUCTSRESPONSE.fields_by_name['product_metadata'].message_type = _PRODUCTMETADATA +_PRODUCTMETADATA.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRODUCTMETADATA.fields_by_name['plannable_targeting'].message_type = _PLANNABLETARGETING +_PLANNABLETARGETING.fields_by_name['age_ranges'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__age__range__pb2._REACHPLANAGERANGEENUM_REACHPLANAGERANGE +_PLANNABLETARGETING.fields_by_name['genders'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO +_PLANNABLETARGETING.fields_by_name['devices'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO +_PLANNABLETARGETING.fields_by_name['networks'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__network__pb2._REACHPLANNETWORKENUM_REACHPLANNETWORK +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['preferences'].message_type = _PREFERENCES +_PREFERENCES.fields_by_name['is_skippable'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_PREFERENCES.fields_by_name['starts_with_sound'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_PREFERENCES.fields_by_name['ad_length'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__ad__length__pb2._REACHPLANADLENGTHENUM_REACHPLANADLENGTH +_PREFERENCES.fields_by_name['top_content_only'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_PREFERENCES.fields_by_name['has_guaranteed_price'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_GENERATEPRODUCTMIXIDEASRESPONSE.fields_by_name['product_allocation'].message_type = _PRODUCTALLOCATION +_PRODUCTALLOCATION.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PRODUCTALLOCATION.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_GENERATEREACHFORECASTREQUEST.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GENERATEREACHFORECASTREQUEST.fields_by_name['campaign_duration'].message_type = _CAMPAIGNDURATION +_GENERATEREACHFORECASTREQUEST.fields_by_name['cookie_frequency_cap'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_GENERATEREACHFORECASTREQUEST.fields_by_name['cookie_frequency_cap_setting'].message_type = _FREQUENCYCAP +_GENERATEREACHFORECASTREQUEST.fields_by_name['min_effective_frequency'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_GENERATEREACHFORECASTREQUEST.fields_by_name['targeting'].message_type = _TARGETING +_GENERATEREACHFORECASTREQUEST.fields_by_name['planned_products'].message_type = _PLANNEDPRODUCT +_FREQUENCYCAP.fields_by_name['impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_FREQUENCYCAP.fields_by_name['time_unit'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_frequency__cap__time__unit__pb2._FREQUENCYCAPTIMEUNITENUM_FREQUENCYCAPTIMEUNIT +_TARGETING.fields_by_name['plannable_location_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TARGETING.fields_by_name['age_range'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__age__range__pb2._REACHPLANAGERANGEENUM_REACHPLANAGERANGE +_TARGETING.fields_by_name['genders'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._GENDERINFO +_TARGETING.fields_by_name['devices'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_criteria__pb2._DEVICEINFO +_TARGETING.fields_by_name['network'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_reach__plan__network__pb2._REACHPLANNETWORKENUM_REACHPLANNETWORK +_CAMPAIGNDURATION.fields_by_name['duration_in_days'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_PLANNEDPRODUCT.fields_by_name['plannable_product_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_PLANNEDPRODUCT.fields_by_name['budget_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_GENERATEREACHFORECASTRESPONSE.fields_by_name['on_target_audience_metrics'].message_type = _ONTARGETAUDIENCEMETRICS +_GENERATEREACHFORECASTRESPONSE.fields_by_name['reach_curve'].message_type = _REACHCURVE +_REACHCURVE.fields_by_name['reach_forecasts'].message_type = _REACHFORECAST +_REACHFORECAST.fields_by_name['cost_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_REACHFORECAST.fields_by_name['forecast'].message_type = _FORECAST +_REACHFORECAST.fields_by_name['forecasted_product_allocations'].message_type = _PRODUCTALLOCATION +_FORECAST.fields_by_name['on_target_reach'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FORECAST.fields_by_name['total_reach'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FORECAST.fields_by_name['on_target_impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_FORECAST.fields_by_name['total_impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ONTARGETAUDIENCEMETRICS.fields_by_name['youtube_audience_size'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ONTARGETAUDIENCEMETRICS.fields_by_name['census_audience_size'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['ListPlannableLocationsRequest'] = _LISTPLANNABLELOCATIONSREQUEST +DESCRIPTOR.message_types_by_name['ListPlannableLocationsResponse'] = _LISTPLANNABLELOCATIONSRESPONSE +DESCRIPTOR.message_types_by_name['PlannableLocation'] = _PLANNABLELOCATION +DESCRIPTOR.message_types_by_name['ListPlannableProductsRequest'] = _LISTPLANNABLEPRODUCTSREQUEST +DESCRIPTOR.message_types_by_name['ListPlannableProductsResponse'] = _LISTPLANNABLEPRODUCTSRESPONSE +DESCRIPTOR.message_types_by_name['ProductMetadata'] = _PRODUCTMETADATA +DESCRIPTOR.message_types_by_name['PlannableTargeting'] = _PLANNABLETARGETING +DESCRIPTOR.message_types_by_name['GenerateProductMixIdeasRequest'] = _GENERATEPRODUCTMIXIDEASREQUEST +DESCRIPTOR.message_types_by_name['Preferences'] = _PREFERENCES +DESCRIPTOR.message_types_by_name['GenerateProductMixIdeasResponse'] = _GENERATEPRODUCTMIXIDEASRESPONSE +DESCRIPTOR.message_types_by_name['ProductAllocation'] = _PRODUCTALLOCATION +DESCRIPTOR.message_types_by_name['GenerateReachForecastRequest'] = _GENERATEREACHFORECASTREQUEST +DESCRIPTOR.message_types_by_name['FrequencyCap'] = _FREQUENCYCAP +DESCRIPTOR.message_types_by_name['Targeting'] = _TARGETING +DESCRIPTOR.message_types_by_name['CampaignDuration'] = _CAMPAIGNDURATION +DESCRIPTOR.message_types_by_name['PlannedProduct'] = _PLANNEDPRODUCT +DESCRIPTOR.message_types_by_name['GenerateReachForecastResponse'] = _GENERATEREACHFORECASTRESPONSE +DESCRIPTOR.message_types_by_name['ReachCurve'] = _REACHCURVE +DESCRIPTOR.message_types_by_name['ReachForecast'] = _REACHFORECAST +DESCRIPTOR.message_types_by_name['Forecast'] = _FORECAST +DESCRIPTOR.message_types_by_name['OnTargetAudienceMetrics'] = _ONTARGETAUDIENCEMETRICS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ListPlannableLocationsRequest = _reflection.GeneratedProtocolMessageType('ListPlannableLocationsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLANNABLELOCATIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Request message for [ReachPlanService.ListPlannableLocations][google.a + ds.googleads.v5.services.ReachPlanService.ListPlannableLocations].""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPlannableLocationsRequest) + }) +_sym_db.RegisterMessage(ListPlannableLocationsRequest) + +ListPlannableLocationsResponse = _reflection.GeneratedProtocolMessageType('ListPlannableLocationsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLANNABLELOCATIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The list of plannable locations. + + Attributes: + plannable_locations: + The list of locations available for planning (Countries, DMAs, + sub-countries). For locations like Countries, DMAs see https:/ + /developers.google.com/adwords/api/docs/appendix/geotargeting + for more information. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPlannableLocationsResponse) + }) +_sym_db.RegisterMessage(ListPlannableLocationsResponse) + +PlannableLocation = _reflection.GeneratedProtocolMessageType('PlannableLocation', (_message.Message,), { + 'DESCRIPTOR' : _PLANNABLELOCATION, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """A plannable location: a country, a DMA, a metro region, a tv region, a + province. + + Attributes: + id: + The location identifier. + name: + The unique location name in english. + parent_country_id: + The parent country code, not present if location is a country. + If present will always be a criterion id: additional + information, such as country name are returned both via + ListPlannableLocations or directly by accessing + GeoTargetConstantService with the criterion id. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.PlannableLocation) + }) +_sym_db.RegisterMessage(PlannableLocation) + +ListPlannableProductsRequest = _reflection.GeneratedProtocolMessageType('ListPlannableProductsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLANNABLEPRODUCTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Request to list available products in a given location. + + Attributes: + plannable_location_id: + Required. The ID of the selected location for planning. To + list the available plannable location ids use + ListPlannableLocations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPlannableProductsRequest) + }) +_sym_db.RegisterMessage(ListPlannableProductsRequest) + +ListPlannableProductsResponse = _reflection.GeneratedProtocolMessageType('ListPlannableProductsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTPLANNABLEPRODUCTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """A response with all available products. + + Attributes: + product_metadata: + The list of products available for planning and related + targeting metadata. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ListPlannableProductsResponse) + }) +_sym_db.RegisterMessage(ListPlannableProductsResponse) + +ProductMetadata = _reflection.GeneratedProtocolMessageType('ProductMetadata', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTMETADATA, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The metadata associated with an available plannable product. + + Attributes: + plannable_product_code: + The code associated with the ad product. E.g. Trueview, Bumper + To list the available plannable product codes use + ListPlannableProducts. + plannable_targeting: + The allowed plannable targeting for this product. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ProductMetadata) + }) +_sym_db.RegisterMessage(ProductMetadata) + +PlannableTargeting = _reflection.GeneratedProtocolMessageType('PlannableTargeting', (_message.Message,), { + 'DESCRIPTOR' : _PLANNABLETARGETING, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The targeting for which traffic metrics will be reported. + + Attributes: + age_ranges: + Allowed plannable age ranges for the product for which metrics + will be reported. Actual targeting is computed by mapping this + age range onto standard Google common.AgeRangeInfo values. + genders: + Targetable genders for the ad product. + devices: + Targetable devices for the ad product. + networks: + Targetable networks for the ad product. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.PlannableTargeting) + }) +_sym_db.RegisterMessage(PlannableTargeting) + +GenerateProductMixIdeasRequest = _reflection.GeneratedProtocolMessageType('GenerateProductMixIdeasRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEPRODUCTMIXIDEASREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Request message for [ReachPlanService.GenerateProductMixIdeas][google. + ads.googleads.v5.services.ReachPlanService.GenerateProductMixIdeas]. + + Attributes: + customer_id: + Required. The ID of the customer. + plannable_location_id: + Required. The ID of the location, this is one of the ids + returned by ListPlannableLocations. + currency_code: + Required. Currency code. Three-character ISO 4217 currency + code. + budget_micros: + Required. Total budget. Amount in micros. One million is + equivalent to one unit. + preferences: + The preferences of the suggested product mix. An unset + preference is interpreted as all possible values are allowed, + unless explicitly specified. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateProductMixIdeasRequest) + }) +_sym_db.RegisterMessage(GenerateProductMixIdeasRequest) + +Preferences = _reflection.GeneratedProtocolMessageType('Preferences', (_message.Message,), { + 'DESCRIPTOR' : _PREFERENCES, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Set of preferences about the planned mix. + + Attributes: + is_skippable: + True if ad skippable. If not set, default is any value. + starts_with_sound: + True if ad start with sound. If not set, default is any value. + ad_length: + The length of the ad. If not set, default is any value. + top_content_only: + True if ad will only show on the top content. If not set, + default is false. + has_guaranteed_price: + True if the price guaranteed. The cost of serving the ad is + agreed upfront and not subject to an auction. If not set, + default is any value. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.Preferences) + }) +_sym_db.RegisterMessage(Preferences) + +GenerateProductMixIdeasResponse = _reflection.GeneratedProtocolMessageType('GenerateProductMixIdeasResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEPRODUCTMIXIDEASRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The suggested product mix. + + Attributes: + product_allocation: + A list of products (ad formats) and the associated budget + allocation idea. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateProductMixIdeasResponse) + }) +_sym_db.RegisterMessage(GenerateProductMixIdeasResponse) + +ProductAllocation = _reflection.GeneratedProtocolMessageType('ProductAllocation', (_message.Message,), { + 'DESCRIPTOR' : _PRODUCTALLOCATION, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """An allocation of a part of the budget on a given product. + + Attributes: + plannable_product_code: + Selected product for planning. The product codes returned are + within the set of the ones returned by ListPlannableProducts + when using the same location id. + budget_micros: + The value to be allocated for the suggested product in + requested currency. Amount in micros. One million is + equivalent to one unit. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ProductAllocation) + }) +_sym_db.RegisterMessage(ProductAllocation) + +GenerateReachForecastRequest = _reflection.GeneratedProtocolMessageType('GenerateReachForecastRequest', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEREACHFORECASTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Request message for [ReachPlanService.GenerateReachForecast][google.ad + s.googleads.v5.services.ReachPlanService.GenerateReachForecast]. + + Attributes: + customer_id: + Required. The ID of the customer. + currency_code: + The currency code. Three-character ISO 4217 currency code. + campaign_duration: + Required. Campaign duration. + cookie_frequency_cap: + Desired cookie frequency cap that will be applied to each + planned product. This is equivalent to the frequency cap + exposed in Google Ads when creating a campaign, it represents + the maximum number of times an ad can be shown to the same + user. If not specified no cap is applied. This field is + deprecated in v4 and will eventually be removed. Please use + cookie\_frequency\_cap\_setting instead. + cookie_frequency_cap_setting: + Desired cookie frequency cap that will be applied to each + planned product. This is equivalent to the frequency cap + exposed in Google Ads when creating a campaign, it represents + the maximum number of times an ad can be shown to the same + user during a specified time interval. If not specified, no + cap is applied. This field replaces the deprecated + cookie\_frequency\_cap field. + min_effective_frequency: + Desired minimum effective frequency (the number of times a + person was exposed to the ad) for the reported reach metrics + [1-10]. This won't affect the targeting, but just the + reporting. If not specified, a default of 1 is applied. + targeting: + The targeting to be applied to all products selected in the + product mix. This is planned targeting: execution details + might vary based on the advertising product, please consult an + implementation specialist. See specific metrics for details + on how targeting affects them. In some cases, targeting may + be overridden using the + PlannedProduct.advanced\_product\_targeting field. + planned_products: + Required. The products to be forecast. The max number of + allowed planned products is 15. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateReachForecastRequest) + }) +_sym_db.RegisterMessage(GenerateReachForecastRequest) + +FrequencyCap = _reflection.GeneratedProtocolMessageType('FrequencyCap', (_message.Message,), { + 'DESCRIPTOR' : _FREQUENCYCAP, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """A rule specifying the maximum number of times an ad can be shown to a + user over a particular time period. + + Attributes: + impressions: + Required. The number of impressions, inclusive. + time_unit: + Required. The type of time unit. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.FrequencyCap) + }) +_sym_db.RegisterMessage(FrequencyCap) + +Targeting = _reflection.GeneratedProtocolMessageType('Targeting', (_message.Message,), { + 'DESCRIPTOR' : _TARGETING, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The targeting for which traffic metrics will be reported. + + Attributes: + plannable_location_id: + Required. The ID of the selected location. Plannable locations + ID can be obtained from ListPlannableLocations. + age_range: + Targeted age range. If not specified, targets all age ranges. + genders: + Targeted genders. If not specified, targets all genders. + devices: + Targeted devices. If not specified, targets all applicable + devices. Applicable devices vary by product and region and can + be obtained from ListPlannableProducts. + network: + Targetable network for the ad product. If not specified, + targets all applicable networks. Applicable networks vary by + product and region and can be obtained from + ListPlannableProducts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.Targeting) + }) +_sym_db.RegisterMessage(Targeting) + +CampaignDuration = _reflection.GeneratedProtocolMessageType('CampaignDuration', (_message.Message,), { + 'DESCRIPTOR' : _CAMPAIGNDURATION, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The duration of a planned campaign. + + Attributes: + duration_in_days: + The duration value in days. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.CampaignDuration) + }) +_sym_db.RegisterMessage(CampaignDuration) + +PlannedProduct = _reflection.GeneratedProtocolMessageType('PlannedProduct', (_message.Message,), { + 'DESCRIPTOR' : _PLANNEDPRODUCT, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """A product being planned for reach. + + Attributes: + plannable_product_code: + Required. Selected product for planning. Plannable products + codes can be obtained from ListPlannableProducts. + budget_micros: + Required. Maximum budget allocation in micros for the selected + product. The value is specified in the selected planning + currency\_code. E.g. 1 000 000$ = 1 000 000 000 000 micros. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.PlannedProduct) + }) +_sym_db.RegisterMessage(PlannedProduct) + +GenerateReachForecastResponse = _reflection.GeneratedProtocolMessageType('GenerateReachForecastResponse', (_message.Message,), { + 'DESCRIPTOR' : _GENERATEREACHFORECASTRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Response message containing the generated reach curve. + + Attributes: + on_target_audience_metrics: + Reference on target audiences for this curve. + reach_curve: + The generated reach curve for the planned product mix. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GenerateReachForecastResponse) + }) +_sym_db.RegisterMessage(GenerateReachForecastResponse) + +ReachCurve = _reflection.GeneratedProtocolMessageType('ReachCurve', (_message.Message,), { + 'DESCRIPTOR' : _REACHCURVE, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """The reach curve for the planned products. + + Attributes: + reach_forecasts: + All points on the reach curve. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ReachCurve) + }) +_sym_db.RegisterMessage(ReachCurve) + +ReachForecast = _reflection.GeneratedProtocolMessageType('ReachForecast', (_message.Message,), { + 'DESCRIPTOR' : _REACHFORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """A point on reach curve. + + Attributes: + cost_micros: + The cost in micros. + forecast: + Forecasted traffic metrics for this point. + forecasted_product_allocations: + The forecasted allocation. This differs from the input + allocation if one or more product cannot fulfill the budget + because of limited inventory. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ReachForecast) + }) +_sym_db.RegisterMessage(ReachForecast) + +Forecast = _reflection.GeneratedProtocolMessageType('Forecast', (_message.Message,), { + 'DESCRIPTOR' : _FORECAST, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Forecasted traffic metrics for the planned products and targeting. + + Attributes: + on_target_reach: + Number of unique people reached at least + GenerateReachForecastRequest.min\_effective\_frequency times + that exactly matches the Targeting. + total_reach: + Total number of unique people reached at least + GenerateReachForecastRequest.min\_effective\_frequency times. + This includes people that may fall outside the specified + Targeting. + on_target_impressions: + Number of ad impressions that exactly matches the Targeting. + total_impressions: + Total number of ad impressions. This includes impressions that + may fall outside the specified Targeting, due to insufficient + information on signed-in users. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.Forecast) + }) +_sym_db.RegisterMessage(Forecast) + +OnTargetAudienceMetrics = _reflection.GeneratedProtocolMessageType('OnTargetAudienceMetrics', (_message.Message,), { + 'DESCRIPTOR' : _ONTARGETAUDIENCEMETRICS, + '__module__' : 'google.ads.googleads_v5.proto.services.reach_plan_service_pb2' + , + '__doc__': """Audience metrics for the planned products. These metrics consider the + following targeting dimensions: - Location - PlannableAgeRange - + Gender + + Attributes: + youtube_audience_size: + Reference audience size matching the considered targeting for + YouTube. + census_audience_size: + Reference audience size matching the considered targeting for + Census. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.OnTargetAudienceMetrics) + }) +_sym_db.RegisterMessage(OnTargetAudienceMetrics) + + +DESCRIPTOR._options = None +_LISTPLANNABLEPRODUCTSREQUEST.fields_by_name['plannable_location_id']._options = None +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['customer_id']._options = None +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['plannable_location_id']._options = None +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['currency_code']._options = None +_GENERATEPRODUCTMIXIDEASREQUEST.fields_by_name['budget_micros']._options = None +_GENERATEREACHFORECASTREQUEST.fields_by_name['customer_id']._options = None +_GENERATEREACHFORECASTREQUEST.fields_by_name['campaign_duration']._options = None +_GENERATEREACHFORECASTREQUEST.fields_by_name['planned_products']._options = None +_FREQUENCYCAP.fields_by_name['impressions']._options = None +_FREQUENCYCAP.fields_by_name['time_unit']._options = None + +_REACHPLANSERVICE = _descriptor.ServiceDescriptor( + name='ReachPlanService', + full_name='google.ads.googleads.v5.services.ReachPlanService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=4621, + serialized_end=5642, + methods=[ + _descriptor.MethodDescriptor( + name='ListPlannableLocations', + full_name='google.ads.googleads.v5.services.ReachPlanService.ListPlannableLocations', + index=0, + containing_service=None, + input_type=_LISTPLANNABLELOCATIONSREQUEST, + output_type=_LISTPLANNABLELOCATIONSRESPONSE, + serialized_options=b'\202\323\344\223\002\037\"\032/v5:listPlannableLocations:\001*', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ListPlannableProducts', + full_name='google.ads.googleads.v5.services.ReachPlanService.ListPlannableProducts', + index=1, + containing_service=None, + input_type=_LISTPLANNABLEPRODUCTSREQUEST, + output_type=_LISTPLANNABLEPRODUCTSRESPONSE, + serialized_options=b'\202\323\344\223\002\036\"\031/v5:listPlannableProducts:\001*\332A\025plannable_location_id', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateProductMixIdeas', + full_name='google.ads.googleads.v5.services.ReachPlanService.GenerateProductMixIdeas', + index=2, + containing_service=None, + input_type=_GENERATEPRODUCTMIXIDEASREQUEST, + output_type=_GENERATEPRODUCTMIXIDEASRESPONSE, + serialized_options=b'\202\323\344\223\002:\"5/v5/customers/{customer_id=*}:generateProductMixIdeas:\001*\332A=customer_id,plannable_location_id,currency_code,budget_micros', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='GenerateReachForecast', + full_name='google.ads.googleads.v5.services.ReachPlanService.GenerateReachForecast', + index=3, + containing_service=None, + input_type=_GENERATEREACHFORECASTREQUEST, + output_type=_GENERATEREACHFORECASTRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}:generateReachForecast:\001*\332A.customer_id,campaign_duration,planned_products', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_REACHPLANSERVICE) + +DESCRIPTOR.services_by_name['ReachPlanService'] = _REACHPLANSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2_grpc.py new file mode 100644 index 000000000..45887093a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/reach_plan_service_pb2_grpc.py @@ -0,0 +1,189 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import reach_plan_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2 + + +class ReachPlanServiceStub(object): + """Proto file describing the reach plan service. + + Reach Plan Service gives users information about audience size that can + be reached through advertisement on YouTube. In particular, + GenerateReachForecast provides estimated number of people of specified + demographics that can be reached by an ad in a given market by a campaign of + certain duration with a defined budget. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.ListPlannableLocations = channel.unary_unary( + '/google.ads.googleads.v5.services.ReachPlanService/ListPlannableLocations', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsResponse.FromString, + ) + self.ListPlannableProducts = channel.unary_unary( + '/google.ads.googleads.v5.services.ReachPlanService/ListPlannableProducts', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsResponse.FromString, + ) + self.GenerateProductMixIdeas = channel.unary_unary( + '/google.ads.googleads.v5.services.ReachPlanService/GenerateProductMixIdeas', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasResponse.FromString, + ) + self.GenerateReachForecast = channel.unary_unary( + '/google.ads.googleads.v5.services.ReachPlanService/GenerateReachForecast', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastResponse.FromString, + ) + + +class ReachPlanServiceServicer(object): + """Proto file describing the reach plan service. + + Reach Plan Service gives users information about audience size that can + be reached through advertisement on YouTube. In particular, + GenerateReachForecast provides estimated number of people of specified + demographics that can be reached by an ad in a given market by a campaign of + certain duration with a defined budget. + """ + + def ListPlannableLocations(self, request, context): + """Returns the list of plannable locations (for example, countries & DMAs). + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListPlannableProducts(self, request, context): + """Returns the list of per-location plannable YouTube ad formats with allowed + targeting. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateProductMixIdeas(self, request, context): + """Generates a product mix ideas given a set of preferences. This method + helps the advertiser to obtain a good mix of ad formats and budget + allocations based on its preferences. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GenerateReachForecast(self, request, context): + """Generates a reach forecast for a given targeting / product mix. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ReachPlanServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'ListPlannableLocations': grpc.unary_unary_rpc_method_handler( + servicer.ListPlannableLocations, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsResponse.SerializeToString, + ), + 'ListPlannableProducts': grpc.unary_unary_rpc_method_handler( + servicer.ListPlannableProducts, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsResponse.SerializeToString, + ), + 'GenerateProductMixIdeas': grpc.unary_unary_rpc_method_handler( + servicer.GenerateProductMixIdeas, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasResponse.SerializeToString, + ), + 'GenerateReachForecast': grpc.unary_unary_rpc_method_handler( + servicer.GenerateReachForecast, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ReachPlanService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ReachPlanService(object): + """Proto file describing the reach plan service. + + Reach Plan Service gives users information about audience size that can + be reached through advertisement on YouTube. In particular, + GenerateReachForecast provides estimated number of people of specified + demographics that can be reached by an ad in a given market by a campaign of + certain duration with a defined budget. + """ + + @staticmethod + def ListPlannableLocations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ReachPlanService/ListPlannableLocations', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableLocationsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListPlannableProducts(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ReachPlanService/ListPlannableProducts', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.ListPlannableProductsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateProductMixIdeas(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ReachPlanService/GenerateProductMixIdeas', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateProductMixIdeasResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GenerateReachForecast(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ReachPlanService/GenerateReachForecast', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_reach__plan__service__pb2.GenerateReachForecastResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/recommendation_service_pb2.py b/google/ads/google_ads/v5/proto/services/recommendation_service_pb2.py new file mode 100644 index 000000000..7aa338ae9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/recommendation_service_pb2.py @@ -0,0 +1,1231 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/recommendation_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.common import extensions_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2 +from google.ads.google_ads.v5.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.ads.google_ads.v5.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2 +from google.ads.google_ads.v5.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/recommendation_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032RecommendationServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/recommendation_service.proto\x12 google.ads.googleads.v5.services\x1a\x35google/ads/googleads_v5/proto/common/extensions.proto\x1a.google.ads.googleads.v5.services.ApplyRecommendationOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\"\x98\x11\n\x1c\x41pplyRecommendationOperation\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12r\n\x0f\x63\x61mpaign_budget\x18\x02 \x01(\x0b\x32W.google.ads.googleads.v5.services.ApplyRecommendationOperation.CampaignBudgetParametersH\x00\x12\x62\n\x07text_ad\x18\x03 \x01(\x0b\x32O.google.ads.googleads.v5.services.ApplyRecommendationOperation.TextAdParametersH\x00\x12\x63\n\x07keyword\x18\x04 \x01(\x0b\x32P.google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParametersH\x00\x12t\n\x11target_cpa_opt_in\x18\x05 \x01(\x0b\x32W.google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetCpaOptInParametersH\x00\x12v\n\x12target_roas_opt_in\x18\n \x01(\x0b\x32X.google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParametersH\x00\x12v\n\x11\x63\x61llout_extension\x18\x06 \x01(\x0b\x32Y.google.ads.googleads.v5.services.ApplyRecommendationOperation.CalloutExtensionParametersH\x00\x12p\n\x0e\x63\x61ll_extension\x18\x07 \x01(\x0b\x32V.google.ads.googleads.v5.services.ApplyRecommendationOperation.CallExtensionParametersH\x00\x12x\n\x12sitelink_extension\x18\x08 \x01(\x0b\x32Z.google.ads.googleads.v5.services.ApplyRecommendationOperation.SitelinkExtensionParametersH\x00\x12w\n\x12move_unused_budget\x18\t \x01(\x0b\x32Y.google.ads.googleads.v5.services.ApplyRecommendationOperation.MoveUnusedBudgetParametersH\x00\x1aY\n\x18\x43\x61mpaignBudgetParameters\x12=\n\x18new_budget_amount_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\x45\n\x10TextAdParameters\x12\x31\n\x02\x61\x64\x18\x01 \x01(\x0b\x32%.google.ads.googleads.v5.resources.Ad\x1a\xd2\x01\n\x11KeywordParameters\x12.\n\x08\x61\x64_group\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12X\n\nmatch_type\x18\x02 \x01(\x0e\x32\x44.google.ads.googleads.v5.enums.KeywordMatchTypeEnum.KeywordMatchType\x12\x33\n\x0e\x63pc_bid_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\x9a\x01\n\x18TargetCpaOptInParameters\x12\x36\n\x11target_cpa_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x46\n!new_campaign_budget_amount_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\x9b\x01\n\x19TargetRoasOptInParameters\x12\x18\n\x0btarget_roas\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12.\n!new_campaign_budget_amount_micros\x18\x02 \x01(\x03H\x01\x88\x01\x01\x42\x0e\n\x0c_target_roasB$\n\"_new_campaign_budget_amount_micros\x1ai\n\x1a\x43\x61lloutExtensionParameters\x12K\n\x12\x63\x61llout_extensions\x18\x01 \x03(\x0b\x32/.google.ads.googleads.v5.common.CalloutFeedItem\x1a`\n\x17\x43\x61llExtensionParameters\x12\x45\n\x0f\x63\x61ll_extensions\x18\x01 \x03(\x0b\x32,.google.ads.googleads.v5.common.CallFeedItem\x1al\n\x1bSitelinkExtensionParameters\x12M\n\x13sitelink_extensions\x18\x01 \x03(\x0b\x32\x30.google.ads.googleads.v5.common.SitelinkFeedItem\x1aX\n\x1aMoveUnusedBudgetParameters\x12:\n\x15\x62udget_micros_to_move\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x12\n\x10\x61pply_parameters\"\x9e\x01\n\x1b\x41pplyRecommendationResponse\x12L\n\x07results\x18\x01 \x03(\x0b\x32;.google.ads.googleads.v5.services.ApplyRecommendationResult\x12\x31\n\x15partial_failure_error\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"2\n\x19\x41pplyRecommendationResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x82\x02\n\x1c\x44ismissRecommendationRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12v\n\noperations\x18\x03 \x03(\x0b\x32].google.ads.googleads.v5.services.DismissRecommendationRequest.DismissRecommendationOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x02 \x01(\x08\x1a\x37\n\x1e\x44ismissRecommendationOperation\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\xf6\x01\n\x1d\x44ismissRecommendationResponse\x12l\n\x07results\x18\x01 \x03(\x0b\x32[.google.ads.googleads.v5.services.DismissRecommendationResponse.DismissRecommendationResult\x12\x31\n\x15partial_failure_error\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x1a\x34\n\x1b\x44ismissRecommendationResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xe8\x05\n\x15RecommendationService\x12\xcd\x01\n\x11GetRecommendation\x12:.google.ads.googleads.v5.services.GetRecommendationRequest\x1a\x31.google.ads.googleads.v5.resources.Recommendation\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/recommendations/*}\xda\x41\rresource_name\x12\xeb\x01\n\x13\x41pplyRecommendation\x12<.google.ads.googleads.v5.services.ApplyRecommendationRequest\x1a=.google.ads.googleads.v5.services.ApplyRecommendationResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/recommendations:apply:\x01*\xda\x41\x16\x63ustomer_id,operations\x12\xf3\x01\n\x15\x44ismissRecommendation\x12>.google.ads.googleads.v5.services.DismissRecommendationRequest\x1a?.google.ads.googleads.v5.services.DismissRecommendationResponse\"Y\x82\xd3\xe4\x93\x02:\"5/v5/customers/{customer_id=*}/recommendations:dismiss:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1aRecommendationServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETRECOMMENDATIONREQUEST = _descriptor.Descriptor( + name='GetRecommendationRequest', + full_name='google.ads.googleads.v5.services.GetRecommendationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetRecommendationRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/Recommendation', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=506, + serialized_end=604, +) + + +_APPLYRECOMMENDATIONREQUEST = _descriptor.Descriptor( + name='ApplyRecommendationRequest', + full_name='google.ads.googleads.v5.services.ApplyRecommendationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.ApplyRecommendationRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.ApplyRecommendationRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.ApplyRecommendationRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=607, + serialized_end=775, +) + + +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS = _descriptor.Descriptor( + name='CampaignBudgetParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CampaignBudgetParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='new_budget_amount_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CampaignBudgetParameters.new_budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1865, + serialized_end=1954, +) + +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS = _descriptor.Descriptor( + name='TextAdParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TextAdParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TextAdParameters.ad', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1956, + serialized_end=2025, +) + +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS = _descriptor.Descriptor( + name='KeywordParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParameters.ad_group', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='match_type', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParameters.match_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParameters.cpc_bid_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2028, + serialized_end=2238, +) + +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS = _descriptor.Descriptor( + name='TargetCpaOptInParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetCpaOptInParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetCpaOptInParameters.target_cpa_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='new_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetCpaOptInParameters.new_campaign_budget_amount_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2241, + serialized_end=2395, +) + +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS = _descriptor.Descriptor( + name='TargetRoasOptInParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters.target_roas', index=0, + number=1, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='new_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters.new_campaign_budget_amount_micros', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='_target_roas', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters._target_roas', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + _descriptor.OneofDescriptor( + name='_new_campaign_budget_amount_micros', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters._new_campaign_budget_amount_micros', + index=1, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2398, + serialized_end=2553, +) + +_APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS = _descriptor.Descriptor( + name='CalloutExtensionParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CalloutExtensionParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='callout_extensions', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CalloutExtensionParameters.callout_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2555, + serialized_end=2660, +) + +_APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS = _descriptor.Descriptor( + name='CallExtensionParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CallExtensionParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='call_extensions', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.CallExtensionParameters.call_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2662, + serialized_end=2758, +) + +_APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS = _descriptor.Descriptor( + name='SitelinkExtensionParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.SitelinkExtensionParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='sitelink_extensions', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.SitelinkExtensionParameters.sitelink_extensions', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2760, + serialized_end=2868, +) + +_APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS = _descriptor.Descriptor( + name='MoveUnusedBudgetParameters', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.MoveUnusedBudgetParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='budget_micros_to_move', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.MoveUnusedBudgetParameters.budget_micros_to_move', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2870, + serialized_end=2958, +) + +_APPLYRECOMMENDATIONOPERATION = _descriptor.Descriptor( + name='ApplyRecommendationOperation', + full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.campaign_budget', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text_ad', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.text_ad', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.keyword', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_cpa_opt_in', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.target_cpa_opt_in', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_roas_opt_in', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.target_roas_opt_in', index=5, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='callout_extension', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.callout_extension', index=6, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='call_extension', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.call_extension', index=7, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sitelink_extension', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.sitelink_extension', index=8, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='move_unused_budget', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.move_unused_budget', index=9, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS, _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS, _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS, _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS, _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS, _APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS, _APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS, _APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS, _APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='apply_parameters', full_name='google.ads.googleads.v5.services.ApplyRecommendationOperation.apply_parameters', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=778, + serialized_end=2978, +) + + +_APPLYRECOMMENDATIONRESPONSE = _descriptor.Descriptor( + name='ApplyRecommendationResponse', + full_name='google.ads.googleads.v5.services.ApplyRecommendationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.ApplyRecommendationResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.ApplyRecommendationResponse.partial_failure_error', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2981, + serialized_end=3139, +) + + +_APPLYRECOMMENDATIONRESULT = _descriptor.Descriptor( + name='ApplyRecommendationResult', + full_name='google.ads.googleads.v5.services.ApplyRecommendationResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.ApplyRecommendationResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3141, + serialized_end=3191, +) + + +_DISMISSRECOMMENDATIONREQUEST_DISMISSRECOMMENDATIONOPERATION = _descriptor.Descriptor( + name='DismissRecommendationOperation', + full_name='google.ads.googleads.v5.services.DismissRecommendationRequest.DismissRecommendationOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.DismissRecommendationRequest.DismissRecommendationOperation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3397, + serialized_end=3452, +) + +_DISMISSRECOMMENDATIONREQUEST = _descriptor.Descriptor( + name='DismissRecommendationRequest', + full_name='google.ads.googleads.v5.services.DismissRecommendationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.DismissRecommendationRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.DismissRecommendationRequest.operations', index=1, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.DismissRecommendationRequest.partial_failure', index=2, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_DISMISSRECOMMENDATIONREQUEST_DISMISSRECOMMENDATIONOPERATION, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3194, + serialized_end=3452, +) + + +_DISMISSRECOMMENDATIONRESPONSE_DISMISSRECOMMENDATIONRESULT = _descriptor.Descriptor( + name='DismissRecommendationResult', + full_name='google.ads.googleads.v5.services.DismissRecommendationResponse.DismissRecommendationResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.DismissRecommendationResponse.DismissRecommendationResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3649, + serialized_end=3701, +) + +_DISMISSRECOMMENDATIONRESPONSE = _descriptor.Descriptor( + name='DismissRecommendationResponse', + full_name='google.ads.googleads.v5.services.DismissRecommendationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.DismissRecommendationResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.DismissRecommendationResponse.partial_failure_error', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_DISMISSRECOMMENDATIONRESPONSE_DISMISSRECOMMENDATIONRESULT, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3455, + serialized_end=3701, +) + +_APPLYRECOMMENDATIONREQUEST.fields_by_name['operations'].message_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS.fields_by_name['new_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS.fields_by_name['ad'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_ad__pb2._AD +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['match_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_keyword__match__type__pb2._KEYWORDMATCHTYPEENUM_KEYWORDMATCHTYPE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.fields_by_name['target_cpa_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.fields_by_name['new_campaign_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.oneofs_by_name['_target_roas'].fields.append( + _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.fields_by_name['target_roas']) +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.fields_by_name['target_roas'].containing_oneof = _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.oneofs_by_name['_target_roas'] +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.oneofs_by_name['_new_campaign_budget_amount_micros'].fields.append( + _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.fields_by_name['new_campaign_budget_amount_micros']) +_APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.fields_by_name['new_campaign_budget_amount_micros'].containing_oneof = _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS.oneofs_by_name['_new_campaign_budget_amount_micros'] +_APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS.fields_by_name['callout_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLOUTFEEDITEM +_APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS.fields_by_name['call_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._CALLFEEDITEM +_APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS.fields_by_name['sitelink_extensions'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_extensions__pb2._SITELINKFEEDITEM +_APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS.fields_by_name['budget_micros_to_move'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget'].message_type = _APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad'].message_type = _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword'].message_type = _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in'].message_type = _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_roas_opt_in'].message_type = _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['callout_extension'].message_type = _APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['call_extension'].message_type = _APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['sitelink_extension'].message_type = _APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['move_unused_budget'].message_type = _APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['target_roas_opt_in']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_roas_opt_in'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['callout_extension']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['callout_extension'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['call_extension']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['call_extension'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['sitelink_extension']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['sitelink_extension'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['move_unused_budget']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['move_unused_budget'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONRESPONSE.fields_by_name['results'].message_type = _APPLYRECOMMENDATIONRESULT +_APPLYRECOMMENDATIONRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_DISMISSRECOMMENDATIONREQUEST_DISMISSRECOMMENDATIONOPERATION.containing_type = _DISMISSRECOMMENDATIONREQUEST +_DISMISSRECOMMENDATIONREQUEST.fields_by_name['operations'].message_type = _DISMISSRECOMMENDATIONREQUEST_DISMISSRECOMMENDATIONOPERATION +_DISMISSRECOMMENDATIONRESPONSE_DISMISSRECOMMENDATIONRESULT.containing_type = _DISMISSRECOMMENDATIONRESPONSE +_DISMISSRECOMMENDATIONRESPONSE.fields_by_name['results'].message_type = _DISMISSRECOMMENDATIONRESPONSE_DISMISSRECOMMENDATIONRESULT +_DISMISSRECOMMENDATIONRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +DESCRIPTOR.message_types_by_name['GetRecommendationRequest'] = _GETRECOMMENDATIONREQUEST +DESCRIPTOR.message_types_by_name['ApplyRecommendationRequest'] = _APPLYRECOMMENDATIONREQUEST +DESCRIPTOR.message_types_by_name['ApplyRecommendationOperation'] = _APPLYRECOMMENDATIONOPERATION +DESCRIPTOR.message_types_by_name['ApplyRecommendationResponse'] = _APPLYRECOMMENDATIONRESPONSE +DESCRIPTOR.message_types_by_name['ApplyRecommendationResult'] = _APPLYRECOMMENDATIONRESULT +DESCRIPTOR.message_types_by_name['DismissRecommendationRequest'] = _DISMISSRECOMMENDATIONREQUEST +DESCRIPTOR.message_types_by_name['DismissRecommendationResponse'] = _DISMISSRECOMMENDATIONRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetRecommendationRequest = _reflection.GeneratedProtocolMessageType('GetRecommendationRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETRECOMMENDATIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Request message for [RecommendationService.GetRecommendation][google.a + ds.googleads.v5.services.RecommendationService.GetRecommendation]. + + Attributes: + resource_name: + Required. The resource name of the recommendation to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetRecommendationRequest) + }) +_sym_db.RegisterMessage(GetRecommendationRequest) + +ApplyRecommendationRequest = _reflection.GeneratedProtocolMessageType('ApplyRecommendationRequest', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Request message for [RecommendationService.ApplyRecommendation][google + .ads.googleads.v5.services.RecommendationService.ApplyRecommendation]. + + Attributes: + customer_id: + Required. The ID of the customer with the recommendation. + operations: + Required. The list of operations to apply recommendations. If + partial\_failure=false all recommendations should be of the + same type There is a limit of 100 operations per request. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, operations will be + carried out as a transaction if and only if they are all + valid. Default is false. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationRequest) + }) +_sym_db.RegisterMessage(ApplyRecommendationRequest) + +ApplyRecommendationOperation = _reflection.GeneratedProtocolMessageType('ApplyRecommendationOperation', (_message.Message,), { + + 'CampaignBudgetParameters' : _reflection.GeneratedProtocolMessageType('CampaignBudgetParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying a campaign budget recommendation. + + Attributes: + new_budget_amount_micros: + New budget amount to set for target budget resource. This is a + required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.CampaignBudgetParameters) + }) + , + + 'TextAdParameters' : _reflection.GeneratedProtocolMessageType('TextAdParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying a text ad recommendation. + + Attributes: + ad: + New ad to add to recommended ad group. All necessary fields + need to be set in this message. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.TextAdParameters) + }) + , + + 'KeywordParameters' : _reflection.GeneratedProtocolMessageType('KeywordParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying keyword recommendation. + + Attributes: + ad_group: + The ad group resource to add keyword to. This is a required + field. + match_type: + The match type of the keyword. This is a required field. + cpc_bid_micros: + Optional, CPC bid to set for the keyword. If not set, keyword + will use bid based on bidding strategy used by target ad + group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.KeywordParameters) + }) + , + + 'TargetCpaOptInParameters' : _reflection.GeneratedProtocolMessageType('TargetCpaOptInParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying Target CPA recommendation. + + Attributes: + target_cpa_micros: + Average CPA to use for Target CPA bidding strategy. This is a + required field. + new_campaign_budget_amount_micros: + Optional, budget amount to set for the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetCpaOptInParameters) + }) + , + + 'TargetRoasOptInParameters' : _reflection.GeneratedProtocolMessageType('TargetRoasOptInParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_TARGETROASOPTINPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying a Target ROAS opt-in recommendation. + + Attributes: + target_roas: + Average ROAS (revenue per unit of spend) to use for Target + ROAS bidding strategy. The value is between 0.01 and 1000.0, + inclusive. This is a required field. + new_campaign_budget_amount_micros: + Optional, budget amount to set for the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.TargetRoasOptInParameters) + }) + , + + 'CalloutExtensionParameters' : _reflection.GeneratedProtocolMessageType('CalloutExtensionParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_CALLOUTEXTENSIONPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying callout extension recommendation. + + Attributes: + callout_extensions: + Callout extensions to be added. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.CalloutExtensionParameters) + }) + , + + 'CallExtensionParameters' : _reflection.GeneratedProtocolMessageType('CallExtensionParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_CALLEXTENSIONPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying call extension recommendation. + + Attributes: + call_extensions: + Call extensions to be added. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.CallExtensionParameters) + }) + , + + 'SitelinkExtensionParameters' : _reflection.GeneratedProtocolMessageType('SitelinkExtensionParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_SITELINKEXTENSIONPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying sitelink extension recommendation. + + Attributes: + sitelink_extensions: + Sitelink extensions to be added. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.SitelinkExtensionParameters) + }) + , + + 'MoveUnusedBudgetParameters' : _reflection.GeneratedProtocolMessageType('MoveUnusedBudgetParameters', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION_MOVEUNUSEDBUDGETPARAMETERS, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Parameters to use when applying move unused budget recommendation. + + Attributes: + budget_micros_to_move: + Budget amount to move from excess budget to constrained + budget. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation.MoveUnusedBudgetParameters) + }) + , + 'DESCRIPTOR' : _APPLYRECOMMENDATIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Information about the operation to apply a recommendation and any + parameters to customize it. + + Attributes: + resource_name: + The resource name of the recommendation to apply. + apply_parameters: + Parameters to use when applying the recommendation. + campaign_budget: + Optional parameters to use when applying a campaign budget + recommendation. + text_ad: + Optional parameters to use when applying a text ad + recommendation. + keyword: + Optional parameters to use when applying keyword + recommendation. + target_cpa_opt_in: + Optional parameters to use when applying target CPA opt-in + recommendation. + target_roas_opt_in: + Optional parameters to use when applying target ROAS opt-in + recommendation. + callout_extension: + Parameters to use when applying callout extension + recommendation. + call_extension: + Parameters to use when applying call extension recommendation. + sitelink_extension: + Parameters to use when applying sitelink extension + recommendation. + move_unused_budget: + Parameters to use when applying move unused budget + recommendation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationOperation) + }) +_sym_db.RegisterMessage(ApplyRecommendationOperation) +_sym_db.RegisterMessage(ApplyRecommendationOperation.CampaignBudgetParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.TextAdParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.KeywordParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.TargetCpaOptInParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.TargetRoasOptInParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.CalloutExtensionParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.CallExtensionParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.SitelinkExtensionParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.MoveUnusedBudgetParameters) + +ApplyRecommendationResponse = _reflection.GeneratedProtocolMessageType('ApplyRecommendationResponse', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Response message for [RecommendationService.ApplyRecommendation][googl + e.ads.googleads.v5.services.RecommendationService.ApplyRecommendation] + . + + Attributes: + results: + Results of operations to apply recommendations. + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors) we return the RPC + level error. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationResponse) + }) +_sym_db.RegisterMessage(ApplyRecommendationResponse) + +ApplyRecommendationResult = _reflection.GeneratedProtocolMessageType('ApplyRecommendationResult', (_message.Message,), { + 'DESCRIPTOR' : _APPLYRECOMMENDATIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """The result of applying a recommendation. + + Attributes: + resource_name: + Returned for successful applies. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.ApplyRecommendationResult) + }) +_sym_db.RegisterMessage(ApplyRecommendationResult) + +DismissRecommendationRequest = _reflection.GeneratedProtocolMessageType('DismissRecommendationRequest', (_message.Message,), { + + 'DismissRecommendationOperation' : _reflection.GeneratedProtocolMessageType('DismissRecommendationOperation', (_message.Message,), { + 'DESCRIPTOR' : _DISMISSRECOMMENDATIONREQUEST_DISMISSRECOMMENDATIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Operation to dismiss a single recommendation identified by + resource\_name. + + Attributes: + resource_name: + The resource name of the recommendation to dismiss. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.DismissRecommendationRequest.DismissRecommendationOperation) + }) + , + 'DESCRIPTOR' : _DISMISSRECOMMENDATIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Request message for [RecommendationService.DismissRecommendation][goog + le.ads.googleads.v5.services.RecommendationService.DismissRecommendati + on]. + + Attributes: + customer_id: + Required. The ID of the customer with the recommendation. + operations: + Required. The list of operations to dismiss recommendations. + If partial\_failure=false all recommendations should be of the + same type There is a limit of 100 operations per request. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, operations will be + carried in a single transaction if and only if they are all + valid. Default is false. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.DismissRecommendationRequest) + }) +_sym_db.RegisterMessage(DismissRecommendationRequest) +_sym_db.RegisterMessage(DismissRecommendationRequest.DismissRecommendationOperation) + +DismissRecommendationResponse = _reflection.GeneratedProtocolMessageType('DismissRecommendationResponse', (_message.Message,), { + + 'DismissRecommendationResult' : _reflection.GeneratedProtocolMessageType('DismissRecommendationResult', (_message.Message,), { + 'DESCRIPTOR' : _DISMISSRECOMMENDATIONRESPONSE_DISMISSRECOMMENDATIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """The result of dismissing a recommendation. + + Attributes: + resource_name: + Returned for successful dismissals. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.DismissRecommendationResponse.DismissRecommendationResult) + }) + , + 'DESCRIPTOR' : _DISMISSRECOMMENDATIONRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.recommendation_service_pb2' + , + '__doc__': """Response message for [RecommendationService.DismissRecommendation][goo + gle.ads.googleads.v5.services.RecommendationService.DismissRecommendat + ion]. + + Attributes: + results: + Results of operations to dismiss recommendations. + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors) we return the RPC + level error. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.DismissRecommendationResponse) + }) +_sym_db.RegisterMessage(DismissRecommendationResponse) +_sym_db.RegisterMessage(DismissRecommendationResponse.DismissRecommendationResult) + + +DESCRIPTOR._options = None +_GETRECOMMENDATIONREQUEST.fields_by_name['resource_name']._options = None +_APPLYRECOMMENDATIONREQUEST.fields_by_name['customer_id']._options = None +_APPLYRECOMMENDATIONREQUEST.fields_by_name['operations']._options = None +_DISMISSRECOMMENDATIONREQUEST.fields_by_name['customer_id']._options = None +_DISMISSRECOMMENDATIONREQUEST.fields_by_name['operations']._options = None + +_RECOMMENDATIONSERVICE = _descriptor.ServiceDescriptor( + name='RecommendationService', + full_name='google.ads.googleads.v5.services.RecommendationService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=3704, + serialized_end=4448, + methods=[ + _descriptor.MethodDescriptor( + name='GetRecommendation', + full_name='google.ads.googleads.v5.services.RecommendationService.GetRecommendation', + index=0, + containing_service=None, + input_type=_GETRECOMMENDATIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2._RECOMMENDATION, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/recommendations/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='ApplyRecommendation', + full_name='google.ads.googleads.v5.services.RecommendationService.ApplyRecommendation', + index=1, + containing_service=None, + input_type=_APPLYRECOMMENDATIONREQUEST, + output_type=_APPLYRECOMMENDATIONRESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/recommendations:apply:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='DismissRecommendation', + full_name='google.ads.googleads.v5.services.RecommendationService.DismissRecommendation', + index=2, + containing_service=None, + input_type=_DISMISSRECOMMENDATIONREQUEST, + output_type=_DISMISSRECOMMENDATIONRESPONSE, + serialized_options=b'\202\323\344\223\002:\"5/v5/customers/{customer_id=*}/recommendations:dismiss:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_RECOMMENDATIONSERVICE) + +DESCRIPTOR.services_by_name['RecommendationService'] = _RECOMMENDATIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/recommendation_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/recommendation_service_pb2_grpc.py new file mode 100644 index 000000000..c0e29653a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/recommendation_service_pb2_grpc.py @@ -0,0 +1,142 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2 +from google.ads.google_ads.v5.proto.services import recommendation_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2 + + +class RecommendationServiceStub(object): + """Proto file describing the Recommendation service. + + Service to manage recommendations. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetRecommendation = channel.unary_unary( + '/google.ads.googleads.v5.services.RecommendationService/GetRecommendation', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.GetRecommendationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2.Recommendation.FromString, + ) + self.ApplyRecommendation = channel.unary_unary( + '/google.ads.googleads.v5.services.RecommendationService/ApplyRecommendation', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationResponse.FromString, + ) + self.DismissRecommendation = channel.unary_unary( + '/google.ads.googleads.v5.services.RecommendationService/DismissRecommendation', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationResponse.FromString, + ) + + +class RecommendationServiceServicer(object): + """Proto file describing the Recommendation service. + + Service to manage recommendations. + """ + + def GetRecommendation(self, request, context): + """Returns the requested recommendation in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ApplyRecommendation(self, request, context): + """Applies given recommendations with corresponding apply parameters. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DismissRecommendation(self, request, context): + """Dismisses given recommendations. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_RecommendationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetRecommendation': grpc.unary_unary_rpc_method_handler( + servicer.GetRecommendation, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.GetRecommendationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2.Recommendation.SerializeToString, + ), + 'ApplyRecommendation': grpc.unary_unary_rpc_method_handler( + servicer.ApplyRecommendation, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationResponse.SerializeToString, + ), + 'DismissRecommendation': grpc.unary_unary_rpc_method_handler( + servicer.DismissRecommendation, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.RecommendationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class RecommendationService(object): + """Proto file describing the Recommendation service. + + Service to manage recommendations. + """ + + @staticmethod + def GetRecommendation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.RecommendationService/GetRecommendation', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.GetRecommendationRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_recommendation__pb2.Recommendation.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ApplyRecommendation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.RecommendationService/ApplyRecommendation', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DismissRecommendation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.RecommendationService/DismissRecommendation', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_recommendation__service__pb2.DismissRecommendationResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2.py b/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2.py new file mode 100644 index 000000000..0495a4d9e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2.py @@ -0,0 +1,404 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/remarketing_action_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import remarketing_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/remarketing_action_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\035RemarketingActionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/services/remarketing_action_service.proto\x12 google.ads.googleads.v5.services\x1a@google/ads/googleads_v5/proto/resources/remarketing_action.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"h\n\x1bGetRemarketingActionRequest\x12I\n\rresource_name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*googleads.googleapis.com/RemarketingAction\"\xc2\x01\n\x1fMutateRemarketingActionsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12U\n\noperations\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v5.services.RemarketingActionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xea\x01\n\x1aRemarketingActionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x46\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.RemarketingActionH\x00\x12\x46\n\x06update\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v5.resources.RemarketingActionH\x00\x42\x0b\n\toperation\"\xa7\x01\n MutateRemarketingActionsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12P\n\x07results\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v5.services.MutateRemarketingActionResult\"6\n\x1dMutateRemarketingActionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x94\x04\n\x18RemarketingActionService\x12\xd9\x01\n\x14GetRemarketingAction\x12=.google.ads.googleads.v5.services.GetRemarketingActionRequest\x1a\x34.google.ads.googleads.v5.resources.RemarketingAction\"L\x82\xd3\xe4\x93\x02\x36\x12\x34/v5/{resource_name=customers/*/remarketingActions/*}\xda\x41\rresource_name\x12\xfe\x01\n\x18MutateRemarketingActions\x12\x41.google.ads.googleads.v5.services.MutateRemarketingActionsRequest\x1a\x42.google.ads.googleads.v5.services.MutateRemarketingActionsResponse\"[\x82\xd3\xe4\x93\x02<\"7/v5/customers/{customer_id=*}/remarketingActions:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x84\x02\n$com.google.ads.googleads.v5.servicesB\x1dRemarketingActionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETREMARKETINGACTIONREQUEST = _descriptor.Descriptor( + name='GetRemarketingActionRequest', + full_name='google.ads.googleads.v5.services.GetRemarketingActionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetRemarketingActionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A,\n*googleads.googleapis.com/RemarketingAction', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=349, + serialized_end=453, +) + + +_MUTATEREMARKETINGACTIONSREQUEST = _descriptor.Descriptor( + name='MutateRemarketingActionsRequest', + full_name='google.ads.googleads.v5.services.MutateRemarketingActionsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=456, + serialized_end=650, +) + + +_REMARKETINGACTIONOPERATION = _descriptor.Descriptor( + name='RemarketingActionOperation', + full_name='google.ads.googleads.v5.services.RemarketingActionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.RemarketingActionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.RemarketingActionOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.RemarketingActionOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.RemarketingActionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=653, + serialized_end=887, +) + + +_MUTATEREMARKETINGACTIONSRESPONSE = _descriptor.Descriptor( + name='MutateRemarketingActionsResponse', + full_name='google.ads.googleads.v5.services.MutateRemarketingActionsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateRemarketingActionsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=890, + serialized_end=1057, +) + + +_MUTATEREMARKETINGACTIONRESULT = _descriptor.Descriptor( + name='MutateRemarketingActionResult', + full_name='google.ads.googleads.v5.services.MutateRemarketingActionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateRemarketingActionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1059, + serialized_end=1113, +) + +_MUTATEREMARKETINGACTIONSREQUEST.fields_by_name['operations'].message_type = _REMARKETINGACTIONOPERATION +_REMARKETINGACTIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_REMARKETINGACTIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2._REMARKETINGACTION +_REMARKETINGACTIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2._REMARKETINGACTION +_REMARKETINGACTIONOPERATION.oneofs_by_name['operation'].fields.append( + _REMARKETINGACTIONOPERATION.fields_by_name['create']) +_REMARKETINGACTIONOPERATION.fields_by_name['create'].containing_oneof = _REMARKETINGACTIONOPERATION.oneofs_by_name['operation'] +_REMARKETINGACTIONOPERATION.oneofs_by_name['operation'].fields.append( + _REMARKETINGACTIONOPERATION.fields_by_name['update']) +_REMARKETINGACTIONOPERATION.fields_by_name['update'].containing_oneof = _REMARKETINGACTIONOPERATION.oneofs_by_name['operation'] +_MUTATEREMARKETINGACTIONSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEREMARKETINGACTIONSRESPONSE.fields_by_name['results'].message_type = _MUTATEREMARKETINGACTIONRESULT +DESCRIPTOR.message_types_by_name['GetRemarketingActionRequest'] = _GETREMARKETINGACTIONREQUEST +DESCRIPTOR.message_types_by_name['MutateRemarketingActionsRequest'] = _MUTATEREMARKETINGACTIONSREQUEST +DESCRIPTOR.message_types_by_name['RemarketingActionOperation'] = _REMARKETINGACTIONOPERATION +DESCRIPTOR.message_types_by_name['MutateRemarketingActionsResponse'] = _MUTATEREMARKETINGACTIONSRESPONSE +DESCRIPTOR.message_types_by_name['MutateRemarketingActionResult'] = _MUTATEREMARKETINGACTIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetRemarketingActionRequest = _reflection.GeneratedProtocolMessageType('GetRemarketingActionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETREMARKETINGACTIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.remarketing_action_service_pb2' + , + '__doc__': """Request message for [RemarketingActionService.GetRemarketingAction][go + ogle.ads.googleads.v5.services.RemarketingActionService.GetRemarketing + Action]. + + Attributes: + resource_name: + Required. The resource name of the remarketing action to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetRemarketingActionRequest) + }) +_sym_db.RegisterMessage(GetRemarketingActionRequest) + +MutateRemarketingActionsRequest = _reflection.GeneratedProtocolMessageType('MutateRemarketingActionsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEREMARKETINGACTIONSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.remarketing_action_service_pb2' + , + '__doc__': """Request message for [RemarketingActionService.MutateRemarketingActions + ][google.ads.googleads.v5.services.RemarketingActionService.MutateRema + rketingActions]. + + Attributes: + customer_id: + Required. The ID of the customer whose remarketing actions are + being modified. + operations: + Required. The list of operations to perform on individual + remarketing actions. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateRemarketingActionsRequest) + }) +_sym_db.RegisterMessage(MutateRemarketingActionsRequest) + +RemarketingActionOperation = _reflection.GeneratedProtocolMessageType('RemarketingActionOperation', (_message.Message,), { + 'DESCRIPTOR' : _REMARKETINGACTIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.remarketing_action_service_pb2' + , + '__doc__': """A single operation (create, update) on a remarketing action. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + remarketing action. + update: + Update operation: The remarketing action is expected to have a + valid resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RemarketingActionOperation) + }) +_sym_db.RegisterMessage(RemarketingActionOperation) + +MutateRemarketingActionsResponse = _reflection.GeneratedProtocolMessageType('MutateRemarketingActionsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEREMARKETINGACTIONSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.remarketing_action_service_pb2' + , + '__doc__': """Response message for remarketing action mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateRemarketingActionsResponse) + }) +_sym_db.RegisterMessage(MutateRemarketingActionsResponse) + +MutateRemarketingActionResult = _reflection.GeneratedProtocolMessageType('MutateRemarketingActionResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEREMARKETINGACTIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.remarketing_action_service_pb2' + , + '__doc__': """The result for the remarketing action mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateRemarketingActionResult) + }) +_sym_db.RegisterMessage(MutateRemarketingActionResult) + + +DESCRIPTOR._options = None +_GETREMARKETINGACTIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATEREMARKETINGACTIONSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEREMARKETINGACTIONSREQUEST.fields_by_name['operations']._options = None + +_REMARKETINGACTIONSERVICE = _descriptor.ServiceDescriptor( + name='RemarketingActionService', + full_name='google.ads.googleads.v5.services.RemarketingActionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1116, + serialized_end=1648, + methods=[ + _descriptor.MethodDescriptor( + name='GetRemarketingAction', + full_name='google.ads.googleads.v5.services.RemarketingActionService.GetRemarketingAction', + index=0, + containing_service=None, + input_type=_GETREMARKETINGACTIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2._REMARKETINGACTION, + serialized_options=b'\202\323\344\223\0026\0224/v5/{resource_name=customers/*/remarketingActions/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateRemarketingActions', + full_name='google.ads.googleads.v5.services.RemarketingActionService.MutateRemarketingActions', + index=1, + containing_service=None, + input_type=_MUTATEREMARKETINGACTIONSREQUEST, + output_type=_MUTATEREMARKETINGACTIONSRESPONSE, + serialized_options=b'\202\323\344\223\002<\"7/v5/customers/{customer_id=*}/remarketingActions:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_REMARKETINGACTIONSERVICE) + +DESCRIPTOR.services_by_name['RemarketingActionService'] = _REMARKETINGACTIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2_grpc.py new file mode 100644 index 000000000..d800b4673 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/remarketing_action_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import remarketing_action_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2 +from google.ads.google_ads.v5.proto.services import remarketing_action_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2 + + +class RemarketingActionServiceStub(object): + """Proto file describing the Remarketing Action service. + + Service to manage remarketing actions. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetRemarketingAction = channel.unary_unary( + '/google.ads.googleads.v5.services.RemarketingActionService/GetRemarketingAction', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.GetRemarketingActionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2.RemarketingAction.FromString, + ) + self.MutateRemarketingActions = channel.unary_unary( + '/google.ads.googleads.v5.services.RemarketingActionService/MutateRemarketingActions', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsResponse.FromString, + ) + + +class RemarketingActionServiceServicer(object): + """Proto file describing the Remarketing Action service. + + Service to manage remarketing actions. + """ + + def GetRemarketingAction(self, request, context): + """Returns the requested remarketing action in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateRemarketingActions(self, request, context): + """Creates or updates remarketing actions. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_RemarketingActionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetRemarketingAction': grpc.unary_unary_rpc_method_handler( + servicer.GetRemarketingAction, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.GetRemarketingActionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2.RemarketingAction.SerializeToString, + ), + 'MutateRemarketingActions': grpc.unary_unary_rpc_method_handler( + servicer.MutateRemarketingActions, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.RemarketingActionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class RemarketingActionService(object): + """Proto file describing the Remarketing Action service. + + Service to manage remarketing actions. + """ + + @staticmethod + def GetRemarketingAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.RemarketingActionService/GetRemarketingAction', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.GetRemarketingActionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_remarketing__action__pb2.RemarketingAction.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateRemarketingActions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.RemarketingActionService/MutateRemarketingActions', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_remarketing__action__service__pb2.MutateRemarketingActionsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2.py new file mode 100644 index 000000000..2fcc8e40e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/search_term_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/search_term_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\032SearchTermViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/search_term_view_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/search_term_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"b\n\x18GetSearchTermViewRequest\x12\x46\n\rresource_name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'googleads.googleapis.com/SearchTermView2\x84\x02\n\x15SearchTermViewService\x12\xcd\x01\n\x11GetSearchTermView\x12:.google.ads.googleads.v5.services.GetSearchTermViewRequest\x1a\x31.google.ads.googleads.v5.resources.SearchTermView\"I\x82\xd3\xe4\x93\x02\x33\x12\x31/v5/{resource_name=customers/*/searchTermViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x81\x02\n$com.google.ads.googleads.v5.servicesB\x1aSearchTermViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETSEARCHTERMVIEWREQUEST = _descriptor.Descriptor( + name='GetSearchTermViewRequest', + full_name='google.ads.googleads.v5.services.GetSearchTermViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetSearchTermViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A)\n\'googleads.googleapis.com/SearchTermView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=286, + serialized_end=384, +) + +DESCRIPTOR.message_types_by_name['GetSearchTermViewRequest'] = _GETSEARCHTERMVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetSearchTermViewRequest = _reflection.GeneratedProtocolMessageType('GetSearchTermViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETSEARCHTERMVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.search_term_view_service_pb2' + , + '__doc__': """Request message for [SearchTermViewService.GetSearchTermView][google.a + ds.googleads.v5.services.SearchTermViewService.GetSearchTermView]. + + Attributes: + resource_name: + Required. The resource name of the search term view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetSearchTermViewRequest) + }) +_sym_db.RegisterMessage(GetSearchTermViewRequest) + + +DESCRIPTOR._options = None +_GETSEARCHTERMVIEWREQUEST.fields_by_name['resource_name']._options = None + +_SEARCHTERMVIEWSERVICE = _descriptor.ServiceDescriptor( + name='SearchTermViewService', + full_name='google.ads.googleads.v5.services.SearchTermViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=387, + serialized_end=647, + methods=[ + _descriptor.MethodDescriptor( + name='GetSearchTermView', + full_name='google.ads.googleads.v5.services.SearchTermViewService.GetSearchTermView', + index=0, + containing_service=None, + input_type=_GETSEARCHTERMVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2._SEARCHTERMVIEW, + serialized_options=b'\202\323\344\223\0023\0221/v5/{resource_name=customers/*/searchTermViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_SEARCHTERMVIEWSERVICE) + +DESCRIPTOR.services_by_name['SearchTermViewService'] = _SEARCHTERMVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2_grpc.py new file mode 100644 index 000000000..e1fa07520 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/search_term_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import search_term_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2 +from google.ads.google_ads.v5.proto.services import search_term_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_search__term__view__service__pb2 + + +class SearchTermViewServiceStub(object): + """Proto file describing the Search Term View service. + + Service to manage search term views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetSearchTermView = channel.unary_unary( + '/google.ads.googleads.v5.services.SearchTermViewService/GetSearchTermView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_search__term__view__service__pb2.GetSearchTermViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2.SearchTermView.FromString, + ) + + +class SearchTermViewServiceServicer(object): + """Proto file describing the Search Term View service. + + Service to manage search term views. + """ + + def GetSearchTermView(self, request, context): + """Returns the attributes of the requested search term view. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SearchTermViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetSearchTermView': grpc.unary_unary_rpc_method_handler( + servicer.GetSearchTermView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_search__term__view__service__pb2.GetSearchTermViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2.SearchTermView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.SearchTermViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class SearchTermViewService(object): + """Proto file describing the Search Term View service. + + Service to manage search term views. + """ + + @staticmethod + def GetSearchTermView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.SearchTermViewService/GetSearchTermView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_search__term__view__service__pb2.GetSearchTermViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_search__term__view__pb2.SearchTermView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2.py b/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2.py new file mode 100644 index 000000000..b27f0e3c2 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2.py @@ -0,0 +1,390 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/shared_criterion_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import shared_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/shared_criterion_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\033SharedCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nEgoogle/ads/googleads_v5/proto/services/shared_criterion_service.proto\x12 google.ads.googleads.v5.services\x1a>google/ads/googleads_v5/proto/resources/shared_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x17google/rpc/status.proto\"d\n\x19GetSharedCriterionRequest\x12G\n\rresource_name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(googleads.googleapis.com/SharedCriterion\"\xbc\x01\n\x1bMutateSharedCriteriaRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12S\n\noperations\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v5.services.SharedCriterionOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\x7f\n\x18SharedCriterionOperation\x12\x44\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x32.google.ads.googleads.v5.resources.SharedCriterionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\xa1\x01\n\x1cMutateSharedCriteriaResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12N\n\x07results\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v5.services.MutateSharedCriterionResult\"4\n\x1bMutateSharedCriterionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xf8\x03\n\x16SharedCriterionService\x12\xcf\x01\n\x12GetSharedCriterion\x12;.google.ads.googleads.v5.services.GetSharedCriterionRequest\x1a\x32.google.ads.googleads.v5.resources.SharedCriterion\"H\x82\xd3\xe4\x93\x02\x32\x12\x30/v5/{resource_name=customers/*/sharedCriteria/*}\xda\x41\rresource_name\x12\xee\x01\n\x14MutateSharedCriteria\x12=.google.ads.googleads.v5.services.MutateSharedCriteriaRequest\x1a>.google.ads.googleads.v5.services.MutateSharedCriteriaResponse\"W\x82\xd3\xe4\x93\x02\x38\"3/v5/customers/{customer_id=*}/sharedCriteria:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x82\x02\n$com.google.ads.googleads.v5.servicesB\x1bSharedCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETSHAREDCRITERIONREQUEST = _descriptor.Descriptor( + name='GetSharedCriterionRequest', + full_name='google.ads.googleads.v5.services.GetSharedCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetSharedCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A*\n(googleads.googleapis.com/SharedCriterion', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=311, + serialized_end=411, +) + + +_MUTATESHAREDCRITERIAREQUEST = _descriptor.Descriptor( + name='MutateSharedCriteriaRequest', + full_name='google.ads.googleads.v5.services.MutateSharedCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=414, + serialized_end=602, +) + + +_SHAREDCRITERIONOPERATION = _descriptor.Descriptor( + name='SharedCriterionOperation', + full_name='google.ads.googleads.v5.services.SharedCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.SharedCriterionOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.SharedCriterionOperation.remove', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.SharedCriterionOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=604, + serialized_end=731, +) + + +_MUTATESHAREDCRITERIARESPONSE = _descriptor.Descriptor( + name='MutateSharedCriteriaResponse', + full_name='google.ads.googleads.v5.services.MutateSharedCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateSharedCriteriaResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=734, + serialized_end=895, +) + + +_MUTATESHAREDCRITERIONRESULT = _descriptor.Descriptor( + name='MutateSharedCriterionResult', + full_name='google.ads.googleads.v5.services.MutateSharedCriterionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateSharedCriterionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=897, + serialized_end=949, +) + +_MUTATESHAREDCRITERIAREQUEST.fields_by_name['operations'].message_type = _SHAREDCRITERIONOPERATION +_SHAREDCRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2._SHAREDCRITERION +_SHAREDCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _SHAREDCRITERIONOPERATION.fields_by_name['create']) +_SHAREDCRITERIONOPERATION.fields_by_name['create'].containing_oneof = _SHAREDCRITERIONOPERATION.oneofs_by_name['operation'] +_SHAREDCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _SHAREDCRITERIONOPERATION.fields_by_name['remove']) +_SHAREDCRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _SHAREDCRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATESHAREDCRITERIARESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATESHAREDCRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATESHAREDCRITERIONRESULT +DESCRIPTOR.message_types_by_name['GetSharedCriterionRequest'] = _GETSHAREDCRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateSharedCriteriaRequest'] = _MUTATESHAREDCRITERIAREQUEST +DESCRIPTOR.message_types_by_name['SharedCriterionOperation'] = _SHAREDCRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateSharedCriteriaResponse'] = _MUTATESHAREDCRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateSharedCriterionResult'] = _MUTATESHAREDCRITERIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetSharedCriterionRequest = _reflection.GeneratedProtocolMessageType('GetSharedCriterionRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETSHAREDCRITERIONREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_criterion_service_pb2' + , + '__doc__': """Request message for [SharedCriterionService.GetSharedCriterion][google + .ads.googleads.v5.services.SharedCriterionService.GetSharedCriterion]. + + Attributes: + resource_name: + Required. The resource name of the shared criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetSharedCriterionRequest) + }) +_sym_db.RegisterMessage(GetSharedCriterionRequest) + +MutateSharedCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateSharedCriteriaRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDCRITERIAREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_criterion_service_pb2' + , + '__doc__': """Request message for [SharedCriterionService.MutateSharedCriteria][goog + le.ads.googleads.v5.services.SharedCriterionService.MutateSharedCriter + ia]. + + Attributes: + customer_id: + Required. The ID of the customer whose shared criteria are + being modified. + operations: + Required. The list of operations to perform on individual + shared criteria. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedCriteriaRequest) + }) +_sym_db.RegisterMessage(MutateSharedCriteriaRequest) + +SharedCriterionOperation = _reflection.GeneratedProtocolMessageType('SharedCriterionOperation', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDCRITERIONOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_criterion_service_pb2' + , + '__doc__': """A single operation (create, remove) on an shared criterion. + + Attributes: + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + shared criterion. + remove: + Remove operation: A resource name for the removed shared + criterion is expected, in this format: ``customers/{customer_ + id}/sharedCriteria/{shared_set_id}~{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SharedCriterionOperation) + }) +_sym_db.RegisterMessage(SharedCriterionOperation) + +MutateSharedCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateSharedCriteriaResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDCRITERIARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_criterion_service_pb2' + , + '__doc__': """Response message for a shared criterion mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedCriteriaResponse) + }) +_sym_db.RegisterMessage(MutateSharedCriteriaResponse) + +MutateSharedCriterionResult = _reflection.GeneratedProtocolMessageType('MutateSharedCriterionResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDCRITERIONRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_criterion_service_pb2' + , + '__doc__': """The result for the shared criterion mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedCriterionResult) + }) +_sym_db.RegisterMessage(MutateSharedCriterionResult) + + +DESCRIPTOR._options = None +_GETSHAREDCRITERIONREQUEST.fields_by_name['resource_name']._options = None +_MUTATESHAREDCRITERIAREQUEST.fields_by_name['customer_id']._options = None +_MUTATESHAREDCRITERIAREQUEST.fields_by_name['operations']._options = None + +_SHAREDCRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='SharedCriterionService', + full_name='google.ads.googleads.v5.services.SharedCriterionService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=952, + serialized_end=1456, + methods=[ + _descriptor.MethodDescriptor( + name='GetSharedCriterion', + full_name='google.ads.googleads.v5.services.SharedCriterionService.GetSharedCriterion', + index=0, + containing_service=None, + input_type=_GETSHAREDCRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2._SHAREDCRITERION, + serialized_options=b'\202\323\344\223\0022\0220/v5/{resource_name=customers/*/sharedCriteria/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateSharedCriteria', + full_name='google.ads.googleads.v5.services.SharedCriterionService.MutateSharedCriteria', + index=1, + containing_service=None, + input_type=_MUTATESHAREDCRITERIAREQUEST, + output_type=_MUTATESHAREDCRITERIARESPONSE, + serialized_options=b'\202\323\344\223\0028\"3/v5/customers/{customer_id=*}/sharedCriteria:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_SHAREDCRITERIONSERVICE) + +DESCRIPTOR.services_by_name['SharedCriterionService'] = _SHAREDCRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..334436f14 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shared_criterion_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import shared_criterion_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2 +from google.ads.google_ads.v5.proto.services import shared_criterion_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2 + + +class SharedCriterionServiceStub(object): + """Proto file describing the Shared Criterion service. + + Service to manage shared criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetSharedCriterion = channel.unary_unary( + '/google.ads.googleads.v5.services.SharedCriterionService/GetSharedCriterion', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.GetSharedCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2.SharedCriterion.FromString, + ) + self.MutateSharedCriteria = channel.unary_unary( + '/google.ads.googleads.v5.services.SharedCriterionService/MutateSharedCriteria', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaResponse.FromString, + ) + + +class SharedCriterionServiceServicer(object): + """Proto file describing the Shared Criterion service. + + Service to manage shared criteria. + """ + + def GetSharedCriterion(self, request, context): + """Returns the requested shared criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateSharedCriteria(self, request, context): + """Creates or removes shared criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SharedCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetSharedCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetSharedCriterion, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.GetSharedCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2.SharedCriterion.SerializeToString, + ), + 'MutateSharedCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateSharedCriteria, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.SharedCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class SharedCriterionService(object): + """Proto file describing the Shared Criterion service. + + Service to manage shared criteria. + """ + + @staticmethod + def GetSharedCriterion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.SharedCriterionService/GetSharedCriterion', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.GetSharedCriterionRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__criterion__pb2.SharedCriterion.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateSharedCriteria(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.SharedCriterionService/MutateSharedCriteria', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__criterion__service__pb2.MutateSharedCriteriaResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/shared_set_service_pb2.py b/google/ads/google_ads/v5/proto/services/shared_set_service_pb2.py new file mode 100644 index 000000000..f0e7157d7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shared_set_service_pb2.py @@ -0,0 +1,440 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/shared_set_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.enums import response_content_type_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2 +from google.ads.google_ads.v5.proto.resources import shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/shared_set_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\025SharedSetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n?google/ads/googleads_v5/proto/services/shared_set_service.proto\x12 google.ads.googleads.v5.services\x1a?google/ads/googleads_v5/proto/enums/response_content_type.proto\x1a\x38google/ads/googleads_v5/proto/resources/shared_set.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"X\n\x13GetSharedSetRequest\x12\x41\n\rresource_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"googleads.googleapis.com/SharedSet\"\x9d\x02\n\x17MutateSharedSetsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12M\n\noperations\x18\x02 \x03(\x0b\x32\x34.google.ads.googleads.v5.services.SharedSetOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\x12i\n\x15response_content_type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v5.enums.ResponseContentTypeEnum.ResponseContentType\"\xe4\x01\n\x12SharedSetOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12>\n\x06\x63reate\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v5.resources.SharedSetH\x00\x12>\n\x06update\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.resources.SharedSetH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x97\x01\n\x18MutateSharedSetsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x07results\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v5.services.MutateSharedSetResult\"p\n\x15MutateSharedSetResult\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12@\n\nshared_set\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v5.resources.SharedSet2\xcc\x03\n\x10SharedSetService\x12\xb9\x01\n\x0cGetSharedSet\x12\x35.google.ads.googleads.v5.services.GetSharedSetRequest\x1a,.google.ads.googleads.v5.resources.SharedSet\"D\x82\xd3\xe4\x93\x02.\x12,/v5/{resource_name=customers/*/sharedSets/*}\xda\x41\rresource_name\x12\xde\x01\n\x10MutateSharedSets\x12\x39.google.ads.googleads.v5.services.MutateSharedSetsRequest\x1a:.google.ads.googleads.v5.services.MutateSharedSetsResponse\"S\x82\xd3\xe4\x93\x02\x34\"//v5/customers/{customer_id=*}/sharedSets:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfc\x01\n$com.google.ads.googleads.v5.servicesB\x15SharedSetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETSHAREDSETREQUEST = _descriptor.Descriptor( + name='GetSharedSetRequest', + full_name='google.ads.googleads.v5.services.GetSharedSetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetSharedSetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A$\n\"googleads.googleapis.com/SharedSet', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=398, + serialized_end=486, +) + + +_MUTATESHAREDSETSREQUEST = _descriptor.Descriptor( + name='MutateSharedSetsRequest', + full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response_content_type', full_name='google.ads.googleads.v5.services.MutateSharedSetsRequest.response_content_type', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=489, + serialized_end=774, +) + + +_SHAREDSETOPERATION = _descriptor.Descriptor( + name='SharedSetOperation', + full_name='google.ads.googleads.v5.services.SharedSetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.SharedSetOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.SharedSetOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.SharedSetOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.SharedSetOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.SharedSetOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=777, + serialized_end=1005, +) + + +_MUTATESHAREDSETSRESPONSE = _descriptor.Descriptor( + name='MutateSharedSetsResponse', + full_name='google.ads.googleads.v5.services.MutateSharedSetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateSharedSetsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateSharedSetsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1008, + serialized_end=1159, +) + + +_MUTATESHAREDSETRESULT = _descriptor.Descriptor( + name='MutateSharedSetResult', + full_name='google.ads.googleads.v5.services.MutateSharedSetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateSharedSetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='shared_set', full_name='google.ads.googleads.v5.services.MutateSharedSetResult.shared_set', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1161, + serialized_end=1273, +) + +_MUTATESHAREDSETSREQUEST.fields_by_name['operations'].message_type = _SHAREDSETOPERATION +_MUTATESHAREDSETSREQUEST.fields_by_name['response_content_type'].enum_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_enums_dot_response__content__type__pb2._RESPONSECONTENTTYPEENUM_RESPONSECONTENTTYPE +_SHAREDSETOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_SHAREDSETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2._SHAREDSET +_SHAREDSETOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2._SHAREDSET +_SHAREDSETOPERATION.oneofs_by_name['operation'].fields.append( + _SHAREDSETOPERATION.fields_by_name['create']) +_SHAREDSETOPERATION.fields_by_name['create'].containing_oneof = _SHAREDSETOPERATION.oneofs_by_name['operation'] +_SHAREDSETOPERATION.oneofs_by_name['operation'].fields.append( + _SHAREDSETOPERATION.fields_by_name['update']) +_SHAREDSETOPERATION.fields_by_name['update'].containing_oneof = _SHAREDSETOPERATION.oneofs_by_name['operation'] +_SHAREDSETOPERATION.oneofs_by_name['operation'].fields.append( + _SHAREDSETOPERATION.fields_by_name['remove']) +_SHAREDSETOPERATION.fields_by_name['remove'].containing_oneof = _SHAREDSETOPERATION.oneofs_by_name['operation'] +_MUTATESHAREDSETSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATESHAREDSETSRESPONSE.fields_by_name['results'].message_type = _MUTATESHAREDSETRESULT +_MUTATESHAREDSETRESULT.fields_by_name['shared_set'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2._SHAREDSET +DESCRIPTOR.message_types_by_name['GetSharedSetRequest'] = _GETSHAREDSETREQUEST +DESCRIPTOR.message_types_by_name['MutateSharedSetsRequest'] = _MUTATESHAREDSETSREQUEST +DESCRIPTOR.message_types_by_name['SharedSetOperation'] = _SHAREDSETOPERATION +DESCRIPTOR.message_types_by_name['MutateSharedSetsResponse'] = _MUTATESHAREDSETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateSharedSetResult'] = _MUTATESHAREDSETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetSharedSetRequest = _reflection.GeneratedProtocolMessageType('GetSharedSetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETSHAREDSETREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_set_service_pb2' + , + '__doc__': """Request message for [SharedSetService.GetSharedSet][google.ads.googlea + ds.v5.services.SharedSetService.GetSharedSet]. + + Attributes: + resource_name: + Required. The resource name of the shared set to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetSharedSetRequest) + }) +_sym_db.RegisterMessage(GetSharedSetRequest) + +MutateSharedSetsRequest = _reflection.GeneratedProtocolMessageType('MutateSharedSetsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDSETSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_set_service_pb2' + , + '__doc__': """Request message for [SharedSetService.MutateSharedSets][google.ads.goo + gleads.v5.services.SharedSetService.MutateSharedSets]. + + Attributes: + customer_id: + Required. The ID of the customer whose shared sets are being + modified. + operations: + Required. The list of operations to perform on individual + shared sets. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + response_content_type: + The response content type setting. Determines whether the + mutable resource or just the resource name should be returned + post mutation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedSetsRequest) + }) +_sym_db.RegisterMessage(MutateSharedSetsRequest) + +SharedSetOperation = _reflection.GeneratedProtocolMessageType('SharedSetOperation', (_message.Message,), { + 'DESCRIPTOR' : _SHAREDSETOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_set_service_pb2' + , + '__doc__': """A single operation (create, update, remove) on an shared set. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + shared set. + update: + Update operation: The shared set is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed shared set + is expected, in this format: + ``customers/{customer_id}/sharedSets/{shared_set_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.SharedSetOperation) + }) +_sym_db.RegisterMessage(SharedSetOperation) + +MutateSharedSetsResponse = _reflection.GeneratedProtocolMessageType('MutateSharedSetsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDSETSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_set_service_pb2' + , + '__doc__': """Response message for a shared set mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedSetsResponse) + }) +_sym_db.RegisterMessage(MutateSharedSetsResponse) + +MutateSharedSetResult = _reflection.GeneratedProtocolMessageType('MutateSharedSetResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATESHAREDSETRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.shared_set_service_pb2' + , + '__doc__': """The result for the shared set mutate. + + Attributes: + resource_name: + Returned for successful operations. + shared_set: + The mutated shared set with only mutable fields after mutate. + The field will only be returned when response\_content\_type + is set to "MUTABLE\_RESOURCE". + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateSharedSetResult) + }) +_sym_db.RegisterMessage(MutateSharedSetResult) + + +DESCRIPTOR._options = None +_GETSHAREDSETREQUEST.fields_by_name['resource_name']._options = None +_MUTATESHAREDSETSREQUEST.fields_by_name['customer_id']._options = None +_MUTATESHAREDSETSREQUEST.fields_by_name['operations']._options = None + +_SHAREDSETSERVICE = _descriptor.ServiceDescriptor( + name='SharedSetService', + full_name='google.ads.googleads.v5.services.SharedSetService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1276, + serialized_end=1736, + methods=[ + _descriptor.MethodDescriptor( + name='GetSharedSet', + full_name='google.ads.googleads.v5.services.SharedSetService.GetSharedSet', + index=0, + containing_service=None, + input_type=_GETSHAREDSETREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2._SHAREDSET, + serialized_options=b'\202\323\344\223\002.\022,/v5/{resource_name=customers/*/sharedSets/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateSharedSets', + full_name='google.ads.googleads.v5.services.SharedSetService.MutateSharedSets', + index=1, + containing_service=None, + input_type=_MUTATESHAREDSETSREQUEST, + output_type=_MUTATESHAREDSETSRESPONSE, + serialized_options=b'\202\323\344\223\0024\"//v5/customers/{customer_id=*}/sharedSets:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_SHAREDSETSERVICE) + +DESCRIPTOR.services_by_name['SharedSetService'] = _SHAREDSETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/shared_set_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/shared_set_service_pb2_grpc.py new file mode 100644 index 000000000..68817e898 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shared_set_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import shared_set_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2 +from google.ads.google_ads.v5.proto.services import shared_set_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2 + + +class SharedSetServiceStub(object): + """Proto file describing the Shared Set service. + + Service to manage shared sets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetSharedSet = channel.unary_unary( + '/google.ads.googleads.v5.services.SharedSetService/GetSharedSet', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.GetSharedSetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2.SharedSet.FromString, + ) + self.MutateSharedSets = channel.unary_unary( + '/google.ads.googleads.v5.services.SharedSetService/MutateSharedSets', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsResponse.FromString, + ) + + +class SharedSetServiceServicer(object): + """Proto file describing the Shared Set service. + + Service to manage shared sets. + """ + + def GetSharedSet(self, request, context): + """Returns the requested shared set in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateSharedSets(self, request, context): + """Creates, updates, or removes shared sets. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SharedSetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetSharedSet': grpc.unary_unary_rpc_method_handler( + servicer.GetSharedSet, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.GetSharedSetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2.SharedSet.SerializeToString, + ), + 'MutateSharedSets': grpc.unary_unary_rpc_method_handler( + servicer.MutateSharedSets, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.SharedSetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class SharedSetService(object): + """Proto file describing the Shared Set service. + + Service to manage shared sets. + """ + + @staticmethod + def GetSharedSet(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.SharedSetService/GetSharedSet', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.GetSharedSetRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shared__set__pb2.SharedSet.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateSharedSets(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.SharedSetService/MutateSharedSets', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shared__set__service__pb2.MutateSharedSetsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2.py new file mode 100644 index 000000000..a23dcceb5 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/shopping_performance_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import shopping_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/shopping_performance_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB#ShoppingPerformanceViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nNgoogle/ads/googleads_v5/proto/services/shopping_performance_view_service.proto\x12 google.ads.googleads.v5.services\x1aGgoogle/ads/googleads_v5/proto/resources/shopping_performance_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"t\n!GetShoppingPerformanceViewRequest\x12O\n\rresource_name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0googleads.googleapis.com/ShoppingPerformanceView2\xae\x02\n\x1eShoppingPerformanceViewService\x12\xee\x01\n\x1aGetShoppingPerformanceView\x12\x43.google.ads.googleads.v5.services.GetShoppingPerformanceViewRequest\x1a:.google.ads.googleads.v5.resources.ShoppingPerformanceView\"O\x82\xd3\xe4\x93\x02\x39\x12\x37/v5/{resource_name=customers/*/shoppingPerformanceView}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8a\x02\n$com.google.ads.googleads.v5.servicesB#ShoppingPerformanceViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETSHOPPINGPERFORMANCEVIEWREQUEST = _descriptor.Descriptor( + name='GetShoppingPerformanceViewRequest', + full_name='google.ads.googleads.v5.services.GetShoppingPerformanceViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetShoppingPerformanceViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A2\n0googleads.googleapis.com/ShoppingPerformanceView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=304, + serialized_end=420, +) + +DESCRIPTOR.message_types_by_name['GetShoppingPerformanceViewRequest'] = _GETSHOPPINGPERFORMANCEVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetShoppingPerformanceViewRequest = _reflection.GeneratedProtocolMessageType('GetShoppingPerformanceViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETSHOPPINGPERFORMANCEVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.shopping_performance_view_service_pb2' + , + '__doc__': """Request message for [ShoppingPerformanceViewService.GetShoppingPerform + anceView][google.ads.googleads.v5.services.ShoppingPerformanceViewServ + ice.GetShoppingPerformanceView]. + + Attributes: + resource_name: + Required. The resource name of the Shopping performance view + to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetShoppingPerformanceViewRequest) + }) +_sym_db.RegisterMessage(GetShoppingPerformanceViewRequest) + + +DESCRIPTOR._options = None +_GETSHOPPINGPERFORMANCEVIEWREQUEST.fields_by_name['resource_name']._options = None + +_SHOPPINGPERFORMANCEVIEWSERVICE = _descriptor.ServiceDescriptor( + name='ShoppingPerformanceViewService', + full_name='google.ads.googleads.v5.services.ShoppingPerformanceViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=423, + serialized_end=725, + methods=[ + _descriptor.MethodDescriptor( + name='GetShoppingPerformanceView', + full_name='google.ads.googleads.v5.services.ShoppingPerformanceViewService.GetShoppingPerformanceView', + index=0, + containing_service=None, + input_type=_GETSHOPPINGPERFORMANCEVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2._SHOPPINGPERFORMANCEVIEW, + serialized_options=b'\202\323\344\223\0029\0227/v5/{resource_name=customers/*/shoppingPerformanceView}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_SHOPPINGPERFORMANCEVIEWSERVICE) + +DESCRIPTOR.services_by_name['ShoppingPerformanceViewService'] = _SHOPPINGPERFORMANCEVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2_grpc.py new file mode 100644 index 000000000..920034107 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/shopping_performance_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import shopping_performance_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2 +from google.ads.google_ads.v5.proto.services import shopping_performance_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shopping__performance__view__service__pb2 + + +class ShoppingPerformanceViewServiceStub(object): + """Proto file describing the ShoppingPerformanceView service. + + Service to fetch Shopping performance views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetShoppingPerformanceView = channel.unary_unary( + '/google.ads.googleads.v5.services.ShoppingPerformanceViewService/GetShoppingPerformanceView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shopping__performance__view__service__pb2.GetShoppingPerformanceViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2.ShoppingPerformanceView.FromString, + ) + + +class ShoppingPerformanceViewServiceServicer(object): + """Proto file describing the ShoppingPerformanceView service. + + Service to fetch Shopping performance views. + """ + + def GetShoppingPerformanceView(self, request, context): + """Returns the requested Shopping performance view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ShoppingPerformanceViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetShoppingPerformanceView': grpc.unary_unary_rpc_method_handler( + servicer.GetShoppingPerformanceView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shopping__performance__view__service__pb2.GetShoppingPerformanceViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2.ShoppingPerformanceView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ShoppingPerformanceViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ShoppingPerformanceViewService(object): + """Proto file describing the ShoppingPerformanceView service. + + Service to fetch Shopping performance views. + """ + + @staticmethod + def GetShoppingPerformanceView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ShoppingPerformanceViewService/GetShoppingPerformanceView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_shopping__performance__view__service__pb2.GetShoppingPerformanceViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_shopping__performance__view__pb2.ShoppingPerformanceView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2.py b/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2.py new file mode 100644 index 000000000..ba5b68036 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/third_party_app_analytics_link_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import third_party_app_analytics_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/third_party_app_analytics_link_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB&ThirdPartyAppAnalyticsLinkServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nSgoogle/ads/googleads_v5/proto/services/third_party_app_analytics_link_service.proto\x12 google.ads.googleads.v5.services\x1aLgoogle/ads/googleads_v5/proto/resources/third_party_app_analytics_link.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x17google/api/client.proto\"w\n$GetThirdPartyAppAnalyticsLinkRequest\x12O\n\rresource_name\x18\x01 \x01(\tB8\xfa\x41\x35\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink\"s\n RegenerateShareableLinkIdRequest\x12O\n\rresource_name\x18\x01 \x01(\tB8\xfa\x41\x35\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink\"#\n!RegenerateShareableLinkIdResponse2\xbb\x04\n!ThirdPartyAppAnalyticsLinkService\x12\xed\x01\n\x1dGetThirdPartyAppAnalyticsLink\x12\x46.google.ads.googleads.v5.services.GetThirdPartyAppAnalyticsLinkRequest\x1a=.google.ads.googleads.v5.resources.ThirdPartyAppAnalyticsLink\"E\x82\xd3\xe4\x93\x02?\x12=/v5/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}\x12\x88\x02\n\x19RegenerateShareableLinkId\x12\x42.google.ads.googleads.v5.services.RegenerateShareableLinkIdRequest\x1a\x43.google.ads.googleads.v5.services.RegenerateShareableLinkIdResponse\"b\x82\xd3\xe4\x93\x02\\\"W/v5/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId:\x01*\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x8d\x02\n$com.google.ads.googleads.v5.servicesB&ThirdPartyAppAnalyticsLinkServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,]) + + + + +_GETTHIRDPARTYAPPANALYTICSLINKREQUEST = _descriptor.Descriptor( + name='GetThirdPartyAppAnalyticsLinkRequest', + full_name='google.ads.googleads.v5.services.GetThirdPartyAppAnalyticsLinkRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetThirdPartyAppAnalyticsLinkRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A5\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=281, + serialized_end=400, +) + + +_REGENERATESHAREABLELINKIDREQUEST = _descriptor.Descriptor( + name='RegenerateShareableLinkIdRequest', + full_name='google.ads.googleads.v5.services.RegenerateShareableLinkIdRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.RegenerateShareableLinkIdRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\372A5\n3googleads.googleapis.com/ThirdPartyAppAnalyticsLink', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=402, + serialized_end=517, +) + + +_REGENERATESHAREABLELINKIDRESPONSE = _descriptor.Descriptor( + name='RegenerateShareableLinkIdResponse', + full_name='google.ads.googleads.v5.services.RegenerateShareableLinkIdResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=519, + serialized_end=554, +) + +DESCRIPTOR.message_types_by_name['GetThirdPartyAppAnalyticsLinkRequest'] = _GETTHIRDPARTYAPPANALYTICSLINKREQUEST +DESCRIPTOR.message_types_by_name['RegenerateShareableLinkIdRequest'] = _REGENERATESHAREABLELINKIDREQUEST +DESCRIPTOR.message_types_by_name['RegenerateShareableLinkIdResponse'] = _REGENERATESHAREABLELINKIDRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetThirdPartyAppAnalyticsLinkRequest = _reflection.GeneratedProtocolMessageType('GetThirdPartyAppAnalyticsLinkRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETTHIRDPARTYAPPANALYTICSLINKREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.third_party_app_analytics_link_service_pb2' + , + '__doc__': """Request message for [ThirdPartyAppAnalyticsLinkService.GetThirdPartyAp + pAnalyticsLink][google.ads.googleads.v5.services.ThirdPartyAppAnalytic + sLinkService.GetThirdPartyAppAnalyticsLink]. + + Attributes: + resource_name: + Resource name of the third party app analytics link. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetThirdPartyAppAnalyticsLinkRequest) + }) +_sym_db.RegisterMessage(GetThirdPartyAppAnalyticsLinkRequest) + +RegenerateShareableLinkIdRequest = _reflection.GeneratedProtocolMessageType('RegenerateShareableLinkIdRequest', (_message.Message,), { + 'DESCRIPTOR' : _REGENERATESHAREABLELINKIDREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.third_party_app_analytics_link_service_pb2' + , + '__doc__': """Request message for [ThirdPartyAppAnalyticsLinkService.RegenerateShare + ableLinkId][google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLin + kService.RegenerateShareableLinkId]. + + Attributes: + resource_name: + Resource name of the third party app analytics link. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RegenerateShareableLinkIdRequest) + }) +_sym_db.RegisterMessage(RegenerateShareableLinkIdRequest) + +RegenerateShareableLinkIdResponse = _reflection.GeneratedProtocolMessageType('RegenerateShareableLinkIdResponse', (_message.Message,), { + 'DESCRIPTOR' : _REGENERATESHAREABLELINKIDRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.third_party_app_analytics_link_service_pb2' + , + '__doc__': """Response message for [ThirdPartyAppAnalyticsLinkService.RegenerateShar + eableLinkId][google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLi + nkService.RegenerateShareableLinkId].""", + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.RegenerateShareableLinkIdResponse) + }) +_sym_db.RegisterMessage(RegenerateShareableLinkIdResponse) + + +DESCRIPTOR._options = None +_GETTHIRDPARTYAPPANALYTICSLINKREQUEST.fields_by_name['resource_name']._options = None +_REGENERATESHAREABLELINKIDREQUEST.fields_by_name['resource_name']._options = None + +_THIRDPARTYAPPANALYTICSLINKSERVICE = _descriptor.ServiceDescriptor( + name='ThirdPartyAppAnalyticsLinkService', + full_name='google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=557, + serialized_end=1128, + methods=[ + _descriptor.MethodDescriptor( + name='GetThirdPartyAppAnalyticsLink', + full_name='google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService.GetThirdPartyAppAnalyticsLink', + index=0, + containing_service=None, + input_type=_GETTHIRDPARTYAPPANALYTICSLINKREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2._THIRDPARTYAPPANALYTICSLINK, + serialized_options=b'\202\323\344\223\002?\022=/v5/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='RegenerateShareableLinkId', + full_name='google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId', + index=1, + containing_service=None, + input_type=_REGENERATESHAREABLELINKIDREQUEST, + output_type=_REGENERATESHAREABLELINKIDRESPONSE, + serialized_options=b'\202\323\344\223\002\\\"W/v5/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId:\001*', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_THIRDPARTYAPPANALYTICSLINKSERVICE) + +DESCRIPTOR.services_by_name['ThirdPartyAppAnalyticsLinkService'] = _THIRDPARTYAPPANALYTICSLINKSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2_grpc.py new file mode 100644 index 000000000..e2c929f91 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/third_party_app_analytics_link_service_pb2_grpc.py @@ -0,0 +1,107 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import third_party_app_analytics_link_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2 +from google.ads.google_ads.v5.proto.services import third_party_app_analytics_link_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2 + + +class ThirdPartyAppAnalyticsLinkServiceStub(object): + """This service allows management of links between Google Ads and third party + app analytics. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetThirdPartyAppAnalyticsLink = channel.unary_unary( + '/google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService/GetThirdPartyAppAnalyticsLink', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.GetThirdPartyAppAnalyticsLinkRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2.ThirdPartyAppAnalyticsLink.FromString, + ) + self.RegenerateShareableLinkId = channel.unary_unary( + '/google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService/RegenerateShareableLinkId', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdResponse.FromString, + ) + + +class ThirdPartyAppAnalyticsLinkServiceServicer(object): + """This service allows management of links between Google Ads and third party + app analytics. + """ + + def GetThirdPartyAppAnalyticsLink(self, request, context): + """Returns the third party app analytics link in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RegenerateShareableLinkId(self, request, context): + """Regenerate ThirdPartyAppAnalyticsLink.shareable_link_id that should be + provided to the third party when setting up app analytics. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ThirdPartyAppAnalyticsLinkServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetThirdPartyAppAnalyticsLink': grpc.unary_unary_rpc_method_handler( + servicer.GetThirdPartyAppAnalyticsLink, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.GetThirdPartyAppAnalyticsLinkRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2.ThirdPartyAppAnalyticsLink.SerializeToString, + ), + 'RegenerateShareableLinkId': grpc.unary_unary_rpc_method_handler( + servicer.RegenerateShareableLinkId, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class ThirdPartyAppAnalyticsLinkService(object): + """This service allows management of links between Google Ads and third party + app analytics. + """ + + @staticmethod + def GetThirdPartyAppAnalyticsLink(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService/GetThirdPartyAppAnalyticsLink', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.GetThirdPartyAppAnalyticsLinkRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_third__party__app__analytics__link__pb2.ThirdPartyAppAnalyticsLink.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RegenerateShareableLinkId(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService/RegenerateShareableLinkId', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_third__party__app__analytics__link__service__pb2.RegenerateShareableLinkIdResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/topic_constant_service_pb2.py b/google/ads/google_ads/v5/proto/services/topic_constant_service_pb2.py new file mode 100644 index 000000000..7f2464fbc --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/topic_constant_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/topic_constant_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import topic_constant_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_topic__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/topic_constant_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\031TopicConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nCgoogle/ads/googleads_v5/proto/services/topic_constant_service.proto\x12 google.ads.googleads.v5.services\x1agoogle/ads/googleads_v5/proto/services/user_data_service.proto\x12 google.ads.googleads.v5.services\x1a\n\x19received_operations_count\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value2\xed\x01\n\x0fUserDataService\x12\xbc\x01\n\x0eUploadUserData\x12\x37.google.ads.googleads.v5.services.UploadUserDataRequest\x1a\x38.google.ads.googleads.v5.services.UploadUserDataResponse\"7\x82\xd3\xe4\x93\x02\x31\",/v5/customers/{customer_id=*}:uploadUserData:\x01*\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14UserDataServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,]) + + + + +_UPLOADUSERDATAREQUEST = _descriptor.Descriptor( + name='UploadUserDataRequest', + full_name='google.ads.googleads.v5.services.UploadUserDataRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.UploadUserDataRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.UploadUserDataRequest.operations', index=1, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='customer_match_user_list_metadata', full_name='google.ads.googleads.v5.services.UploadUserDataRequest.customer_match_user_list_metadata', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='metadata', full_name='google.ads.googleads.v5.services.UploadUserDataRequest.metadata', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=283, + serialized_end=530, +) + + +_USERDATAOPERATION = _descriptor.Descriptor( + name='UserDataOperation', + full_name='google.ads.googleads.v5.services.UserDataOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.UserDataOperation.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.UserDataOperation.remove', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.UserDataOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=533, + serialized_end=685, +) + + +_UPLOADUSERDATARESPONSE = _descriptor.Descriptor( + name='UploadUserDataResponse', + full_name='google.ads.googleads.v5.services.UploadUserDataResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='upload_date_time', full_name='google.ads.googleads.v5.services.UploadUserDataResponse.upload_date_time', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='received_operations_count', full_name='google.ads.googleads.v5.services.UploadUserDataResponse.received_operations_count', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=688, + serialized_end=832, +) + +_UPLOADUSERDATAREQUEST.fields_by_name['operations'].message_type = _USERDATAOPERATION +_UPLOADUSERDATAREQUEST.fields_by_name['customer_match_user_list_metadata'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2._CUSTOMERMATCHUSERLISTMETADATA +_UPLOADUSERDATAREQUEST.oneofs_by_name['metadata'].fields.append( + _UPLOADUSERDATAREQUEST.fields_by_name['customer_match_user_list_metadata']) +_UPLOADUSERDATAREQUEST.fields_by_name['customer_match_user_list_metadata'].containing_oneof = _UPLOADUSERDATAREQUEST.oneofs_by_name['metadata'] +_USERDATAOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2._USERDATA +_USERDATAOPERATION.fields_by_name['remove'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_common_dot_offline__user__data__pb2._USERDATA +_USERDATAOPERATION.oneofs_by_name['operation'].fields.append( + _USERDATAOPERATION.fields_by_name['create']) +_USERDATAOPERATION.fields_by_name['create'].containing_oneof = _USERDATAOPERATION.oneofs_by_name['operation'] +_USERDATAOPERATION.oneofs_by_name['operation'].fields.append( + _USERDATAOPERATION.fields_by_name['remove']) +_USERDATAOPERATION.fields_by_name['remove'].containing_oneof = _USERDATAOPERATION.oneofs_by_name['operation'] +_UPLOADUSERDATARESPONSE.fields_by_name['upload_date_time'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_UPLOADUSERDATARESPONSE.fields_by_name['received_operations_count'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +DESCRIPTOR.message_types_by_name['UploadUserDataRequest'] = _UPLOADUSERDATAREQUEST +DESCRIPTOR.message_types_by_name['UserDataOperation'] = _USERDATAOPERATION +DESCRIPTOR.message_types_by_name['UploadUserDataResponse'] = _UPLOADUSERDATARESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UploadUserDataRequest = _reflection.GeneratedProtocolMessageType('UploadUserDataRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADUSERDATAREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.user_data_service_pb2' + , + '__doc__': """Request message for [UserDataService.UploadUserData][google.ads.google + ads.v5.services.UserDataService.UploadUserData] + + Attributes: + customer_id: + Required. The ID of the customer for which to update the user + data. + operations: + Required. The list of operations to be done. + metadata: + Metadata of the request. + customer_match_user_list_metadata: + Metadata for data updates to a Customer Match user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadUserDataRequest) + }) +_sym_db.RegisterMessage(UploadUserDataRequest) + +UserDataOperation = _reflection.GeneratedProtocolMessageType('UserDataOperation', (_message.Message,), { + 'DESCRIPTOR' : _USERDATAOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.user_data_service_pb2' + , + '__doc__': """Operation to be made for the UploadUserDataRequest. + + Attributes: + operation: + Operation to be made for the UploadUserDataRequest. + create: + The list of user data to be appended to the user list. + remove: + The list of user data to be removed from the user list. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UserDataOperation) + }) +_sym_db.RegisterMessage(UserDataOperation) + +UploadUserDataResponse = _reflection.GeneratedProtocolMessageType('UploadUserDataResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPLOADUSERDATARESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.user_data_service_pb2' + , + '__doc__': """Response message for [UserDataService.UploadUserData][google.ads.googl + eads.v5.services.UserDataService.UploadUserData] + + Attributes: + upload_date_time: + The date time at which the request was received by API, + formatted as "yyyy-mm-dd hh:mm:ss+\|-hh:mm", e.g. "2019-01-01 + 12:32:45-08:00". + received_operations_count: + Number of upload data operations received by API. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UploadUserDataResponse) + }) +_sym_db.RegisterMessage(UploadUserDataResponse) + + +DESCRIPTOR._options = None +_UPLOADUSERDATAREQUEST.fields_by_name['customer_id']._options = None +_UPLOADUSERDATAREQUEST.fields_by_name['operations']._options = None + +_USERDATASERVICE = _descriptor.ServiceDescriptor( + name='UserDataService', + full_name='google.ads.googleads.v5.services.UserDataService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=835, + serialized_end=1072, + methods=[ + _descriptor.MethodDescriptor( + name='UploadUserData', + full_name='google.ads.googleads.v5.services.UserDataService.UploadUserData', + index=0, + containing_service=None, + input_type=_UPLOADUSERDATAREQUEST, + output_type=_UPLOADUSERDATARESPONSE, + serialized_options=b'\202\323\344\223\0021\",/v5/customers/{customer_id=*}:uploadUserData:\001*', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_USERDATASERVICE) + +DESCRIPTOR.services_by_name['UserDataService'] = _USERDATASERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/user_data_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/user_data_service_pb2_grpc.py new file mode 100644 index 000000000..00eeeede7 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_data_service_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.services import user_data_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2 + + +class UserDataServiceStub(object): + """Proto file describing the UserDataService. + + Service to manage user data uploads. + Accessible only to customers on the allow-list. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UploadUserData = channel.unary_unary( + '/google.ads.googleads.v5.services.UserDataService/UploadUserData', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataResponse.FromString, + ) + + +class UserDataServiceServicer(object): + """Proto file describing the UserDataService. + + Service to manage user data uploads. + Accessible only to customers on the allow-list. + """ + + def UploadUserData(self, request, context): + """Uploads the given user data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_UserDataServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UploadUserData': grpc.unary_unary_rpc_method_handler( + servicer.UploadUserData, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.UserDataService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class UserDataService(object): + """Proto file describing the UserDataService. + + Service to manage user data uploads. + Accessible only to customers on the allow-list. + """ + + @staticmethod + def UploadUserData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.UserDataService/UploadUserData', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__data__service__pb2.UploadUserDataResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/user_interest_service_pb2.py b/google/ads/google_ads/v5/proto/services/user_interest_service_pb2.py new file mode 100644 index 000000000..50409fe6e --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_interest_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/user_interest_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import user_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/user_interest_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\030UserInterestServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nBgoogle/ads/googleads_v5/proto/services/user_interest_service.proto\x12 google.ads.googleads.v5.services\x1a;google/ads/googleads_v5/proto/resources/user_interest.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"^\n\x16GetUserInterestRequest\x12\x44\n\rresource_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%googleads.googleapis.com/UserInterest2\xfa\x01\n\x13UserInterestService\x12\xc5\x01\n\x0fGetUserInterest\x12\x38.google.ads.googleads.v5.services.GetUserInterestRequest\x1a/.google.ads.googleads.v5.resources.UserInterest\"G\x82\xd3\xe4\x93\x02\x31\x12//v5/{resource_name=customers/*/userInterests/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xff\x01\n$com.google.ads.googleads.v5.servicesB\x18UserInterestServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETUSERINTERESTREQUEST = _descriptor.Descriptor( + name='GetUserInterestRequest', + full_name='google.ads.googleads.v5.services.GetUserInterestRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetUserInterestRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A\'\n%googleads.googleapis.com/UserInterest', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=374, +) + +DESCRIPTOR.message_types_by_name['GetUserInterestRequest'] = _GETUSERINTERESTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetUserInterestRequest = _reflection.GeneratedProtocolMessageType('GetUserInterestRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETUSERINTERESTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.user_interest_service_pb2' + , + '__doc__': """Request message for [UserInterestService.GetUserInterest][google.ads.g + oogleads.v5.services.UserInterestService.GetUserInterest]. + + Attributes: + resource_name: + Required. Resource name of the UserInterest to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetUserInterestRequest) + }) +_sym_db.RegisterMessage(GetUserInterestRequest) + + +DESCRIPTOR._options = None +_GETUSERINTERESTREQUEST.fields_by_name['resource_name']._options = None + +_USERINTERESTSERVICE = _descriptor.ServiceDescriptor( + name='UserInterestService', + full_name='google.ads.googleads.v5.services.UserInterestService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=377, + serialized_end=627, + methods=[ + _descriptor.MethodDescriptor( + name='GetUserInterest', + full_name='google.ads.googleads.v5.services.UserInterestService.GetUserInterest', + index=0, + containing_service=None, + input_type=_GETUSERINTERESTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2._USERINTEREST, + serialized_options=b'\202\323\344\223\0021\022//v5/{resource_name=customers/*/userInterests/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_USERINTERESTSERVICE) + +DESCRIPTOR.services_by_name['UserInterestService'] = _USERINTERESTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/user_interest_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/user_interest_service_pb2_grpc.py new file mode 100644 index 000000000..699b11b53 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_interest_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import user_interest_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2 +from google.ads.google_ads.v5.proto.services import user_interest_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__interest__service__pb2 + + +class UserInterestServiceStub(object): + """Proto file describing the user interest service + + Service to fetch Google Ads User Interest. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetUserInterest = channel.unary_unary( + '/google.ads.googleads.v5.services.UserInterestService/GetUserInterest', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__interest__service__pb2.GetUserInterestRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2.UserInterest.FromString, + ) + + +class UserInterestServiceServicer(object): + """Proto file describing the user interest service + + Service to fetch Google Ads User Interest. + """ + + def GetUserInterest(self, request, context): + """Returns the requested user interest in full detail + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_UserInterestServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetUserInterest': grpc.unary_unary_rpc_method_handler( + servicer.GetUserInterest, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__interest__service__pb2.GetUserInterestRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2.UserInterest.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.UserInterestService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class UserInterestService(object): + """Proto file describing the user interest service + + Service to fetch Google Ads User Interest. + """ + + @staticmethod + def GetUserInterest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.UserInterestService/GetUserInterest', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__interest__service__pb2.GetUserInterestRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__interest__pb2.UserInterest.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/user_list_service_pb2.py b/google/ads/google_ads/v5/proto/services/user_list_service_pb2.py new file mode 100644 index 000000000..918610fca --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_list_service_pb2.py @@ -0,0 +1,415 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/user_list_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import user_list_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/user_list_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\024UserListServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n>google/ads/googleads_v5/proto/services/user_list_service.proto\x12 google.ads.googleads.v5.services\x1a\x37google/ads/googleads_v5/proto/resources/user_list.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\x1a\x17google/rpc/status.proto\"V\n\x12GetUserListRequest\x12@\n\rresource_name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!googleads.googleapis.com/UserList\"\xb0\x01\n\x16MutateUserListsRequest\x12\x18\n\x0b\x63ustomer_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12L\n\noperations\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v5.services.UserListOperationB\x03\xe0\x41\x02\x12\x17\n\x0fpartial_failure\x18\x03 \x01(\x08\x12\x15\n\rvalidate_only\x18\x04 \x01(\x08\"\xe1\x01\n\x11UserListOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12=\n\x06\x63reate\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v5.resources.UserListH\x00\x12=\n\x06update\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v5.resources.UserListH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"\x95\x01\n\x17MutateUserListsResponse\x12\x31\n\x15partial_failure_error\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12G\n\x07results\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v5.services.MutateUserListResult\"-\n\x14MutateUserListResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xc3\x03\n\x0fUserListService\x12\xb5\x01\n\x0bGetUserList\x12\x34.google.ads.googleads.v5.services.GetUserListRequest\x1a+.google.ads.googleads.v5.resources.UserList\"C\x82\xd3\xe4\x93\x02-\x12+/v5/{resource_name=customers/*/userLists/*}\xda\x41\rresource_name\x12\xda\x01\n\x0fMutateUserLists\x12\x38.google.ads.googleads.v5.services.MutateUserListsRequest\x1a\x39.google.ads.googleads.v5.services.MutateUserListsResponse\"R\x82\xd3\xe4\x93\x02\x33\"./v5/customers/{customer_id=*}/userLists:mutate:\x01*\xda\x41\x16\x63ustomer_id,operations\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xfb\x01\n$com.google.ads.googleads.v5.servicesB\x14UserListServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETUSERLISTREQUEST = _descriptor.Descriptor( + name='GetUserListRequest', + full_name='google.ads.googleads.v5.services.GetUserListRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetUserListRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A#\n!googleads.googleapis.com/UserList', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=331, + serialized_end=417, +) + + +_MUTATEUSERLISTSREQUEST = _descriptor.Descriptor( + name='MutateUserListsRequest', + full_name='google.ads.googleads.v5.services.MutateUserListsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v5.services.MutateUserListsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v5.services.MutateUserListsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='partial_failure', full_name='google.ads.googleads.v5.services.MutateUserListsRequest.partial_failure', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='validate_only', full_name='google.ads.googleads.v5.services.MutateUserListsRequest.validate_only', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=420, + serialized_end=596, +) + + +_USERLISTOPERATION = _descriptor.Descriptor( + name='UserListOperation', + full_name='google.ads.googleads.v5.services.UserListOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v5.services.UserListOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v5.services.UserListOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v5.services.UserListOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v5.services.UserListOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v5.services.UserListOperation.operation', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=599, + serialized_end=824, +) + + +_MUTATEUSERLISTSRESPONSE = _descriptor.Descriptor( + name='MutateUserListsResponse', + full_name='google.ads.googleads.v5.services.MutateUserListsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='partial_failure_error', full_name='google.ads.googleads.v5.services.MutateUserListsResponse.partial_failure_error', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v5.services.MutateUserListsResponse.results', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=827, + serialized_end=976, +) + + +_MUTATEUSERLISTRESULT = _descriptor.Descriptor( + name='MutateUserListResult', + full_name='google.ads.googleads.v5.services.MutateUserListResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.MutateUserListResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=978, + serialized_end=1023, +) + +_MUTATEUSERLISTSREQUEST.fields_by_name['operations'].message_type = _USERLISTOPERATION +_USERLISTOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_USERLISTOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2._USERLIST +_USERLISTOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2._USERLIST +_USERLISTOPERATION.oneofs_by_name['operation'].fields.append( + _USERLISTOPERATION.fields_by_name['create']) +_USERLISTOPERATION.fields_by_name['create'].containing_oneof = _USERLISTOPERATION.oneofs_by_name['operation'] +_USERLISTOPERATION.oneofs_by_name['operation'].fields.append( + _USERLISTOPERATION.fields_by_name['update']) +_USERLISTOPERATION.fields_by_name['update'].containing_oneof = _USERLISTOPERATION.oneofs_by_name['operation'] +_USERLISTOPERATION.oneofs_by_name['operation'].fields.append( + _USERLISTOPERATION.fields_by_name['remove']) +_USERLISTOPERATION.fields_by_name['remove'].containing_oneof = _USERLISTOPERATION.oneofs_by_name['operation'] +_MUTATEUSERLISTSRESPONSE.fields_by_name['partial_failure_error'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_MUTATEUSERLISTSRESPONSE.fields_by_name['results'].message_type = _MUTATEUSERLISTRESULT +DESCRIPTOR.message_types_by_name['GetUserListRequest'] = _GETUSERLISTREQUEST +DESCRIPTOR.message_types_by_name['MutateUserListsRequest'] = _MUTATEUSERLISTSREQUEST +DESCRIPTOR.message_types_by_name['UserListOperation'] = _USERLISTOPERATION +DESCRIPTOR.message_types_by_name['MutateUserListsResponse'] = _MUTATEUSERLISTSRESPONSE +DESCRIPTOR.message_types_by_name['MutateUserListResult'] = _MUTATEUSERLISTRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetUserListRequest = _reflection.GeneratedProtocolMessageType('GetUserListRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETUSERLISTREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.user_list_service_pb2' + , + '__doc__': """Request message for [UserListService.GetUserList][google.ads.googleads + .v5.services.UserListService.GetUserList]. + + Attributes: + resource_name: + Required. The resource name of the user list to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetUserListRequest) + }) +_sym_db.RegisterMessage(GetUserListRequest) + +MutateUserListsRequest = _reflection.GeneratedProtocolMessageType('MutateUserListsRequest', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEUSERLISTSREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.user_list_service_pb2' + , + '__doc__': """Request message for [UserListService.MutateUserLists][google.ads.googl + eads.v5.services.UserListService.MutateUserLists]. + + Attributes: + customer_id: + Required. The ID of the customer whose user lists are being + modified. + operations: + Required. The list of operations to perform on individual user + lists. + partial_failure: + If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will + be carried out in one transaction if and only if they are all + valid. Default is false. + validate_only: + If true, the request is validated but not executed. Only + errors are returned, not results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateUserListsRequest) + }) +_sym_db.RegisterMessage(MutateUserListsRequest) + +UserListOperation = _reflection.GeneratedProtocolMessageType('UserListOperation', (_message.Message,), { + 'DESCRIPTOR' : _USERLISTOPERATION, + '__module__' : 'google.ads.googleads_v5.proto.services.user_list_service_pb2' + , + '__doc__': """A single operation (create, update) on a user list. + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + user list. + update: + Update operation: The user list is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed user list is + expected, in this format: + ``customers/{customer_id}/userLists/{user_list_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.UserListOperation) + }) +_sym_db.RegisterMessage(UserListOperation) + +MutateUserListsResponse = _reflection.GeneratedProtocolMessageType('MutateUserListsResponse', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEUSERLISTSRESPONSE, + '__module__' : 'google.ads.googleads_v5.proto.services.user_list_service_pb2' + , + '__doc__': """Response message for user list mutate. + + Attributes: + partial_failure_error: + Errors that pertain to operation failures in the partial + failure mode. Returned only when partial\_failure = true and + all errors occur inside the operations. If any errors occur + outside the operations (e.g. auth errors), we return an RPC + level error. + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateUserListsResponse) + }) +_sym_db.RegisterMessage(MutateUserListsResponse) + +MutateUserListResult = _reflection.GeneratedProtocolMessageType('MutateUserListResult', (_message.Message,), { + 'DESCRIPTOR' : _MUTATEUSERLISTRESULT, + '__module__' : 'google.ads.googleads_v5.proto.services.user_list_service_pb2' + , + '__doc__': """The result for the user list mutate. + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.MutateUserListResult) + }) +_sym_db.RegisterMessage(MutateUserListResult) + + +DESCRIPTOR._options = None +_GETUSERLISTREQUEST.fields_by_name['resource_name']._options = None +_MUTATEUSERLISTSREQUEST.fields_by_name['customer_id']._options = None +_MUTATEUSERLISTSREQUEST.fields_by_name['operations']._options = None + +_USERLISTSERVICE = _descriptor.ServiceDescriptor( + name='UserListService', + full_name='google.ads.googleads.v5.services.UserListService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=1026, + serialized_end=1477, + methods=[ + _descriptor.MethodDescriptor( + name='GetUserList', + full_name='google.ads.googleads.v5.services.UserListService.GetUserList', + index=0, + containing_service=None, + input_type=_GETUSERLISTREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2._USERLIST, + serialized_options=b'\202\323\344\223\002-\022+/v5/{resource_name=customers/*/userLists/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='MutateUserLists', + full_name='google.ads.googleads.v5.services.UserListService.MutateUserLists', + index=1, + containing_service=None, + input_type=_MUTATEUSERLISTSREQUEST, + output_type=_MUTATEUSERLISTSRESPONSE, + serialized_options=b'\202\323\344\223\0023\"./v5/customers/{customer_id=*}/userLists:mutate:\001*\332A\026customer_id,operations', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_USERLISTSERVICE) + +DESCRIPTOR.services_by_name['UserListService'] = _USERLISTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/user_list_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/user_list_service_pb2_grpc.py new file mode 100644 index 000000000..343d250eb --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_list_service_pb2_grpc.py @@ -0,0 +1,109 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import user_list_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2 +from google.ads.google_ads.v5.proto.services import user_list_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2 + + +class UserListServiceStub(object): + """Proto file describing the User List service. + + Service to manage user lists. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetUserList = channel.unary_unary( + '/google.ads.googleads.v5.services.UserListService/GetUserList', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.GetUserListRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2.UserList.FromString, + ) + self.MutateUserLists = channel.unary_unary( + '/google.ads.googleads.v5.services.UserListService/MutateUserLists', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsResponse.FromString, + ) + + +class UserListServiceServicer(object): + """Proto file describing the User List service. + + Service to manage user lists. + """ + + def GetUserList(self, request, context): + """Returns the requested user list. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateUserLists(self, request, context): + """Creates or updates user lists. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_UserListServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetUserList': grpc.unary_unary_rpc_method_handler( + servicer.GetUserList, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.GetUserListRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2.UserList.SerializeToString, + ), + 'MutateUserLists': grpc.unary_unary_rpc_method_handler( + servicer.MutateUserLists, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.UserListService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class UserListService(object): + """Proto file describing the User List service. + + Service to manage user lists. + """ + + @staticmethod + def GetUserList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.UserListService/GetUserList', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.GetUserListRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__list__pb2.UserList.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def MutateUserLists(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.UserListService/MutateUserLists', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__list__service__pb2.MutateUserListsResponse.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2.py b/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2.py new file mode 100644 index 000000000..432473a6a --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/user_location_view_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import user_location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/user_location_view_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\034UserLocationViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\nGgoogle/ads/googleads_v5/proto/services/user_location_view_service.proto\x12 google.ads.googleads.v5.services\x1a@google/ads/googleads_v5/proto/resources/user_location_view.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"f\n\x1aGetUserLocationViewRequest\x12H\n\rresource_name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)googleads.googleapis.com/UserLocationView2\x8e\x02\n\x17UserLocationViewService\x12\xd5\x01\n\x13GetUserLocationView\x12<.google.ads.googleads.v5.services.GetUserLocationViewRequest\x1a\x33.google.ads.googleads.v5.resources.UserLocationView\"K\x82\xd3\xe4\x93\x02\x35\x12\x33/v5/{resource_name=customers/*/userLocationViews/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\x83\x02\n$com.google.ads.googleads.v5.servicesB\x1cUserLocationViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETUSERLOCATIONVIEWREQUEST = _descriptor.Descriptor( + name='GetUserLocationViewRequest', + full_name='google.ads.googleads.v5.services.GetUserLocationViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetUserLocationViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A+\n)googleads.googleapis.com/UserLocationView', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=290, + serialized_end=392, +) + +DESCRIPTOR.message_types_by_name['GetUserLocationViewRequest'] = _GETUSERLOCATIONVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetUserLocationViewRequest = _reflection.GeneratedProtocolMessageType('GetUserLocationViewRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETUSERLOCATIONVIEWREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.user_location_view_service_pb2' + , + '__doc__': """Request message for [UserLocationViewService.GetUserLocationView][goog + le.ads.googleads.v5.services.UserLocationViewService.GetUserLocationVi + ew]. + + Attributes: + resource_name: + Required. The resource name of the user location view to + fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetUserLocationViewRequest) + }) +_sym_db.RegisterMessage(GetUserLocationViewRequest) + + +DESCRIPTOR._options = None +_GETUSERLOCATIONVIEWREQUEST.fields_by_name['resource_name']._options = None + +_USERLOCATIONVIEWSERVICE = _descriptor.ServiceDescriptor( + name='UserLocationViewService', + full_name='google.ads.googleads.v5.services.UserLocationViewService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=395, + serialized_end=665, + methods=[ + _descriptor.MethodDescriptor( + name='GetUserLocationView', + full_name='google.ads.googleads.v5.services.UserLocationViewService.GetUserLocationView', + index=0, + containing_service=None, + input_type=_GETUSERLOCATIONVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2._USERLOCATIONVIEW, + serialized_options=b'\202\323\344\223\0025\0223/v5/{resource_name=customers/*/userLocationViews/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_USERLOCATIONVIEWSERVICE) + +DESCRIPTOR.services_by_name['UserLocationViewService'] = _USERLOCATIONVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2_grpc.py new file mode 100644 index 000000000..fdf8cd1e9 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/user_location_view_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import user_location_view_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2 +from google.ads.google_ads.v5.proto.services import user_location_view_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__location__view__service__pb2 + + +class UserLocationViewServiceStub(object): + """Proto file describing the UserLocationView service. + + Service to manage user location views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetUserLocationView = channel.unary_unary( + '/google.ads.googleads.v5.services.UserLocationViewService/GetUserLocationView', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__location__view__service__pb2.GetUserLocationViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2.UserLocationView.FromString, + ) + + +class UserLocationViewServiceServicer(object): + """Proto file describing the UserLocationView service. + + Service to manage user location views. + """ + + def GetUserLocationView(self, request, context): + """Returns the requested user location view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_UserLocationViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetUserLocationView': grpc.unary_unary_rpc_method_handler( + servicer.GetUserLocationView, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__location__view__service__pb2.GetUserLocationViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2.UserLocationView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.UserLocationViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class UserLocationViewService(object): + """Proto file describing the UserLocationView service. + + Service to manage user location views. + """ + + @staticmethod + def GetUserLocationView(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.UserLocationViewService/GetUserLocationView', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_user__location__view__service__pb2.GetUserLocationViewRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_user__location__view__pb2.UserLocationView.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/proto/services/video_service_pb2.py b/google/ads/google_ads/v5/proto/services/video_service_pb2.py new file mode 100644 index 000000000..9510aeef3 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/video_service_pb2.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v5/proto/services/video_service.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v5.proto.resources import video_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import client_pb2 as google_dot_api_dot_client__pb2 +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v5/proto/services/video_service.proto', + package='google.ads.googleads.v5.services', + syntax='proto3', + serialized_options=b'\n$com.google.ads.googleads.v5.servicesB\021VideoServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V5.Services\312\002 Google\\Ads\\GoogleAds\\V5\\Services\352\002$Google::Ads::GoogleAds::V5::Services', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n:google/ads/googleads_v5/proto/services/video_service.proto\x12 google.ads.googleads.v5.services\x1a\x33google/ads/googleads_v5/proto/resources/video.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"P\n\x0fGetVideoRequest\x12=\n\rresource_name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1egoogleads.googleapis.com/Video2\xd7\x01\n\x0cVideoService\x12\xa9\x01\n\x08GetVideo\x12\x31.google.ads.googleads.v5.services.GetVideoRequest\x1a(.google.ads.googleads.v5.resources.Video\"@\x82\xd3\xe4\x93\x02*\x12(/v5/{resource_name=customers/*/videos/*}\xda\x41\rresource_name\x1a\x1b\xca\x41\x18googleads.googleapis.comB\xf8\x01\n$com.google.ads.googleads.v5.servicesB\x11VideoServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v5/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V5.Services\xca\x02 Google\\Ads\\GoogleAds\\V5\\Services\xea\x02$Google::Ads::GoogleAds::V5::Servicesb\x06proto3' + , + dependencies=[google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_api_dot_client__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,]) + + + + +_GETVIDEOREQUEST = _descriptor.Descriptor( + name='GetVideoRequest', + full_name='google.ads.googleads.v5.services.GetVideoRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v5.services.GetVideoRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\340A\002\372A \n\036googleads.googleapis.com/Video', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=264, + serialized_end=344, +) + +DESCRIPTOR.message_types_by_name['GetVideoRequest'] = _GETVIDEOREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetVideoRequest = _reflection.GeneratedProtocolMessageType('GetVideoRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETVIDEOREQUEST, + '__module__' : 'google.ads.googleads_v5.proto.services.video_service_pb2' + , + '__doc__': """Request message for [VideoService.GetVideo][google.ads.googleads.v5.se + rvices.VideoService.GetVideo]. + + Attributes: + resource_name: + Required. The resource name of the video to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v5.services.GetVideoRequest) + }) +_sym_db.RegisterMessage(GetVideoRequest) + + +DESCRIPTOR._options = None +_GETVIDEOREQUEST.fields_by_name['resource_name']._options = None + +_VIDEOSERVICE = _descriptor.ServiceDescriptor( + name='VideoService', + full_name='google.ads.googleads.v5.services.VideoService', + file=DESCRIPTOR, + index=0, + serialized_options=b'\312A\030googleads.googleapis.com', + create_key=_descriptor._internal_create_key, + serialized_start=347, + serialized_end=562, + methods=[ + _descriptor.MethodDescriptor( + name='GetVideo', + full_name='google.ads.googleads.v5.services.VideoService.GetVideo', + index=0, + containing_service=None, + input_type=_GETVIDEOREQUEST, + output_type=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2._VIDEO, + serialized_options=b'\202\323\344\223\002*\022(/v5/{resource_name=customers/*/videos/*}\332A\rresource_name', + create_key=_descriptor._internal_create_key, + ), +]) +_sym_db.RegisterServiceDescriptor(_VIDEOSERVICE) + +DESCRIPTOR.services_by_name['VideoService'] = _VIDEOSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v5/proto/services/video_service_pb2_grpc.py b/google/ads/google_ads/v5/proto/services/video_service_pb2_grpc.py new file mode 100644 index 000000000..2aa39a854 --- /dev/null +++ b/google/ads/google_ads/v5/proto/services/video_service_pb2_grpc.py @@ -0,0 +1,76 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from google.ads.google_ads.v5.proto.resources import video_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2 +from google.ads.google_ads.v5.proto.services import video_service_pb2 as google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_video__service__pb2 + + +class VideoServiceStub(object): + """Proto file describing the Video service. + + Service to manage videos. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetVideo = channel.unary_unary( + '/google.ads.googleads.v5.services.VideoService/GetVideo', + request_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_video__service__pb2.GetVideoRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2.Video.FromString, + ) + + +class VideoServiceServicer(object): + """Proto file describing the Video service. + + Service to manage videos. + """ + + def GetVideo(self, request, context): + """Returns the requested video in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_VideoServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetVideo': grpc.unary_unary_rpc_method_handler( + servicer.GetVideo, + request_deserializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_video__service__pb2.GetVideoRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2.Video.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v5.services.VideoService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + + + # This class is part of an EXPERIMENTAL API. +class VideoService(object): + """Proto file describing the Video service. + + Service to manage videos. + """ + + @staticmethod + def GetVideo(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/google.ads.googleads.v5.services.VideoService/GetVideo', + google_dot_ads_dot_googleads__v5_dot_proto_dot_services_dot_video__service__pb2.GetVideoRequest.SerializeToString, + google_dot_ads_dot_googleads__v5_dot_proto_dot_resources_dot_video__pb2.Video.FromString, + options, channel_credentials, + call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/google/ads/google_ads/v5/services/__init__.py b/google/ads/google_ads/v5/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/services/account_budget_proposal_service_client.py b/google/ads/google_ads/v5/services/account_budget_proposal_service_client.py new file mode 100644 index 000000000..6faddaeec --- /dev/null +++ b/google/ads/google_ads/v5/services/account_budget_proposal_service_client.py @@ -0,0 +1,319 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AccountBudgetProposalService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import account_budget_proposal_service_client_config +from google.ads.google_ads.v5.services.transports import account_budget_proposal_service_grpc_transport +from google.ads.google_ads.v5.proto.services import account_budget_proposal_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AccountBudgetProposalServiceClient(object): + """ + A service for managing account-level budgets via proposals. + + A proposal is a request to create a new budget or make changes to an + existing one. + + Reads for account-level budgets managed by these proposals will be + supported in a future version. Until then, please use the + BudgetOrderService from the AdWords API. Learn more at + https://developers.google.com/adwords/api/docs/guides/budget-order + + Mutates: + The CREATE operation creates a new proposal. + UPDATE operations aren't supported. + The REMOVE operation cancels a pending proposal. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AccountBudgetProposalService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AccountBudgetProposalServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def account_budget_proposal_path(cls, customer, account_budget_proposal): + """Return a fully-qualified account_budget_proposal string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/accountBudgetProposals/{account_budget_proposal}', + customer=customer, + account_budget_proposal=account_budget_proposal, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AccountBudgetProposalServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AccountBudgetProposalServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = account_budget_proposal_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=account_budget_proposal_service_grpc_transport.AccountBudgetProposalServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = account_budget_proposal_service_grpc_transport.AccountBudgetProposalServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_account_budget_proposal( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns an account-level budget proposal in full detail. + + Args: + resource_name (str): Required. The resource name of the account-level budget proposal to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AccountBudgetProposal` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_account_budget_proposal' not in self._inner_api_calls: + self._inner_api_calls['get_account_budget_proposal'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_account_budget_proposal, + default_retry=self._method_configs['GetAccountBudgetProposal'].retry, + default_timeout=self._method_configs['GetAccountBudgetProposal'].timeout, + client_info=self._client_info, + ) + + request = account_budget_proposal_service_pb2.GetAccountBudgetProposalRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_account_budget_proposal'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_account_budget_proposal( + self, + customer_id, + operation_, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes account budget proposals. Operation statuses + are returned. + + Args: + customer_id (str): Required. The ID of the customer. + operation_ (Union[dict, ~google.ads.googleads_v5.types.AccountBudgetProposalOperation]): Required. The operation to perform on an individual account-level budget proposal. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AccountBudgetProposalOperation` + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAccountBudgetProposalResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_account_budget_proposal' not in self._inner_api_calls: + self._inner_api_calls['mutate_account_budget_proposal'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_account_budget_proposal, + default_retry=self._method_configs['MutateAccountBudgetProposal'].retry, + default_timeout=self._method_configs['MutateAccountBudgetProposal'].timeout, + client_info=self._client_info, + ) + + request = account_budget_proposal_service_pb2.MutateAccountBudgetProposalRequest( + customer_id=customer_id, + operation=operation_, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_account_budget_proposal'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/account_budget_proposal_service_client_config.py b/google/ads/google_ads/v5/services/account_budget_proposal_service_client_config.py new file mode 100644 index 000000000..7b3b353c6 --- /dev/null +++ b/google/ads/google_ads/v5/services/account_budget_proposal_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AccountBudgetProposalService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAccountBudgetProposal": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAccountBudgetProposal": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/account_budget_service_client.py b/google/ads/google_ads/v5/services/account_budget_service_client.py new file mode 100644 index 000000000..4128be6ef --- /dev/null +++ b/google/ads/google_ads/v5/services/account_budget_service_client.py @@ -0,0 +1,242 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AccountBudgetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import account_budget_service_client_config +from google.ads.google_ads.v5.services.transports import account_budget_service_grpc_transport +from google.ads.google_ads.v5.proto.services import account_budget_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AccountBudgetServiceClient(object): + """ + A service for fetching an account-level budget. + + Account-level budgets are mutated by creating proposal resources. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AccountBudgetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AccountBudgetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def account_budget_path(cls, customer, account_budget): + """Return a fully-qualified account_budget string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/accountBudgets/{account_budget}', + customer=customer, + account_budget=account_budget, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AccountBudgetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AccountBudgetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = account_budget_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=account_budget_service_grpc_transport.AccountBudgetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = account_budget_service_grpc_transport.AccountBudgetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_account_budget( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns an account-level budget in full detail. + + Args: + resource_name (str): Required. The resource name of the account-level budget to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AccountBudget` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_account_budget' not in self._inner_api_calls: + self._inner_api_calls['get_account_budget'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_account_budget, + default_retry=self._method_configs['GetAccountBudget'].retry, + default_timeout=self._method_configs['GetAccountBudget'].timeout, + client_info=self._client_info, + ) + + request = account_budget_service_pb2.GetAccountBudgetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_account_budget'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/account_budget_service_client_config.py b/google/ads/google_ads/v5/services/account_budget_service_client_config.py new file mode 100644 index 000000000..dea80dff2 --- /dev/null +++ b/google/ads/google_ads/v5/services/account_budget_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AccountBudgetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAccountBudget": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/account_link_service_client.py b/google/ads/google_ads/v5/services/account_link_service_client.py new file mode 100644 index 000000000..1dfd92a63 --- /dev/null +++ b/google/ads/google_ads/v5/services/account_link_service_client.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AccountLinkService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import account_link_service_client_config +from google.ads.google_ads.v5.services.transports import account_link_service_grpc_transport +from google.ads.google_ads.v5.proto.services import account_link_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AccountLinkServiceClient(object): + """ + This service allows management of links between Google Ads accounts and other + accounts. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AccountLinkService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AccountLinkServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def account_link_path(cls, customer, account_link): + """Return a fully-qualified account_link string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/accountLinks/{account_link}', + customer=customer, + account_link=account_link, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AccountLinkServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AccountLinkServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = account_link_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=account_link_service_grpc_transport.AccountLinkServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = account_link_service_grpc_transport.AccountLinkServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_account_link( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the account link in full detail. + + Args: + resource_name (str): Required. Resource name of the account link. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AccountLink` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_account_link' not in self._inner_api_calls: + self._inner_api_calls['get_account_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_account_link, + default_retry=self._method_configs['GetAccountLink'].retry, + default_timeout=self._method_configs['GetAccountLink'].timeout, + client_info=self._client_info, + ) + + request = account_link_service_pb2.GetAccountLinkRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_account_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def create_account_link( + self, + customer_id, + account_link, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates an account link. + + Args: + customer_id (str): Required. The ID of the customer for which the account link is created. + account_link (Union[dict, ~google.ads.googleads_v5.types.AccountLink]): Required. The account link to be created. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AccountLink` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CreateAccountLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'create_account_link' not in self._inner_api_calls: + self._inner_api_calls['create_account_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_account_link, + default_retry=self._method_configs['CreateAccountLink'].retry, + default_timeout=self._method_configs['CreateAccountLink'].timeout, + client_info=self._client_info, + ) + + request = account_link_service_pb2.CreateAccountLinkRequest( + customer_id=customer_id, + account_link=account_link, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['create_account_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_account_link( + self, + customer_id, + operation_, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes an account link. + From V5, create is not supported through + AccountLinkService.MutateAccountLink. Please use + AccountLinkService.CreateAccountLink instead. + + Args: + customer_id (str): Required. The ID of the customer being modified. + operation_ (Union[dict, ~google.ads.googleads_v5.types.AccountLinkOperation]): Required. The operation to perform on the link. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AccountLinkOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAccountLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_account_link' not in self._inner_api_calls: + self._inner_api_calls['mutate_account_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_account_link, + default_retry=self._method_configs['MutateAccountLink'].retry, + default_timeout=self._method_configs['MutateAccountLink'].timeout, + client_info=self._client_info, + ) + + request = account_link_service_pb2.MutateAccountLinkRequest( + customer_id=customer_id, + operation=operation_, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_account_link'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/account_link_service_client_config.py b/google/ads/google_ads/v5/services/account_link_service_client_config.py new file mode 100644 index 000000000..23c02d0ad --- /dev/null +++ b/google/ads/google_ads/v5/services/account_link_service_client_config.py @@ -0,0 +1,41 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AccountLinkService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAccountLink": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "CreateAccountLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MutateAccountLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client.py b/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client.py new file mode 100644 index 000000000..384e018ce --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupAdAssetViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_ad_asset_view_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_ad_asset_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_ad_asset_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupAdAssetViewServiceClient(object): + """Service to fetch ad group ad asset views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupAdAssetViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupAdAssetViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_ad_asset_view_path(cls, customer, ad_group_ad_asset_view): + """Return a fully-qualified ad_group_ad_asset_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupAdAssetViews/{ad_group_ad_asset_view}', + customer=customer, + ad_group_ad_asset_view=ad_group_ad_asset_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupAdAssetViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupAdAssetViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_ad_asset_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_ad_asset_view_service_grpc_transport.AdGroupAdAssetViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_ad_asset_view_service_grpc_transport.AdGroupAdAssetViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_ad_asset_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group ad asset view in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group ad asset view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupAdAssetView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_ad_asset_view' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_ad_asset_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_ad_asset_view, + default_retry=self._method_configs['GetAdGroupAdAssetView'].retry, + default_timeout=self._method_configs['GetAdGroupAdAssetView'].timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_asset_view_service_pb2.GetAdGroupAdAssetViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_ad_asset_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client_config.py new file mode 100644 index 000000000..9487f8db4 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_asset_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupAdAssetViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupAdAssetView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_ad_label_service_client.py b/google/ads/google_ads/v5/services/ad_group_ad_label_service_client.py new file mode 100644 index 000000000..98a5bb6a2 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_label_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupAdLabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_ad_label_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_ad_label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_ad_label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupAdLabelServiceClient(object): + """Service to manage labels on ad group ads.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupAdLabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupAdLabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_ad_label_path(cls, customer, ad_group_ad_label): + """Return a fully-qualified ad_group_ad_label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupAdLabels/{ad_group_ad_label}', + customer=customer, + ad_group_ad_label=ad_group_ad_label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupAdLabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupAdLabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_ad_label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_ad_label_service_grpc_transport.AdGroupAdLabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_ad_label_service_grpc_transport.AdGroupAdLabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_ad_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group ad label in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group ad label to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupAdLabel` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_ad_label' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_ad_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_ad_label, + default_retry=self._method_configs['GetAdGroupAdLabel'].retry, + default_timeout=self._method_configs['GetAdGroupAdLabel'].timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_label_service_pb2.GetAdGroupAdLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_ad_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_ad_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates and removes ad group ad labels. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose ad group ad labels are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupAdLabelOperation]]): Required. The list of operations to perform on ad group ad labels. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupAdLabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupAdLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_ad_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_ad_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_ad_labels, + default_retry=self._method_configs['MutateAdGroupAdLabels'].retry, + default_timeout=self._method_configs['MutateAdGroupAdLabels'].timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_label_service_pb2.MutateAdGroupAdLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_ad_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_ad_label_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_ad_label_service_client_config.py new file mode 100644 index 000000000..5865c270f --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupAdLabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupAdLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupAdLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_ad_service_client.py b/google/ads/google_ads/v5/services/ad_group_ad_service_client.py new file mode 100644 index 000000000..e39c56af7 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupAdService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_ad_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_ad_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_ad_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupAdServiceClient(object): + """Service to manage ads in an ad group.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupAdService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupAdServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_ad_path(cls, customer, ad_group_ad): + """Return a fully-qualified ad_group_ad string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupAds/{ad_group_ad}', + customer=customer, + ad_group_ad=ad_group_ad, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupAdServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupAdServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_ad_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_ad_service_grpc_transport.AdGroupAdServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_ad_service_grpc_transport.AdGroupAdServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_ad( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad in full detail. + + Args: + resource_name (str): Required. The resource name of the ad to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupAd` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_ad' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_ad'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_ad, + default_retry=self._method_configs['GetAdGroupAd'].retry, + default_timeout=self._method_configs['GetAdGroupAd'].timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_service_pb2.GetAdGroupAdRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_ad'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_ads( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ads. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose ads are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupAdOperation]]): Required. The list of operations to perform on individual ads. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupAdOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupAdsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_ads' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_ads'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_ads, + default_retry=self._method_configs['MutateAdGroupAds'].retry, + default_timeout=self._method_configs['MutateAdGroupAds'].timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_service_pb2.MutateAdGroupAdsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_ads'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_ad_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_ad_service_client_config.py new file mode 100644 index 000000000..44b9f82d4 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_ad_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupAdService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupAd": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupAds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_audience_view_service_client.py b/google/ads/google_ads/v5/services/ad_group_audience_view_service_client.py new file mode 100644 index 000000000..73abc1db2 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_audience_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupAudienceViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_audience_view_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_audience_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_audience_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupAudienceViewServiceClient(object): + """Service to manage ad group audience views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupAudienceViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupAudienceViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_audience_view_path(cls, customer, ad_group_audience_view): + """Return a fully-qualified ad_group_audience_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupAudienceViews/{ad_group_audience_view}', + customer=customer, + ad_group_audience_view=ad_group_audience_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupAudienceViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupAudienceViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_audience_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_audience_view_service_grpc_transport.AdGroupAudienceViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_audience_view_service_grpc_transport.AdGroupAudienceViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_audience_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group audience view in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group audience view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupAudienceView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_audience_view' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_audience_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_audience_view, + default_retry=self._method_configs['GetAdGroupAudienceView'].retry, + default_timeout=self._method_configs['GetAdGroupAudienceView'].timeout, + client_info=self._client_info, + ) + + request = ad_group_audience_view_service_pb2.GetAdGroupAudienceViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_audience_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_audience_view_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_audience_view_service_client_config.py new file mode 100644 index 000000000..915a31451 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_audience_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupAudienceViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupAudienceView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client.py b/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client.py new file mode 100644 index 000000000..0a0d2707d --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupBidModifierService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_bid_modifier_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_bid_modifier_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_bid_modifier_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupBidModifierServiceClient(object): + """Service to manage ad group bid modifiers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupBidModifierService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupBidModifierServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_bid_modifier_path(cls, customer, ad_group_bid_modifier): + """Return a fully-qualified ad_group_bid_modifier string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupBidModifiers/{ad_group_bid_modifier}', + customer=customer, + ad_group_bid_modifier=ad_group_bid_modifier, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupBidModifierServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupBidModifierServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_bid_modifier_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_bid_modifier_service_grpc_transport.AdGroupBidModifierServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_bid_modifier_service_grpc_transport.AdGroupBidModifierServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_bid_modifier( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group bid modifier in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group bid modifier to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupBidModifier` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_bid_modifier' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_bid_modifier'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_bid_modifier, + default_retry=self._method_configs['GetAdGroupBidModifier'].retry, + default_timeout=self._method_configs['GetAdGroupBidModifier'].timeout, + client_info=self._client_info, + ) + + request = ad_group_bid_modifier_service_pb2.GetAdGroupBidModifierRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_bid_modifier'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_bid_modifiers( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose ad group bid modifiers are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupBidModifierOperation]]): Required. The list of operations to perform on individual ad group bid modifiers. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupBidModifierOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupBidModifiersResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_bid_modifiers' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_bid_modifiers'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_bid_modifiers, + default_retry=self._method_configs['MutateAdGroupBidModifiers'].retry, + default_timeout=self._method_configs['MutateAdGroupBidModifiers'].timeout, + client_info=self._client_info, + ) + + request = ad_group_bid_modifier_service_pb2.MutateAdGroupBidModifiersRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_bid_modifiers'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client_config.py new file mode 100644 index 000000000..bdb508f7a --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_bid_modifier_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupBidModifierService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupBidModifier": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupBidModifiers": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client.py b/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client.py new file mode 100644 index 000000000..45a9c6b3c --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupCriterionLabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_criterion_label_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_criterion_label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_criterion_label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupCriterionLabelServiceClient(object): + """Service to manage labels on ad group criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupCriterionLabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupCriterionLabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_criterion_label_path(cls, customer, ad_group_criterion_label): + """Return a fully-qualified ad_group_criterion_label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupCriterionLabels/{ad_group_criterion_label}', + customer=customer, + ad_group_criterion_label=ad_group_criterion_label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupCriterionLabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupCriterionLabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_criterion_label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_criterion_label_service_grpc_transport.AdGroupCriterionLabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_criterion_label_service_grpc_transport.AdGroupCriterionLabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_criterion_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group criterion label in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group criterion label to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupCriterionLabel` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_criterion_label' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_criterion_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_criterion_label, + default_retry=self._method_configs['GetAdGroupCriterionLabel'].retry, + default_timeout=self._method_configs['GetAdGroupCriterionLabel'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_label_service_pb2.GetAdGroupCriterionLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_criterion_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_criterion_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates and removes ad group criterion labels. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose ad group criterion labels are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupCriterionLabelOperation]]): Required. The list of operations to perform on ad group criterion labels. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupCriterionLabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupCriterionLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_criterion_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_criterion_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_criterion_labels, + default_retry=self._method_configs['MutateAdGroupCriterionLabels'].retry, + default_timeout=self._method_configs['MutateAdGroupCriterionLabels'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_label_service_pb2.MutateAdGroupCriterionLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_criterion_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client_config.py new file mode 100644 index 000000000..4c62330e2 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupCriterionLabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupCriterionLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupCriterionLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_service_client.py b/google/ads/google_ads/v5/services/ad_group_criterion_service_client.py new file mode 100644 index 000000000..62eba763f --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_criterion_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_criterion_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_criterion_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupCriterionServiceClient(object): + """Service to manage ad group criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupCriterionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_criteria_path(cls, customer, ad_group_criteria): + """Return a fully-qualified ad_group_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupCriteria/{ad_group_criteria}', + customer=customer, + ad_group_criteria=ad_group_criteria, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_criterion_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_criterion_service_grpc_transport.AdGroupCriterionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_criterion_service_grpc_transport.AdGroupCriterionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_criterion( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested criterion in full detail. + + Args: + resource_name (str): Required. The resource name of the criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_criterion' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_criterion, + default_retry=self._method_configs['GetAdGroupCriterion'].retry, + default_timeout=self._method_configs['GetAdGroupCriterion'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_service_pb2.GetAdGroupCriterionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_criterion'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_criteria( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes criteria. Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose criteria are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupCriterionOperation]]): Required. The list of operations to perform on individual criteria. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupCriterionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_criteria' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_criteria, + default_retry=self._method_configs['MutateAdGroupCriteria'].retry, + default_timeout=self._method_configs['MutateAdGroupCriteria'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_service_pb2.MutateAdGroupCriteriaRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_criteria'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_criterion_service_client_config.py new file mode 100644 index 000000000..b8f3727d8 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupCriterionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client.py b/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client.py new file mode 100644 index 000000000..c09457b8e --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupCriterionSimulationService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_criterion_simulation_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_criterion_simulation_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_criterion_simulation_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupCriterionSimulationServiceClient(object): + """Service to fetch ad group criterion simulations.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupCriterionSimulationService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupCriterionSimulationServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_criterion_simulation_path(cls, customer, ad_group_criterion_simulation): + """Return a fully-qualified ad_group_criterion_simulation string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupCriterionSimulations/{ad_group_criterion_simulation}', + customer=customer, + ad_group_criterion_simulation=ad_group_criterion_simulation, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupCriterionSimulationServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupCriterionSimulationServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_criterion_simulation_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_criterion_simulation_service_grpc_transport.AdGroupCriterionSimulationServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_criterion_simulation_service_grpc_transport.AdGroupCriterionSimulationServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_criterion_simulation( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group criterion simulation in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group criterion simulation to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupCriterionSimulation` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_criterion_simulation' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_criterion_simulation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_criterion_simulation, + default_retry=self._method_configs['GetAdGroupCriterionSimulation'].retry, + default_timeout=self._method_configs['GetAdGroupCriterionSimulation'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_simulation_service_pb2.GetAdGroupCriterionSimulationRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_criterion_simulation'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client_config.py new file mode 100644 index 000000000..0e39e4280 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_criterion_simulation_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupCriterionSimulationService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupCriterionSimulation": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client.py b/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client.py new file mode 100644 index 000000000..63efd0550 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client.py @@ -0,0 +1,312 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupExtensionSettingService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_extension_setting_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_extension_setting_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_extension_setting_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupExtensionSettingServiceClient(object): + """Service to manage ad group extension settings.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupExtensionSettingService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupExtensionSettingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_extension_setting_path(cls, customer, ad_group_extension_setting): + """Return a fully-qualified ad_group_extension_setting string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupExtensionSettings/{ad_group_extension_setting}', + customer=customer, + ad_group_extension_setting=ad_group_extension_setting, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupExtensionSettingServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupExtensionSettingServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_extension_setting_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_extension_setting_service_grpc_transport.AdGroupExtensionSettingServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_extension_setting_service_grpc_transport.AdGroupExtensionSettingServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_extension_setting( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group extension setting in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group extension setting to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupExtensionSetting` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_extension_setting' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_extension_setting'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_extension_setting, + default_retry=self._method_configs['GetAdGroupExtensionSetting'].retry, + default_timeout=self._method_configs['GetAdGroupExtensionSetting'].timeout, + client_info=self._client_info, + ) + + request = ad_group_extension_setting_service_pb2.GetAdGroupExtensionSettingRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_extension_setting'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_extension_settings( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad group extension settings. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose ad group extension settings are being + modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupExtensionSettingOperation]]): Required. The list of operations to perform on individual ad group extension + settings. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupExtensionSettingOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupExtensionSettingsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_extension_settings' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_extension_settings'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_extension_settings, + default_retry=self._method_configs['MutateAdGroupExtensionSettings'].retry, + default_timeout=self._method_configs['MutateAdGroupExtensionSettings'].timeout, + client_info=self._client_info, + ) + + request = ad_group_extension_setting_service_pb2.MutateAdGroupExtensionSettingsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_extension_settings'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client_config.py new file mode 100644 index 000000000..777c77550 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_extension_setting_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupExtensionSettingService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupExtensionSetting": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupExtensionSettings": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_feed_service_client.py b/google/ads/google_ads/v5/services/ad_group_feed_service_client.py new file mode 100644 index 000000000..37e681729 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_feed_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupFeedService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_feed_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_feed_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_feed_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupFeedServiceClient(object): + """Service to manage ad group feeds.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupFeedService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupFeedServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_feed_path(cls, customer, ad_group_feed): + """Return a fully-qualified ad_group_feed string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupFeeds/{ad_group_feed}', + customer=customer, + ad_group_feed=ad_group_feed, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupFeedServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupFeedServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_feed_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_feed_service_grpc_transport.AdGroupFeedServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_feed_service_grpc_transport.AdGroupFeedServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_feed( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group feed in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group feed to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupFeed` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_feed' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_feed'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_feed, + default_retry=self._method_configs['GetAdGroupFeed'].retry, + default_timeout=self._method_configs['GetAdGroupFeed'].timeout, + client_info=self._client_info, + ) + + request = ad_group_feed_service_pb2.GetAdGroupFeedRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_feed'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_feeds( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad group feeds. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose ad group feeds are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupFeedOperation]]): Required. The list of operations to perform on individual ad group feeds. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupFeedOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupFeedsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_feeds' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_feeds'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_feeds, + default_retry=self._method_configs['MutateAdGroupFeeds'].retry, + default_timeout=self._method_configs['MutateAdGroupFeeds'].timeout, + client_info=self._client_info, + ) + + request = ad_group_feed_service_pb2.MutateAdGroupFeedsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_feeds'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_feed_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_feed_service_client_config.py new file mode 100644 index 000000000..1babc406a --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_feed_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupFeedService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupFeed": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupFeeds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_label_service_client.py b/google/ads/google_ads/v5/services/ad_group_label_service_client.py new file mode 100644 index 000000000..f66ba4248 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_label_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupLabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_label_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupLabelServiceClient(object): + """Service to manage labels on ad groups.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupLabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupLabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_label_path(cls, customer, ad_group_label): + """Return a fully-qualified ad_group_label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupLabels/{ad_group_label}', + customer=customer, + ad_group_label=ad_group_label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupLabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupLabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_label_service_grpc_transport.AdGroupLabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_label_service_grpc_transport.AdGroupLabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group label in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group label to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupLabel` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_label' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_label, + default_retry=self._method_configs['GetAdGroupLabel'].retry, + default_timeout=self._method_configs['GetAdGroupLabel'].timeout, + client_info=self._client_info, + ) + + request = ad_group_label_service_pb2.GetAdGroupLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates and removes ad group labels. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose ad group labels are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupLabelOperation]]): Required. The list of operations to perform on ad group labels. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupLabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_group_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_labels, + default_retry=self._method_configs['MutateAdGroupLabels'].retry, + default_timeout=self._method_configs['MutateAdGroupLabels'].timeout, + client_info=self._client_info, + ) + + request = ad_group_label_service_pb2.MutateAdGroupLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_group_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_label_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_label_service_client_config.py new file mode 100644 index 000000000..2e35e711a --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupLabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_service_client.py b/google/ads/google_ads/v5/services/ad_group_service_client.py new file mode 100644 index 000000000..616f6e1f9 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupServiceClient(object): + """Service to manage ad groups.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_path(cls, customer, ad_group): + """Return a fully-qualified ad_group string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroups/{ad_group}', + customer=customer, + ad_group=ad_group, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_service_grpc_transport.AdGroupServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_service_grpc_transport.AdGroupServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroup` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group, + default_retry=self._method_configs['GetAdGroup'].retry, + default_timeout=self._method_configs['GetAdGroup'].timeout, + client_info=self._client_info, + ) + + request = ad_group_service_pb2.GetAdGroupRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_groups( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad groups. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose ad groups are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdGroupOperation]]): Required. The list of operations to perform on individual ad groups. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdGroupOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdGroupsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_groups' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_groups'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_groups, + default_retry=self._method_configs['MutateAdGroups'].retry, + default_timeout=self._method_configs['MutateAdGroups'].timeout, + client_info=self._client_info, + ) + + request = ad_group_service_pb2.MutateAdGroupsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_groups'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_service_client_config.py new file mode 100644 index 000000000..9ff23d1b7 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroup": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroups": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_group_simulation_service_client.py b/google/ads/google_ads/v5/services/ad_group_simulation_service_client.py new file mode 100644 index 000000000..a896a66cf --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_simulation_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdGroupSimulationService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_group_simulation_service_client_config +from google.ads.google_ads.v5.services.transports import ad_group_simulation_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_group_simulation_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdGroupSimulationServiceClient(object): + """Service to fetch ad group simulations.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdGroupSimulationService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupSimulationServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_group_simulation_path(cls, customer, ad_group_simulation): + """Return a fully-qualified ad_group_simulation string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupSimulations/{ad_group_simulation}', + customer=customer, + ad_group_simulation=ad_group_simulation, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdGroupSimulationServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupSimulationServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_group_simulation_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_simulation_service_grpc_transport.AdGroupSimulationServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_group_simulation_service_grpc_transport.AdGroupSimulationServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_simulation( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group simulation in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group simulation to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdGroupSimulation` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_simulation' not in self._inner_api_calls: + self._inner_api_calls['get_ad_group_simulation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_simulation, + default_retry=self._method_configs['GetAdGroupSimulation'].retry, + default_timeout=self._method_configs['GetAdGroupSimulation'].timeout, + client_info=self._client_info, + ) + + request = ad_group_simulation_service_pb2.GetAdGroupSimulationRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_group_simulation'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_group_simulation_service_client_config.py b/google/ads/google_ads/v5/services/ad_group_simulation_service_client_config.py new file mode 100644 index 000000000..ca139bf9f --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_group_simulation_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdGroupSimulationService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdGroupSimulation": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_parameter_service_client.py b/google/ads/google_ads/v5/services/ad_parameter_service_client.py new file mode 100644 index 000000000..140e303ea --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_parameter_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdParameterService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_parameter_service_client_config +from google.ads.google_ads.v5.services.transports import ad_parameter_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_parameter_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdParameterServiceClient(object): + """Service to manage ad parameters.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdParameterService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdParameterServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_parameter_path(cls, customer, ad_parameter): + """Return a fully-qualified ad_parameter string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adParameters/{ad_parameter}', + customer=customer, + ad_parameter=ad_parameter, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdParameterServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdParameterServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_parameter_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_parameter_service_grpc_transport.AdParameterServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_parameter_service_grpc_transport.AdParameterServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_parameter( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad parameter in full detail. + + Args: + resource_name (str): Required. The resource name of the ad parameter to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdParameter` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_parameter' not in self._inner_api_calls: + self._inner_api_calls['get_ad_parameter'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_parameter, + default_retry=self._method_configs['GetAdParameter'].retry, + default_timeout=self._method_configs['GetAdParameter'].timeout, + client_info=self._client_info, + ) + + request = ad_parameter_service_pb2.GetAdParameterRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_parameter'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_parameters( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad parameters. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose ad parameters are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdParameterOperation]]): Required. The list of operations to perform on individual ad parameters. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdParameterOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdParametersResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_parameters' not in self._inner_api_calls: + self._inner_api_calls['mutate_ad_parameters'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_parameters, + default_retry=self._method_configs['MutateAdParameters'].retry, + default_timeout=self._method_configs['MutateAdParameters'].timeout, + client_info=self._client_info, + ) + + request = ad_parameter_service_pb2.MutateAdParametersRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ad_parameters'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_parameter_service_client_config.py b/google/ads/google_ads/v5/services/ad_parameter_service_client_config.py new file mode 100644 index 000000000..8652d1653 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_parameter_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdParameterService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdParameter": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdParameters": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_schedule_view_service_client.py b/google/ads/google_ads/v5/services/ad_schedule_view_service_client.py new file mode 100644 index 000000000..168cc2237 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_schedule_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdScheduleViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_schedule_view_service_client_config +from google.ads.google_ads.v5.services.transports import ad_schedule_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_schedule_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdScheduleViewServiceClient(object): + """Service to fetch ad schedule views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdScheduleViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdScheduleViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_schedule_view_path(cls, customer, ad_schedule_view): + """Return a fully-qualified ad_schedule_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adScheduleViews/{ad_schedule_view}', + customer=customer, + ad_schedule_view=ad_schedule_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdScheduleViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdScheduleViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_schedule_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_schedule_view_service_grpc_transport.AdScheduleViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_schedule_view_service_grpc_transport.AdScheduleViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_schedule_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad schedule view in full detail. + + Args: + resource_name (str): Required. The resource name of the ad schedule view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AdScheduleView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_schedule_view' not in self._inner_api_calls: + self._inner_api_calls['get_ad_schedule_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_schedule_view, + default_retry=self._method_configs['GetAdScheduleView'].retry, + default_timeout=self._method_configs['GetAdScheduleView'].timeout, + client_info=self._client_info, + ) + + request = ad_schedule_view_service_pb2.GetAdScheduleViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad_schedule_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_schedule_view_service_client_config.py b/google/ads/google_ads/v5/services/ad_schedule_view_service_client_config.py new file mode 100644 index 000000000..3712db482 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_schedule_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdScheduleViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAdScheduleView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/ad_service_client.py b/google/ads/google_ads/v5/services/ad_service_client.py new file mode 100644 index 000000000..09e8dfc16 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_service_client.py @@ -0,0 +1,304 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AdService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import ad_service_client_config +from google.ads.google_ads.v5.services.transports import ad_service_grpc_transport +from google.ads.google_ads.v5.proto.services import ad_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AdServiceClient(object): + """Service to manage ads.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AdService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def ad_path(cls, customer, ad): + """Return a fully-qualified ad string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/ads/{ad}', + customer=customer, + ad=ad, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AdServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = ad_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_service_grpc_transport.AdServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = ad_service_grpc_transport.AdServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad in full detail. + + Args: + resource_name (str): Required. The resource name of the ad to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Ad` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad' not in self._inner_api_calls: + self._inner_api_calls['get_ad'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad, + default_retry=self._method_configs['GetAd'].retry, + default_timeout=self._method_configs['GetAd'].timeout, + client_info=self._client_info, + ) + + request = ad_service_pb2.GetAdRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_ad'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ads( + self, + customer_id, + operations, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Updates ads. Operation statuses are returned. Updating ads is not supported + for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. + + Args: + customer_id (str): Required. The ID of the customer whose ads are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AdOperation]]): Required. The list of operations to perform on individual ads. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AdOperation` + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAdsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ads' not in self._inner_api_calls: + self._inner_api_calls['mutate_ads'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ads, + default_retry=self._method_configs['MutateAds'].retry, + default_timeout=self._method_configs['MutateAds'].timeout, + client_info=self._client_info, + ) + + request = ad_service_pb2.MutateAdsRequest( + customer_id=customer_id, + operations=operations, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_ads'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/ad_service_client_config.py b/google/ads/google_ads/v5/services/ad_service_client_config.py new file mode 100644 index 000000000..656f2ce97 --- /dev/null +++ b/google/ads/google_ads/v5/services/ad_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AdService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAd": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/age_range_view_service_client.py b/google/ads/google_ads/v5/services/age_range_view_service_client.py new file mode 100644 index 000000000..cfcd8e506 --- /dev/null +++ b/google/ads/google_ads/v5/services/age_range_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AgeRangeViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import age_range_view_service_client_config +from google.ads.google_ads.v5.services.transports import age_range_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import age_range_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AgeRangeViewServiceClient(object): + """Service to manage age range views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AgeRangeViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AgeRangeViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def age_range_view_path(cls, customer, age_range_view): + """Return a fully-qualified age_range_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/ageRangeViews/{age_range_view}', + customer=customer, + age_range_view=age_range_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AgeRangeViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AgeRangeViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = age_range_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=age_range_view_service_grpc_transport.AgeRangeViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = age_range_view_service_grpc_transport.AgeRangeViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_age_range_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested age range view in full detail. + + Args: + resource_name (str): Required. The resource name of the age range view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AgeRangeView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_age_range_view' not in self._inner_api_calls: + self._inner_api_calls['get_age_range_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_age_range_view, + default_retry=self._method_configs['GetAgeRangeView'].retry, + default_timeout=self._method_configs['GetAgeRangeView'].timeout, + client_info=self._client_info, + ) + + request = age_range_view_service_pb2.GetAgeRangeViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_age_range_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/age_range_view_service_client_config.py b/google/ads/google_ads/v5/services/age_range_view_service_client_config.py new file mode 100644 index 000000000..5273d1623 --- /dev/null +++ b/google/ads/google_ads/v5/services/age_range_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AgeRangeViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAgeRangeView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/asset_service_client.py b/google/ads/google_ads/v5/services/asset_service_client.py new file mode 100644 index 000000000..0b17e2307 --- /dev/null +++ b/google/ads/google_ads/v5/services/asset_service_client.py @@ -0,0 +1,307 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services AssetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import asset_service_client_config +from google.ads.google_ads.v5.services.transports import asset_service_grpc_transport +from google.ads.google_ads.v5.proto.services import asset_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class AssetServiceClient(object): + """ + Service to manage assets. Asset types can be created with AssetService are + YoutubeVideoAsset, MediaBundleAsset and ImageAsset. TextAsset should be + created with Ad inline. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.AssetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AssetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def asset_path(cls, customer, asset): + """Return a fully-qualified asset string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/assets/{asset}', + customer=customer, + asset=asset, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.AssetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AssetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = asset_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=asset_service_grpc_transport.AssetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = asset_service_grpc_transport.AssetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_asset( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested asset in full detail. + + Args: + resource_name (str): Required. The resource name of the asset to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Asset` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_asset' not in self._inner_api_calls: + self._inner_api_calls['get_asset'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_asset, + default_retry=self._method_configs['GetAsset'].retry, + default_timeout=self._method_configs['GetAsset'].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.GetAssetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_asset'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_assets( + self, + customer_id, + operations, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates assets. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose assets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.AssetOperation]]): Required. The list of operations to perform on individual assets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.AssetOperation` + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateAssetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_assets' not in self._inner_api_calls: + self._inner_api_calls['mutate_assets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_assets, + default_retry=self._method_configs['MutateAssets'].retry, + default_timeout=self._method_configs['MutateAssets'].timeout, + client_info=self._client_info, + ) + + request = asset_service_pb2.MutateAssetsRequest( + customer_id=customer_id, + operations=operations, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_assets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/asset_service_client_config.py b/google/ads/google_ads/v5/services/asset_service_client_config.py new file mode 100644 index 000000000..df812dfb9 --- /dev/null +++ b/google/ads/google_ads/v5/services/asset_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.AssetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetAsset": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAssets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/batch_job_service_client.py b/google/ads/google_ads/v5/services/batch_job_service_client.py new file mode 100644 index 000000000..fcbdac5f7 --- /dev/null +++ b/google/ads/google_ads/v5/services/batch_job_service_client.py @@ -0,0 +1,521 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services BatchJobService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.operation +import google.api_core.operations_v1 +import google.api_core.page_iterator +import google.api_core.path_template + +from google.ads.google_ads.v5.services import batch_job_service_client_config +from google.ads.google_ads.v5.services.transports import batch_job_service_grpc_transport +from google.ads.google_ads.v5.proto.resources import batch_job_pb2 +from google.ads.google_ads.v5.proto.services import batch_job_service_pb2 +from google.protobuf import empty_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class BatchJobServiceClient(object): + """Service to manage batch jobs.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.BatchJobService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + BatchJobServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def batch_job_path(cls, customer, batch_job): + """Return a fully-qualified batch_job string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/batchJobs/{batch_job}', + customer=customer, + batch_job=batch_job, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.BatchJobServiceGrpcTransport, + Callable[[~.Credentials, type], ~.BatchJobServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = batch_job_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=batch_job_service_grpc_transport.BatchJobServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = batch_job_service_grpc_transport.BatchJobServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def mutate_batch_job( + self, + customer_id, + operation_, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Mutates a batch job. + + Args: + customer_id (str): Required. The ID of the customer for which to create a batch job. + operation_ (Union[dict, ~google.ads.googleads_v5.types.BatchJobOperation]): Required. The operation to perform on an individual batch job. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.BatchJobOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateBatchJobResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_batch_job' not in self._inner_api_calls: + self._inner_api_calls['mutate_batch_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_batch_job, + default_retry=self._method_configs['MutateBatchJob'].retry, + default_timeout=self._method_configs['MutateBatchJob'].timeout, + client_info=self._client_info, + ) + + request = batch_job_service_pb2.MutateBatchJobRequest( + customer_id=customer_id, + operation=operation_, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_batch_job'](request, retry=retry, timeout=timeout, metadata=metadata) + + def get_batch_job( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the batch job. + + Args: + resource_name (str): Required. The resource name of the batch job to get. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.BatchJob` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_batch_job' not in self._inner_api_calls: + self._inner_api_calls['get_batch_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_batch_job, + default_retry=self._method_configs['GetBatchJob'].retry, + default_timeout=self._method_configs['GetBatchJob'].timeout, + client_info=self._client_info, + ) + + request = batch_job_service_pb2.GetBatchJobRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_batch_job'](request, retry=retry, timeout=timeout, metadata=metadata) + + def list_batch_job_results( + self, + resource_name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the results of the batch job. The job must be done. + Supports standard list paging. + + Args: + resource_name (str): Required. The resource name of the batch job whose results are being listed. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.BatchJobResult` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_batch_job_results' not in self._inner_api_calls: + self._inner_api_calls['list_batch_job_results'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_batch_job_results, + default_retry=self._method_configs['ListBatchJobResults'].retry, + default_timeout=self._method_configs['ListBatchJobResults'].timeout, + client_info=self._client_info, + ) + + request = batch_job_service_pb2.ListBatchJobResultsRequest( + resource_name=resource_name, + page_size=page_size, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['list_batch_job_results'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator + + def run_batch_job( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Runs the batch job. + + The Operation.metadata field type is BatchJobMetadata. When finished, the + long running operation will not contain errors or a response. Instead, use + ListBatchJobResults to get the results of the job. + + Args: + resource_name (str): Required. The resource name of the BatchJob to run. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types._OperationFuture` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'run_batch_job' not in self._inner_api_calls: + self._inner_api_calls['run_batch_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_batch_job, + default_retry=self._method_configs['RunBatchJob'].retry, + default_timeout=self._method_configs['RunBatchJob'].timeout, + client_info=self._client_info, + ) + + request = batch_job_service_pb2.RunBatchJobRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + operation = self._inner_api_calls['run_batch_job'](request, retry=retry, timeout=timeout, metadata=metadata) + return google.api_core.operation.from_gapic( + operation, + self.transport._operations_client, + empty_pb2.Empty, + metadata_type=batch_job_pb2.BatchJob.BatchJobMetadata, + ) + + def add_batch_job_operations( + self, + resource_name, + sequence_token, + mutate_operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Add operations to the batch job. + + Args: + resource_name (str): Required. The resource name of the batch job. + sequence_token (str): A token used to enforce sequencing. + + The first AddBatchJobOperations request for a batch job should not set + sequence\_token. Subsequent requests must set sequence\_token to the + value of next\_sequence\_token received in the previous + AddBatchJobOperations response. + mutate_operations (list[Union[dict, ~google.ads.googleads_v5.types.MutateOperation]]): Required. The list of mutates being added. + + Operations can use negative integers as temp ids to signify dependencies + between entities created in this batch job. For example, a customer with + id = 1234 can create a campaign and an ad group in that same campaign by + creating a campaign in the first operation with the resource name + explicitly set to "customers/1234/campaigns/-1", and creating an ad group + in the second operation with the campaign field also set to + "customers/1234/campaigns/-1". + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.MutateOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AddBatchJobOperationsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'add_batch_job_operations' not in self._inner_api_calls: + self._inner_api_calls['add_batch_job_operations'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.add_batch_job_operations, + default_retry=self._method_configs['AddBatchJobOperations'].retry, + default_timeout=self._method_configs['AddBatchJobOperations'].timeout, + client_info=self._client_info, + ) + + request = batch_job_service_pb2.AddBatchJobOperationsRequest( + resource_name=resource_name, + sequence_token=sequence_token, + mutate_operations=mutate_operations, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['add_batch_job_operations'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/batch_job_service_client_config.py b/google/ads/google_ads/v5/services/batch_job_service_client_config.py new file mode 100644 index 000000000..51cc861da --- /dev/null +++ b/google/ads/google_ads/v5/services/batch_job_service_client_config.py @@ -0,0 +1,51 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.BatchJobService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "MutateBatchJob": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetBatchJob": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "ListBatchJobResults": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "RunBatchJob": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "AddBatchJobOperations": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/bidding_strategy_service_client.py b/google/ads/google_ads/v5/services/bidding_strategy_service_client.py new file mode 100644 index 000000000..854b9ad26 --- /dev/null +++ b/google/ads/google_ads/v5/services/bidding_strategy_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services BiddingStrategyService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import bidding_strategy_service_client_config +from google.ads.google_ads.v5.services.transports import bidding_strategy_service_grpc_transport +from google.ads.google_ads.v5.proto.services import bidding_strategy_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class BiddingStrategyServiceClient(object): + """Service to manage bidding strategies.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.BiddingStrategyService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + BiddingStrategyServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def bidding_strategy_path(cls, customer, bidding_strategy): + """Return a fully-qualified bidding_strategy string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/biddingStrategies/{bidding_strategy}', + customer=customer, + bidding_strategy=bidding_strategy, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.BiddingStrategyServiceGrpcTransport, + Callable[[~.Credentials, type], ~.BiddingStrategyServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = bidding_strategy_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=bidding_strategy_service_grpc_transport.BiddingStrategyServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = bidding_strategy_service_grpc_transport.BiddingStrategyServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_bidding_strategy( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested bidding strategy in full detail. + + Args: + resource_name (str): Required. The resource name of the bidding strategy to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.BiddingStrategy` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_bidding_strategy' not in self._inner_api_calls: + self._inner_api_calls['get_bidding_strategy'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_bidding_strategy, + default_retry=self._method_configs['GetBiddingStrategy'].retry, + default_timeout=self._method_configs['GetBiddingStrategy'].timeout, + client_info=self._client_info, + ) + + request = bidding_strategy_service_pb2.GetBiddingStrategyRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_bidding_strategy'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_bidding_strategies( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes bidding strategies. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose bidding strategies are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.BiddingStrategyOperation]]): Required. The list of operations to perform on individual bidding strategies. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.BiddingStrategyOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateBiddingStrategiesResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_bidding_strategies' not in self._inner_api_calls: + self._inner_api_calls['mutate_bidding_strategies'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_bidding_strategies, + default_retry=self._method_configs['MutateBiddingStrategies'].retry, + default_timeout=self._method_configs['MutateBiddingStrategies'].timeout, + client_info=self._client_info, + ) + + request = bidding_strategy_service_pb2.MutateBiddingStrategiesRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_bidding_strategies'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/bidding_strategy_service_client_config.py b/google/ads/google_ads/v5/services/bidding_strategy_service_client_config.py new file mode 100644 index 000000000..ff7bd7ec2 --- /dev/null +++ b/google/ads/google_ads/v5/services/bidding_strategy_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.BiddingStrategyService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetBiddingStrategy": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateBiddingStrategies": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/billing_setup_service_client.py b/google/ads/google_ads/v5/services/billing_setup_service_client.py new file mode 100644 index 000000000..185bf2f3a --- /dev/null +++ b/google/ads/google_ads/v5/services/billing_setup_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services BillingSetupService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import billing_setup_service_client_config +from google.ads.google_ads.v5.services.transports import billing_setup_service_grpc_transport +from google.ads.google_ads.v5.proto.services import billing_setup_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class BillingSetupServiceClient(object): + """ + A service for designating the business entity responsible for accrued costs. + + A billing setup is associated with a payments account. Billing-related + activity for all billing setups associated with a particular payments account + will appear on a single invoice generated monthly. + + Mutates: + The REMOVE operation cancels a pending billing setup. + The CREATE operation creates a new billing setup. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.BillingSetupService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + BillingSetupServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def billing_setup_path(cls, customer, billing_setup): + """Return a fully-qualified billing_setup string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/billingSetups/{billing_setup}', + customer=customer, + billing_setup=billing_setup, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.BillingSetupServiceGrpcTransport, + Callable[[~.Credentials, type], ~.BillingSetupServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = billing_setup_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=billing_setup_service_grpc_transport.BillingSetupServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = billing_setup_service_grpc_transport.BillingSetupServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_billing_setup( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns a billing setup. + + Args: + resource_name (str): Required. The resource name of the billing setup to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.BillingSetup` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_billing_setup' not in self._inner_api_calls: + self._inner_api_calls['get_billing_setup'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_billing_setup, + default_retry=self._method_configs['GetBillingSetup'].retry, + default_timeout=self._method_configs['GetBillingSetup'].timeout, + client_info=self._client_info, + ) + + request = billing_setup_service_pb2.GetBillingSetupRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_billing_setup'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_billing_setup( + self, + customer_id, + operation_, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates a billing setup, or cancels an existing billing setup. + + Args: + customer_id (str): Required. Id of the customer to apply the billing setup mutate operation to. + operation_ (Union[dict, ~google.ads.googleads_v5.types.BillingSetupOperation]): Required. The operation to perform. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.BillingSetupOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateBillingSetupResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_billing_setup' not in self._inner_api_calls: + self._inner_api_calls['mutate_billing_setup'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_billing_setup, + default_retry=self._method_configs['MutateBillingSetup'].retry, + default_timeout=self._method_configs['MutateBillingSetup'].timeout, + client_info=self._client_info, + ) + + request = billing_setup_service_pb2.MutateBillingSetupRequest( + customer_id=customer_id, + operation=operation_, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_billing_setup'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/billing_setup_service_client_config.py b/google/ads/google_ads/v5/services/billing_setup_service_client_config.py new file mode 100644 index 000000000..4a6516ca8 --- /dev/null +++ b/google/ads/google_ads/v5/services/billing_setup_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.BillingSetupService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetBillingSetup": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateBillingSetup": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_asset_service_client.py b/google/ads/google_ads/v5/services/campaign_asset_service_client.py new file mode 100644 index 000000000..b2f77abe8 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_asset_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignAssetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_asset_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_asset_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_asset_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignAssetServiceClient(object): + """Service to manage campaign assets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignAssetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignAssetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_asset_path(cls, customer, campaign_asset): + """Return a fully-qualified campaign_asset string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignAssets/{campaign_asset}', + customer=customer, + campaign_asset=campaign_asset, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignAssetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignAssetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_asset_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_asset_service_grpc_transport.CampaignAssetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_asset_service_grpc_transport.CampaignAssetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_asset( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign asset in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign asset to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignAsset` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_asset' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_asset'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_asset, + default_retry=self._method_configs['GetCampaignAsset'].retry, + default_timeout=self._method_configs['GetCampaignAsset'].timeout, + client_info=self._client_info, + ) + + request = campaign_asset_service_pb2.GetCampaignAssetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_asset'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_assets( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes campaign assets. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign assets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignAssetOperation]]): Required. The list of operations to perform on individual campaign assets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignAssetOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignAssetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_assets' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_assets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_assets, + default_retry=self._method_configs['MutateCampaignAssets'].retry, + default_timeout=self._method_configs['MutateCampaignAssets'].timeout, + client_info=self._client_info, + ) + + request = campaign_asset_service_pb2.MutateCampaignAssetsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_assets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_asset_service_client_config.py b/google/ads/google_ads/v5/services/campaign_asset_service_client_config.py new file mode 100644 index 000000000..b6e063ca6 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_asset_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignAssetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignAsset": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignAssets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_audience_view_service_client.py b/google/ads/google_ads/v5/services/campaign_audience_view_service_client.py new file mode 100644 index 000000000..1b51ce6f6 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_audience_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignAudienceViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_audience_view_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_audience_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_audience_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignAudienceViewServiceClient(object): + """Service to manage campaign audience views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignAudienceViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignAudienceViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_audience_view_path(cls, customer, campaign_audience_view): + """Return a fully-qualified campaign_audience_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignAudienceViews/{campaign_audience_view}', + customer=customer, + campaign_audience_view=campaign_audience_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignAudienceViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignAudienceViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_audience_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_audience_view_service_grpc_transport.CampaignAudienceViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_audience_view_service_grpc_transport.CampaignAudienceViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_audience_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign audience view in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign audience view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignAudienceView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_audience_view' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_audience_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_audience_view, + default_retry=self._method_configs['GetCampaignAudienceView'].retry, + default_timeout=self._method_configs['GetCampaignAudienceView'].timeout, + client_info=self._client_info, + ) + + request = campaign_audience_view_service_pb2.GetCampaignAudienceViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_audience_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_audience_view_service_client_config.py b/google/ads/google_ads/v5/services/campaign_audience_view_service_client_config.py new file mode 100644 index 000000000..d016c78c7 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_audience_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignAudienceViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignAudienceView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client.py b/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client.py new file mode 100644 index 000000000..9e9bffe2e --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignBidModifierService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_bid_modifier_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_bid_modifier_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_bid_modifier_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignBidModifierServiceClient(object): + """Service to manage campaign bid modifiers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignBidModifierService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignBidModifierServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_bid_modifier_path(cls, customer, campaign_bid_modifier): + """Return a fully-qualified campaign_bid_modifier string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignBidModifiers/{campaign_bid_modifier}', + customer=customer, + campaign_bid_modifier=campaign_bid_modifier, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignBidModifierServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignBidModifierServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_bid_modifier_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_bid_modifier_service_grpc_transport.CampaignBidModifierServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_bid_modifier_service_grpc_transport.CampaignBidModifierServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_bid_modifier( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign bid modifier in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign bid modifier to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignBidModifier` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_bid_modifier' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_bid_modifier'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_bid_modifier, + default_retry=self._method_configs['GetCampaignBidModifier'].retry, + default_timeout=self._method_configs['GetCampaignBidModifier'].timeout, + client_info=self._client_info, + ) + + request = campaign_bid_modifier_service_pb2.GetCampaignBidModifierRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_bid_modifier'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_bid_modifiers( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign bid modifiers. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose campaign bid modifiers are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignBidModifierOperation]]): Required. The list of operations to perform on individual campaign bid modifiers. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignBidModifierOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignBidModifiersResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_bid_modifiers' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_bid_modifiers'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_bid_modifiers, + default_retry=self._method_configs['MutateCampaignBidModifiers'].retry, + default_timeout=self._method_configs['MutateCampaignBidModifiers'].timeout, + client_info=self._client_info, + ) + + request = campaign_bid_modifier_service_pb2.MutateCampaignBidModifiersRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_bid_modifiers'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client_config.py b/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client_config.py new file mode 100644 index 000000000..cc203bcb7 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_bid_modifier_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignBidModifierService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignBidModifier": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignBidModifiers": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_budget_service_client.py b/google/ads/google_ads/v5/services/campaign_budget_service_client.py new file mode 100644 index 000000000..7aba3ee88 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_budget_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignBudgetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_budget_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_budget_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_budget_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignBudgetServiceClient(object): + """Service to manage campaign budgets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignBudgetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignBudgetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_budget_path(cls, customer, campaign_budget): + """Return a fully-qualified campaign_budget string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignBudgets/{campaign_budget}', + customer=customer, + campaign_budget=campaign_budget, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignBudgetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignBudgetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_budget_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_budget_service_grpc_transport.CampaignBudgetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_budget_service_grpc_transport.CampaignBudgetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_budget( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Campaign Budget in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign budget to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignBudget` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_budget' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_budget'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_budget, + default_retry=self._method_configs['GetCampaignBudget'].retry, + default_timeout=self._method_configs['GetCampaignBudget'].timeout, + client_info=self._client_info, + ) + + request = campaign_budget_service_pb2.GetCampaignBudgetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_budget'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_budgets( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign budgets. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign budgets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignBudgetOperation]]): Required. The list of operations to perform on individual campaign budgets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignBudgetOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignBudgetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_budgets' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_budgets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_budgets, + default_retry=self._method_configs['MutateCampaignBudgets'].retry, + default_timeout=self._method_configs['MutateCampaignBudgets'].timeout, + client_info=self._client_info, + ) + + request = campaign_budget_service_pb2.MutateCampaignBudgetsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_budgets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_budget_service_client_config.py b/google/ads/google_ads/v5/services/campaign_budget_service_client_config.py new file mode 100644 index 000000000..0e83f8b74 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_budget_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignBudgetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignBudget": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignBudgets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_criterion_service_client.py b/google/ads/google_ads/v5/services/campaign_criterion_service_client.py new file mode 100644 index 000000000..c45230dad --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_criterion_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_criterion_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_criterion_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_criterion_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignCriterionServiceClient(object): + """Service to manage campaign criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignCriterionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_criteria_path(cls, customer, campaign_criteria): + """Return a fully-qualified campaign_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignCriteria/{campaign_criteria}', + customer=customer, + campaign_criteria=campaign_criteria, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_criterion_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_criterion_service_grpc_transport.CampaignCriterionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_criterion_service_grpc_transport.CampaignCriterionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_criterion( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested criterion in full detail. + + Args: + resource_name (str): Required. The resource name of the criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_criterion' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_criterion, + default_retry=self._method_configs['GetCampaignCriterion'].retry, + default_timeout=self._method_configs['GetCampaignCriterion'].timeout, + client_info=self._client_info, + ) + + request = campaign_criterion_service_pb2.GetCampaignCriterionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_criterion'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_criteria( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes criteria. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose criteria are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignCriterionOperation]]): Required. The list of operations to perform on individual criteria. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignCriterionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_criteria' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_criteria, + default_retry=self._method_configs['MutateCampaignCriteria'].retry, + default_timeout=self._method_configs['MutateCampaignCriteria'].timeout, + client_info=self._client_info, + ) + + request = campaign_criterion_service_pb2.MutateCampaignCriteriaRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_criteria'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_criterion_service_client_config.py b/google/ads/google_ads/v5/services/campaign_criterion_service_client_config.py new file mode 100644 index 000000000..b9ecec0e6 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_criterion_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignCriterionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client.py b/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client.py new file mode 100644 index 000000000..1a0e17c5e --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignCriterionSimulationService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_criterion_simulation_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_criterion_simulation_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_criterion_simulation_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignCriterionSimulationServiceClient(object): + """Service to fetch campaign criterion simulations.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignCriterionSimulationService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignCriterionSimulationServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_criterion_simulation_path(cls, customer, campaign_criterion_simulation): + """Return a fully-qualified campaign_criterion_simulation string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignCriterionSimulations/{campaign_criterion_simulation}', + customer=customer, + campaign_criterion_simulation=campaign_criterion_simulation, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignCriterionSimulationServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignCriterionSimulationServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_criterion_simulation_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_criterion_simulation_service_grpc_transport.CampaignCriterionSimulationServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_criterion_simulation_service_grpc_transport.CampaignCriterionSimulationServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_criterion_simulation( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign criterion simulation in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign criterion simulation to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignCriterionSimulation` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_criterion_simulation' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_criterion_simulation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_criterion_simulation, + default_retry=self._method_configs['GetCampaignCriterionSimulation'].retry, + default_timeout=self._method_configs['GetCampaignCriterionSimulation'].timeout, + client_info=self._client_info, + ) + + request = campaign_criterion_simulation_service_pb2.GetCampaignCriterionSimulationRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_criterion_simulation'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client_config.py b/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client_config.py new file mode 100644 index 000000000..ce76916a0 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_criterion_simulation_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignCriterionSimulationService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignCriterionSimulation": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_draft_service_client.py b/google/ads/google_ads/v5/services/campaign_draft_service_client.py new file mode 100644 index 000000000..92f7311ce --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_draft_service_client.py @@ -0,0 +1,463 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignDraftService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.operation +import google.api_core.operations_v1 +import google.api_core.page_iterator +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_draft_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_draft_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_draft_service_pb2 +from google.protobuf import empty_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignDraftServiceClient(object): + """Service to manage campaign drafts.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignDraftService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignDraftServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_draft_path(cls, customer, campaign_draft): + """Return a fully-qualified campaign_draft string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignDrafts/{campaign_draft}', + customer=customer, + campaign_draft=campaign_draft, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignDraftServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignDraftServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_draft_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_draft_service_grpc_transport.CampaignDraftServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_draft_service_grpc_transport.CampaignDraftServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_draft( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign draft in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign draft to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignDraft` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_draft' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_draft'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_draft, + default_retry=self._method_configs['GetCampaignDraft'].retry, + default_timeout=self._method_configs['GetCampaignDraft'].timeout, + client_info=self._client_info, + ) + + request = campaign_draft_service_pb2.GetCampaignDraftRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_draft'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_drafts( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign drafts. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign drafts are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignDraftOperation]]): Required. The list of operations to perform on individual campaign drafts. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignDraftOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignDraftsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_drafts' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_drafts'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_drafts, + default_retry=self._method_configs['MutateCampaignDrafts'].retry, + default_timeout=self._method_configs['MutateCampaignDrafts'].timeout, + client_info=self._client_info, + ) + + request = campaign_draft_service_pb2.MutateCampaignDraftsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_drafts'](request, retry=retry, timeout=timeout, metadata=metadata) + + def promote_campaign_draft( + self, + campaign_draft, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Promotes the changes in a draft back to the base campaign. + + This method returns a Long Running Operation (LRO) indicating if the + Promote is done. Use [Operations.GetOperation] to poll the LRO until it + is done. Only a done status is returned in the response. See the status + in the Campaign Draft resource to determine if the promotion was + successful. If the LRO failed, use + ``CampaignDraftService.ListCampaignDraftAsyncErrors`` to view the list + of error reasons. + + Args: + campaign_draft (str): Required. The resource name of the campaign draft to promote. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types._OperationFuture` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'promote_campaign_draft' not in self._inner_api_calls: + self._inner_api_calls['promote_campaign_draft'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.promote_campaign_draft, + default_retry=self._method_configs['PromoteCampaignDraft'].retry, + default_timeout=self._method_configs['PromoteCampaignDraft'].timeout, + client_info=self._client_info, + ) + + request = campaign_draft_service_pb2.PromoteCampaignDraftRequest( + campaign_draft=campaign_draft, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('campaign_draft', campaign_draft)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + operation = self._inner_api_calls['promote_campaign_draft'](request, retry=retry, timeout=timeout, metadata=metadata) + return google.api_core.operation.from_gapic( + operation, + self.transport._operations_client, + empty_pb2.Empty, + metadata_type=empty_pb2.Empty, + ) + + def list_campaign_draft_async_errors( + self, + resource_name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all errors that occurred during CampaignDraft promote. Throws an + error if called before campaign draft is promoted. + Supports standard list paging. + + Args: + resource_name (str): Required. The name of the campaign draft from which to retrieve the async errors. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.Status` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_campaign_draft_async_errors' not in self._inner_api_calls: + self._inner_api_calls['list_campaign_draft_async_errors'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_campaign_draft_async_errors, + default_retry=self._method_configs['ListCampaignDraftAsyncErrors'].retry, + default_timeout=self._method_configs['ListCampaignDraftAsyncErrors'].timeout, + client_info=self._client_info, + ) + + request = campaign_draft_service_pb2.ListCampaignDraftAsyncErrorsRequest( + resource_name=resource_name, + page_size=page_size, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['list_campaign_draft_async_errors'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='errors', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v5/services/campaign_draft_service_client_config.py b/google/ads/google_ads/v5/services/campaign_draft_service_client_config.py new file mode 100644 index 000000000..d5e260780 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_draft_service_client_config.py @@ -0,0 +1,46 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignDraftService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignDraft": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignDrafts": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "PromoteCampaignDraft": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListCampaignDraftAsyncErrors": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_experiment_service_client.py b/google/ads/google_ads/v5/services/campaign_experiment_service_client.py new file mode 100644 index 000000000..f36f7e03c --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_experiment_service_client.py @@ -0,0 +1,665 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignExperimentService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.operation +import google.api_core.operations_v1 +import google.api_core.page_iterator +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_experiment_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_experiment_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_experiment_service_pb2 +from google.protobuf import empty_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignExperimentServiceClient(object): + """ + CampaignExperimentService manages the life cycle of campaign experiments. + It is used to create new experiments from drafts, modify experiment + properties, promote changes in an experiment back to its base campaign, + graduate experiments into new stand-alone campaigns, and to remove an + experiment. + + An experiment consists of two variants or arms - the base campaign and the + experiment campaign, directing a fixed share of traffic to each arm. + A campaign experiment is created from a draft of changes to the base campaign + and will be a snapshot of changes in the draft at the time of creation. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignExperimentService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignExperimentServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_experiment_path(cls, customer, campaign_experiment): + """Return a fully-qualified campaign_experiment string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignExperiments/{campaign_experiment}', + customer=customer, + campaign_experiment=campaign_experiment, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignExperimentServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignExperimentServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_experiment_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_experiment_service_grpc_transport.CampaignExperimentServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_experiment_service_grpc_transport.CampaignExperimentServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_experiment( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign experiment in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign experiment to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignExperiment` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_experiment' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_experiment'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_experiment, + default_retry=self._method_configs['GetCampaignExperiment'].retry, + default_timeout=self._method_configs['GetCampaignExperiment'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.GetCampaignExperimentRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_experiment'](request, retry=retry, timeout=timeout, metadata=metadata) + + def create_campaign_experiment( + self, + customer_id, + campaign_experiment, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates a campaign experiment based on a campaign draft. The draft campaign + will be forked into a real campaign (called the experiment campaign) that + will begin serving ads if successfully created. + + The campaign experiment is created immediately with status INITIALIZING. + This method return a long running operation that tracks the forking of the + draft campaign. If the forking fails, a list of errors can be retrieved + using the ListCampaignExperimentAsyncErrors method. The operation's + metadata will be a StringValue containing the resource name of the created + campaign experiment. + + Args: + customer_id (str): Required. The ID of the customer whose campaign experiment is being created. + campaign_experiment (Union[dict, ~google.ads.googleads_v5.types.CampaignExperiment]): Required. The campaign experiment to be created. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignExperiment` + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types._OperationFuture` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'create_campaign_experiment' not in self._inner_api_calls: + self._inner_api_calls['create_campaign_experiment'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_campaign_experiment, + default_retry=self._method_configs['CreateCampaignExperiment'].retry, + default_timeout=self._method_configs['CreateCampaignExperiment'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.CreateCampaignExperimentRequest( + customer_id=customer_id, + campaign_experiment=campaign_experiment, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + operation = self._inner_api_calls['create_campaign_experiment'](request, retry=retry, timeout=timeout, metadata=metadata) + return google.api_core.operation.from_gapic( + operation, + self.transport._operations_client, + empty_pb2.Empty, + metadata_type=campaign_experiment_service_pb2.CreateCampaignExperimentMetadata, + ) + + def mutate_campaign_experiments( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Updates campaign experiments. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign experiments are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignExperimentOperation]]): Required. The list of operations to perform on individual campaign experiments. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignExperimentOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignExperimentsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_experiments' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_experiments'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_experiments, + default_retry=self._method_configs['MutateCampaignExperiments'].retry, + default_timeout=self._method_configs['MutateCampaignExperiments'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.MutateCampaignExperimentsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_experiments'](request, retry=retry, timeout=timeout, metadata=metadata) + + def graduate_campaign_experiment( + self, + campaign_experiment, + campaign_budget, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Graduates a campaign experiment to a full campaign. The base and experiment + campaigns will start running independently with their own budgets. + + Args: + campaign_experiment (str): Required. The resource name of the campaign experiment to graduate. + campaign_budget (str): Required. Resource name of the budget to attach to the campaign graduated from the + experiment. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GraduateCampaignExperimentResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'graduate_campaign_experiment' not in self._inner_api_calls: + self._inner_api_calls['graduate_campaign_experiment'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.graduate_campaign_experiment, + default_retry=self._method_configs['GraduateCampaignExperiment'].retry, + default_timeout=self._method_configs['GraduateCampaignExperiment'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.GraduateCampaignExperimentRequest( + campaign_experiment=campaign_experiment, + campaign_budget=campaign_budget, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('campaign_experiment', campaign_experiment)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['graduate_campaign_experiment'](request, retry=retry, timeout=timeout, metadata=metadata) + + def promote_campaign_experiment( + self, + campaign_experiment, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Promotes the changes in a experiment campaign back to the base campaign. + + The campaign experiment is updated immediately with status PROMOTING. + This method return a long running operation that tracks the promoting of + the experiment campaign. If the promoting fails, a list of errors can be + retrieved using the ListCampaignExperimentAsyncErrors method. + + Args: + campaign_experiment (str): Required. The resource name of the campaign experiment to promote. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types._OperationFuture` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'promote_campaign_experiment' not in self._inner_api_calls: + self._inner_api_calls['promote_campaign_experiment'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.promote_campaign_experiment, + default_retry=self._method_configs['PromoteCampaignExperiment'].retry, + default_timeout=self._method_configs['PromoteCampaignExperiment'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.PromoteCampaignExperimentRequest( + campaign_experiment=campaign_experiment, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('campaign_experiment', campaign_experiment)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + operation = self._inner_api_calls['promote_campaign_experiment'](request, retry=retry, timeout=timeout, metadata=metadata) + return google.api_core.operation.from_gapic( + operation, + self.transport._operations_client, + empty_pb2.Empty, + metadata_type=empty_pb2.Empty, + ) + + def end_campaign_experiment( + self, + campaign_experiment, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Immediately ends a campaign experiment, changing the experiment's scheduled + end date and without waiting for end of day. End date is updated to be the + time of the request. + + Args: + campaign_experiment (str): Required. The resource name of the campaign experiment to end. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'end_campaign_experiment' not in self._inner_api_calls: + self._inner_api_calls['end_campaign_experiment'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.end_campaign_experiment, + default_retry=self._method_configs['EndCampaignExperiment'].retry, + default_timeout=self._method_configs['EndCampaignExperiment'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.EndCampaignExperimentRequest( + campaign_experiment=campaign_experiment, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('campaign_experiment', campaign_experiment)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + self._inner_api_calls['end_campaign_experiment'](request, retry=retry, timeout=timeout, metadata=metadata) + + def list_campaign_experiment_async_errors( + self, + resource_name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all errors that occurred during CampaignExperiment create or + promote (whichever occurred last). + Supports standard list paging. + + Args: + resource_name (str): Required. The name of the campaign experiment from which to retrieve the async + errors. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.Status` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_campaign_experiment_async_errors' not in self._inner_api_calls: + self._inner_api_calls['list_campaign_experiment_async_errors'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_campaign_experiment_async_errors, + default_retry=self._method_configs['ListCampaignExperimentAsyncErrors'].retry, + default_timeout=self._method_configs['ListCampaignExperimentAsyncErrors'].timeout, + client_info=self._client_info, + ) + + request = campaign_experiment_service_pb2.ListCampaignExperimentAsyncErrorsRequest( + resource_name=resource_name, + page_size=page_size, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['list_campaign_experiment_async_errors'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='errors', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v5/services/campaign_experiment_service_client_config.py b/google/ads/google_ads/v5/services/campaign_experiment_service_client_config.py new file mode 100644 index 000000000..f71665745 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_experiment_service_client_config.py @@ -0,0 +1,61 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignExperimentService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignExperiment": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "CreateCampaignExperiment": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MutateCampaignExperiments": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GraduateCampaignExperiment": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "PromoteCampaignExperiment": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "EndCampaignExperiment": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListCampaignExperimentAsyncErrors": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_extension_setting_service_client.py b/google/ads/google_ads/v5/services/campaign_extension_setting_service_client.py new file mode 100644 index 000000000..0053fc43e --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_extension_setting_service_client.py @@ -0,0 +1,312 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignExtensionSettingService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_extension_setting_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_extension_setting_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_extension_setting_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignExtensionSettingServiceClient(object): + """Service to manage campaign extension settings.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignExtensionSettingService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignExtensionSettingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_extension_setting_path(cls, customer, campaign_extension_setting): + """Return a fully-qualified campaign_extension_setting string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignExtensionSettings/{campaign_extension_setting}', + customer=customer, + campaign_extension_setting=campaign_extension_setting, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignExtensionSettingServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignExtensionSettingServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_extension_setting_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_extension_setting_service_grpc_transport.CampaignExtensionSettingServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_extension_setting_service_grpc_transport.CampaignExtensionSettingServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_extension_setting( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign extension setting in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign extension setting to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignExtensionSetting` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_extension_setting' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_extension_setting'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_extension_setting, + default_retry=self._method_configs['GetCampaignExtensionSetting'].retry, + default_timeout=self._method_configs['GetCampaignExtensionSetting'].timeout, + client_info=self._client_info, + ) + + request = campaign_extension_setting_service_pb2.GetCampaignExtensionSettingRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_extension_setting'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_extension_settings( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign extension settings. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign extension settings are being + modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignExtensionSettingOperation]]): Required. The list of operations to perform on individual campaign extension + settings. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignExtensionSettingOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignExtensionSettingsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_extension_settings' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_extension_settings'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_extension_settings, + default_retry=self._method_configs['MutateCampaignExtensionSettings'].retry, + default_timeout=self._method_configs['MutateCampaignExtensionSettings'].timeout, + client_info=self._client_info, + ) + + request = campaign_extension_setting_service_pb2.MutateCampaignExtensionSettingsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_extension_settings'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_extension_setting_service_client_config.py b/google/ads/google_ads/v5/services/campaign_extension_setting_service_client_config.py new file mode 100644 index 000000000..8201814c7 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_extension_setting_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignExtensionSettingService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignExtensionSetting": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignExtensionSettings": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_feed_service_client.py b/google/ads/google_ads/v5/services/campaign_feed_service_client.py new file mode 100644 index 000000000..92a01e158 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_feed_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignFeedService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_feed_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_feed_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_feed_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignFeedServiceClient(object): + """Service to manage campaign feeds.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignFeedService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignFeedServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_feed_path(cls, customer, campaign_feed): + """Return a fully-qualified campaign_feed string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignFeeds/{campaign_feed}', + customer=customer, + campaign_feed=campaign_feed, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignFeedServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignFeedServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_feed_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_feed_service_grpc_transport.CampaignFeedServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_feed_service_grpc_transport.CampaignFeedServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_feed( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign feed in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign feed to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignFeed` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_feed' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_feed'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_feed, + default_retry=self._method_configs['GetCampaignFeed'].retry, + default_timeout=self._method_configs['GetCampaignFeed'].timeout, + client_info=self._client_info, + ) + + request = campaign_feed_service_pb2.GetCampaignFeedRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_feed'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_feeds( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign feeds. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign feeds are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignFeedOperation]]): Required. The list of operations to perform on individual campaign feeds. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignFeedOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignFeedsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_feeds' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_feeds'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_feeds, + default_retry=self._method_configs['MutateCampaignFeeds'].retry, + default_timeout=self._method_configs['MutateCampaignFeeds'].timeout, + client_info=self._client_info, + ) + + request = campaign_feed_service_pb2.MutateCampaignFeedsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_feeds'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_feed_service_client_config.py b/google/ads/google_ads/v5/services/campaign_feed_service_client_config.py new file mode 100644 index 000000000..8f4863b70 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_feed_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignFeedService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignFeed": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignFeeds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_label_service_client.py b/google/ads/google_ads/v5/services/campaign_label_service_client.py new file mode 100644 index 000000000..5bb700e60 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_label_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignLabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_label_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignLabelServiceClient(object): + """Service to manage labels on campaigns.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignLabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignLabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_label_path(cls, customer, campaign_label): + """Return a fully-qualified campaign_label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignLabels/{campaign_label}', + customer=customer, + campaign_label=campaign_label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignLabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignLabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_label_service_grpc_transport.CampaignLabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_label_service_grpc_transport.CampaignLabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign-label relationship in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign-label relationship to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignLabel` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_label' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_label, + default_retry=self._method_configs['GetCampaignLabel'].retry, + default_timeout=self._method_configs['GetCampaignLabel'].timeout, + client_info=self._client_info, + ) + + request = campaign_label_service_pb2.GetCampaignLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates and removes campaign-label relationships. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose campaign-label relationships are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignLabelOperation]]): Required. The list of operations to perform on campaign-label relationships. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignLabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_labels, + default_retry=self._method_configs['MutateCampaignLabels'].retry, + default_timeout=self._method_configs['MutateCampaignLabels'].timeout, + client_info=self._client_info, + ) + + request = campaign_label_service_pb2.MutateCampaignLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_label_service_client_config.py b/google/ads/google_ads/v5/services/campaign_label_service_client_config.py new file mode 100644 index 000000000..94773ece1 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignLabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_service_client.py b/google/ads/google_ads/v5/services/campaign_service_client.py new file mode 100644 index 000000000..a2696bd4a --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignServiceClient(object): + """Service to manage campaigns.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_path(cls, customer, campaign): + """Return a fully-qualified campaign string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaigns/{campaign}', + customer=customer, + campaign=campaign, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_service_grpc_transport.CampaignServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_service_grpc_transport.CampaignServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Campaign` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign' not in self._inner_api_calls: + self._inner_api_calls['get_campaign'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign, + default_retry=self._method_configs['GetCampaign'].retry, + default_timeout=self._method_configs['GetCampaign'].timeout, + client_info=self._client_info, + ) + + request = campaign_service_pb2.GetCampaignRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaigns( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaigns. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaigns are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignOperation]]): Required. The list of operations to perform on individual campaigns. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaigns' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaigns'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaigns, + default_retry=self._method_configs['MutateCampaigns'].retry, + default_timeout=self._method_configs['MutateCampaigns'].timeout, + client_info=self._client_info, + ) + + request = campaign_service_pb2.MutateCampaignsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaigns'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_service_client_config.py b/google/ads/google_ads/v5/services/campaign_service_client_config.py new file mode 100644 index 000000000..94454754c --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaign": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaigns": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/campaign_shared_set_service_client.py b/google/ads/google_ads/v5/services/campaign_shared_set_service_client.py new file mode 100644 index 000000000..1d92d55f7 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_shared_set_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CampaignSharedSetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import campaign_shared_set_service_client_config +from google.ads.google_ads.v5.services.transports import campaign_shared_set_service_grpc_transport +from google.ads.google_ads.v5.proto.services import campaign_shared_set_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CampaignSharedSetServiceClient(object): + """Service to manage campaign shared sets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CampaignSharedSetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignSharedSetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def campaign_shared_set_path(cls, customer, campaign_shared_set): + """Return a fully-qualified campaign_shared_set string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignSharedSets/{campaign_shared_set}', + customer=customer, + campaign_shared_set=campaign_shared_set, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CampaignSharedSetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignSharedSetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = campaign_shared_set_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_shared_set_service_grpc_transport.CampaignSharedSetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = campaign_shared_set_service_grpc_transport.CampaignSharedSetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_shared_set( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign shared set in full detail. + + Args: + resource_name (str): Required. The resource name of the campaign shared set to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CampaignSharedSet` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_shared_set' not in self._inner_api_calls: + self._inner_api_calls['get_campaign_shared_set'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_shared_set, + default_retry=self._method_configs['GetCampaignSharedSet'].retry, + default_timeout=self._method_configs['GetCampaignSharedSet'].timeout, + client_info=self._client_info, + ) + + request = campaign_shared_set_service_pb2.GetCampaignSharedSetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_campaign_shared_set'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_shared_sets( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes campaign shared sets. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign shared sets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CampaignSharedSetOperation]]): Required. The list of operations to perform on individual campaign shared sets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignSharedSetOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCampaignSharedSetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_shared_sets' not in self._inner_api_calls: + self._inner_api_calls['mutate_campaign_shared_sets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_shared_sets, + default_retry=self._method_configs['MutateCampaignSharedSets'].retry, + default_timeout=self._method_configs['MutateCampaignSharedSets'].timeout, + client_info=self._client_info, + ) + + request = campaign_shared_set_service_pb2.MutateCampaignSharedSetsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_campaign_shared_sets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/campaign_shared_set_service_client_config.py b/google/ads/google_ads/v5/services/campaign_shared_set_service_client_config.py new file mode 100644 index 000000000..a724e1f85 --- /dev/null +++ b/google/ads/google_ads/v5/services/campaign_shared_set_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CampaignSharedSetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCampaignSharedSet": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignSharedSets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/carrier_constant_service_client.py b/google/ads/google_ads/v5/services/carrier_constant_service_client.py new file mode 100644 index 000000000..497659346 --- /dev/null +++ b/google/ads/google_ads/v5/services/carrier_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CarrierConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import carrier_constant_service_client_config +from google.ads.google_ads.v5.services.transports import carrier_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import carrier_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CarrierConstantServiceClient(object): + """Service to fetch carrier constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CarrierConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CarrierConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def carrier_constant_path(cls, carrier_constant): + """Return a fully-qualified carrier_constant string.""" + return google.api_core.path_template.expand( + 'carrierConstants/{carrier_constant}', + carrier_constant=carrier_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CarrierConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CarrierConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = carrier_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=carrier_constant_service_grpc_transport.CarrierConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = carrier_constant_service_grpc_transport.CarrierConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_carrier_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested carrier constant in full detail. + + Args: + resource_name (str): Required. Resource name of the carrier constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CarrierConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_carrier_constant' not in self._inner_api_calls: + self._inner_api_calls['get_carrier_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_carrier_constant, + default_retry=self._method_configs['GetCarrierConstant'].retry, + default_timeout=self._method_configs['GetCarrierConstant'].timeout, + client_info=self._client_info, + ) + + request = carrier_constant_service_pb2.GetCarrierConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_carrier_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/carrier_constant_service_client_config.py b/google/ads/google_ads/v5/services/carrier_constant_service_client_config.py new file mode 100644 index 000000000..fac68b9b9 --- /dev/null +++ b/google/ads/google_ads/v5/services/carrier_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CarrierConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCarrierConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/change_status_service_client.py b/google/ads/google_ads/v5/services/change_status_service_client.py new file mode 100644 index 000000000..59901c240 --- /dev/null +++ b/google/ads/google_ads/v5/services/change_status_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ChangeStatusService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import change_status_service_client_config +from google.ads.google_ads.v5.services.transports import change_status_service_grpc_transport +from google.ads.google_ads.v5.proto.services import change_status_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ChangeStatusServiceClient(object): + """Service to fetch change statuses.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ChangeStatusService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ChangeStatusServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def change_status_path(cls, customer, change_status): + """Return a fully-qualified change_status string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/changeStatus/{change_status}', + customer=customer, + change_status=change_status, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ChangeStatusServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ChangeStatusServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = change_status_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=change_status_service_grpc_transport.ChangeStatusServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = change_status_service_grpc_transport.ChangeStatusServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_change_status( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested change status in full detail. + + Args: + resource_name (str): Required. The resource name of the change status to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ChangeStatus` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_change_status' not in self._inner_api_calls: + self._inner_api_calls['get_change_status'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_change_status, + default_retry=self._method_configs['GetChangeStatus'].retry, + default_timeout=self._method_configs['GetChangeStatus'].timeout, + client_info=self._client_info, + ) + + request = change_status_service_pb2.GetChangeStatusRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_change_status'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/change_status_service_client_config.py b/google/ads/google_ads/v5/services/change_status_service_client_config.py new file mode 100644 index 000000000..9627dd864 --- /dev/null +++ b/google/ads/google_ads/v5/services/change_status_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ChangeStatusService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetChangeStatus": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/click_view_service_client.py b/google/ads/google_ads/v5/services/click_view_service_client.py new file mode 100644 index 000000000..d9271042a --- /dev/null +++ b/google/ads/google_ads/v5/services/click_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ClickViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import click_view_service_client_config +from google.ads.google_ads.v5.services.transports import click_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import click_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ClickViewServiceClient(object): + """Service to fetch click views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ClickViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ClickViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def click_view_path(cls, customer, click_view): + """Return a fully-qualified click_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/clickViews/{click_view}', + customer=customer, + click_view=click_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ClickViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ClickViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = click_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=click_view_service_grpc_transport.ClickViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = click_view_service_grpc_transport.ClickViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_click_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested click view in full detail. + + Args: + resource_name (str): Required. The resource name of the click view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ClickView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_click_view' not in self._inner_api_calls: + self._inner_api_calls['get_click_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_click_view, + default_retry=self._method_configs['GetClickView'].retry, + default_timeout=self._method_configs['GetClickView'].timeout, + client_info=self._client_info, + ) + + request = click_view_service_pb2.GetClickViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_click_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/click_view_service_client_config.py b/google/ads/google_ads/v5/services/click_view_service_client_config.py new file mode 100644 index 000000000..3a3ca03ab --- /dev/null +++ b/google/ads/google_ads/v5/services/click_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ClickViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetClickView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/conversion_action_service_client.py b/google/ads/google_ads/v5/services/conversion_action_service_client.py new file mode 100644 index 000000000..5258c6359 --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_action_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ConversionActionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import conversion_action_service_client_config +from google.ads.google_ads.v5.services.transports import conversion_action_service_grpc_transport +from google.ads.google_ads.v5.proto.services import conversion_action_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ConversionActionServiceClient(object): + """Service to manage conversion actions.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ConversionActionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ConversionActionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def conversion_action_path(cls, customer, conversion_action): + """Return a fully-qualified conversion_action string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/conversionActions/{conversion_action}', + customer=customer, + conversion_action=conversion_action, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ConversionActionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ConversionActionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = conversion_action_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=conversion_action_service_grpc_transport.ConversionActionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = conversion_action_service_grpc_transport.ConversionActionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_conversion_action( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested conversion action. + + Args: + resource_name (str): Required. The resource name of the conversion action to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ConversionAction` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_conversion_action' not in self._inner_api_calls: + self._inner_api_calls['get_conversion_action'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_conversion_action, + default_retry=self._method_configs['GetConversionAction'].retry, + default_timeout=self._method_configs['GetConversionAction'].timeout, + client_info=self._client_info, + ) + + request = conversion_action_service_pb2.GetConversionActionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_conversion_action'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_conversion_actions( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates or removes conversion actions. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose conversion actions are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.ConversionActionOperation]]): Required. The list of operations to perform on individual conversion actions. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.ConversionActionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateConversionActionsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_conversion_actions' not in self._inner_api_calls: + self._inner_api_calls['mutate_conversion_actions'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_conversion_actions, + default_retry=self._method_configs['MutateConversionActions'].retry, + default_timeout=self._method_configs['MutateConversionActions'].timeout, + client_info=self._client_info, + ) + + request = conversion_action_service_pb2.MutateConversionActionsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_conversion_actions'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/conversion_action_service_client_config.py b/google/ads/google_ads/v5/services/conversion_action_service_client_config.py new file mode 100644 index 000000000..2081963e0 --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_action_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ConversionActionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetConversionAction": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateConversionActions": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client.py b/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client.py new file mode 100644 index 000000000..973754200 --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client.py @@ -0,0 +1,246 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ConversionAdjustmentUploadService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.services import conversion_adjustment_upload_service_client_config +from google.ads.google_ads.v5.services.transports import conversion_adjustment_upload_service_grpc_transport +from google.ads.google_ads.v5.proto.services import conversion_adjustment_upload_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ConversionAdjustmentUploadServiceClient(object): + """Service to upload conversion adjustments.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ConversionAdjustmentUploadService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ConversionAdjustmentUploadServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ConversionAdjustmentUploadServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ConversionAdjustmentUploadServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = conversion_adjustment_upload_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=conversion_adjustment_upload_service_grpc_transport.ConversionAdjustmentUploadServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = conversion_adjustment_upload_service_grpc_transport.ConversionAdjustmentUploadServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def upload_conversion_adjustments( + self, + customer_id, + conversion_adjustments, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Processes the given conversion adjustments. + + Args: + customer_id (str): Required. The ID of the customer performing the upload. + conversion_adjustments (list[Union[dict, ~google.ads.googleads_v5.types.ConversionAdjustment]]): Required. The conversion adjustments that are being uploaded. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.ConversionAdjustment` + partial_failure (bool): Required. If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried out + in one transaction if and only if they are all valid. This should always be + set to true. + See + https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + for more information about partial failure. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UploadConversionAdjustmentsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'upload_conversion_adjustments' not in self._inner_api_calls: + self._inner_api_calls['upload_conversion_adjustments'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.upload_conversion_adjustments, + default_retry=self._method_configs['UploadConversionAdjustments'].retry, + default_timeout=self._method_configs['UploadConversionAdjustments'].timeout, + client_info=self._client_info, + ) + + request = conversion_adjustment_upload_service_pb2.UploadConversionAdjustmentsRequest( + customer_id=customer_id, + conversion_adjustments=conversion_adjustments, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['upload_conversion_adjustments'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client_config.py b/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client_config.py new file mode 100644 index 000000000..8e8fc5ebd --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_adjustment_upload_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ConversionAdjustmentUploadService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "UploadConversionAdjustments": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/conversion_upload_service_client.py b/google/ads/google_ads/v5/services/conversion_upload_service_client.py new file mode 100644 index 000000000..5025fed15 --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_upload_service_client.py @@ -0,0 +1,320 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ConversionUploadService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.services import conversion_upload_service_client_config +from google.ads.google_ads.v5.services.transports import conversion_upload_service_grpc_transport +from google.ads.google_ads.v5.proto.services import conversion_upload_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ConversionUploadServiceClient(object): + """Service to upload conversions.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ConversionUploadService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ConversionUploadServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ConversionUploadServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ConversionUploadServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = conversion_upload_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=conversion_upload_service_grpc_transport.ConversionUploadServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = conversion_upload_service_grpc_transport.ConversionUploadServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def upload_click_conversions( + self, + customer_id, + conversions, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Processes the given click conversions. + + Args: + customer_id (str): Required. The ID of the customer performing the upload. + conversions (list[Union[dict, ~google.ads.googleads_v5.types.ClickConversion]]): Required. The conversions that are being uploaded. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.ClickConversion` + partial_failure (bool): Required. If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + This should always be set to true. + See + https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + for more information about partial failure. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UploadClickConversionsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'upload_click_conversions' not in self._inner_api_calls: + self._inner_api_calls['upload_click_conversions'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.upload_click_conversions, + default_retry=self._method_configs['UploadClickConversions'].retry, + default_timeout=self._method_configs['UploadClickConversions'].timeout, + client_info=self._client_info, + ) + + request = conversion_upload_service_pb2.UploadClickConversionsRequest( + customer_id=customer_id, + conversions=conversions, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['upload_click_conversions'](request, retry=retry, timeout=timeout, metadata=metadata) + + def upload_call_conversions( + self, + customer_id, + conversions, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Processes the given call conversions. + + Args: + customer_id (str): Required. The ID of the customer performing the upload. + conversions (list[Union[dict, ~google.ads.googleads_v5.types.CallConversion]]): Required. The conversions that are being uploaded. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CallConversion` + partial_failure (bool): Required. If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + This should always be set to true. + See + https://developers.google.com/google-ads/api/docs/best-practices/partial-failures + for more information about partial failure. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UploadCallConversionsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'upload_call_conversions' not in self._inner_api_calls: + self._inner_api_calls['upload_call_conversions'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.upload_call_conversions, + default_retry=self._method_configs['UploadCallConversions'].retry, + default_timeout=self._method_configs['UploadCallConversions'].timeout, + client_info=self._client_info, + ) + + request = conversion_upload_service_pb2.UploadCallConversionsRequest( + customer_id=customer_id, + conversions=conversions, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['upload_call_conversions'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/conversion_upload_service_client_config.py b/google/ads/google_ads/v5/services/conversion_upload_service_client_config.py new file mode 100644 index 000000000..5f70d93af --- /dev/null +++ b/google/ads/google_ads/v5/services/conversion_upload_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ConversionUploadService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "UploadClickConversions": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "UploadCallConversions": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/currency_constant_service_client.py b/google/ads/google_ads/v5/services/currency_constant_service_client.py new file mode 100644 index 000000000..3e137afed --- /dev/null +++ b/google/ads/google_ads/v5/services/currency_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CurrencyConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import currency_constant_service_client_config +from google.ads.google_ads.v5.services.transports import currency_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import currency_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CurrencyConstantServiceClient(object): + """Service to fetch currency constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CurrencyConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CurrencyConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def currency_constant_path(cls, currency_constant): + """Return a fully-qualified currency_constant string.""" + return google.api_core.path_template.expand( + 'currencyConstants/{currency_constant}', + currency_constant=currency_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CurrencyConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CurrencyConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = currency_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=currency_constant_service_grpc_transport.CurrencyConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = currency_constant_service_grpc_transport.CurrencyConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_currency_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested currency constant. + + Args: + resource_name (str): Required. Resource name of the currency constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CurrencyConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_currency_constant' not in self._inner_api_calls: + self._inner_api_calls['get_currency_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_currency_constant, + default_retry=self._method_configs['GetCurrencyConstant'].retry, + default_timeout=self._method_configs['GetCurrencyConstant'].timeout, + client_info=self._client_info, + ) + + request = currency_constant_service_pb2.GetCurrencyConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_currency_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/currency_constant_service_client_config.py b/google/ads/google_ads/v5/services/currency_constant_service_client_config.py new file mode 100644 index 000000000..19ce093b3 --- /dev/null +++ b/google/ads/google_ads/v5/services/currency_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CurrencyConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCurrencyConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/custom_interest_service_client.py b/google/ads/google_ads/v5/services/custom_interest_service_client.py new file mode 100644 index 000000000..a7ed3e3f5 --- /dev/null +++ b/google/ads/google_ads/v5/services/custom_interest_service_client.py @@ -0,0 +1,303 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomInterestService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import custom_interest_service_client_config +from google.ads.google_ads.v5.services.transports import custom_interest_service_grpc_transport +from google.ads.google_ads.v5.proto.services import custom_interest_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomInterestServiceClient(object): + """Service to manage custom interests.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomInterestService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomInterestServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def custom_interest_path(cls, customer, custom_interest): + """Return a fully-qualified custom_interest string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customInterests/{custom_interest}', + customer=customer, + custom_interest=custom_interest, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomInterestServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomInterestServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = custom_interest_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=custom_interest_service_grpc_transport.CustomInterestServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = custom_interest_service_grpc_transport.CustomInterestServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_custom_interest( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested custom interest in full detail. + + Args: + resource_name (str): Required. The resource name of the custom interest to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomInterest` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_custom_interest' not in self._inner_api_calls: + self._inner_api_calls['get_custom_interest'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_custom_interest, + default_retry=self._method_configs['GetCustomInterest'].retry, + default_timeout=self._method_configs['GetCustomInterest'].timeout, + client_info=self._client_info, + ) + + request = custom_interest_service_pb2.GetCustomInterestRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_custom_interest'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_custom_interests( + self, + customer_id, + operations, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or updates custom interests. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose custom interests are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomInterestOperation]]): Required. The list of operations to perform on individual custom interests. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomInterestOperation` + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomInterestsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_custom_interests' not in self._inner_api_calls: + self._inner_api_calls['mutate_custom_interests'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_custom_interests, + default_retry=self._method_configs['MutateCustomInterests'].retry, + default_timeout=self._method_configs['MutateCustomInterests'].timeout, + client_info=self._client_info, + ) + + request = custom_interest_service_pb2.MutateCustomInterestsRequest( + customer_id=customer_id, + operations=operations, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_custom_interests'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/custom_interest_service_client_config.py b/google/ads/google_ads/v5/services/custom_interest_service_client_config.py new file mode 100644 index 000000000..d8ae474d0 --- /dev/null +++ b/google/ads/google_ads/v5/services/custom_interest_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomInterestService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomInterest": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomInterests": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_client_link_service_client.py b/google/ads/google_ads/v5/services/customer_client_link_service_client.py new file mode 100644 index 000000000..12e0220d0 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_client_link_service_client.py @@ -0,0 +1,299 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerClientLinkService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_client_link_service_client_config +from google.ads.google_ads.v5.services.transports import customer_client_link_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_client_link_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerClientLinkServiceClient(object): + """Service to manage customer client links.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerClientLinkService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerClientLinkServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_client_link_path(cls, customer, customer_client_link): + """Return a fully-qualified customer_client_link string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerClientLinks/{customer_client_link}', + customer=customer, + customer_client_link=customer_client_link, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerClientLinkServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerClientLinkServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_client_link_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_client_link_service_grpc_transport.CustomerClientLinkServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_client_link_service_grpc_transport.CustomerClientLinkServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_client_link( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested CustomerClientLink in full detail. + + Args: + resource_name (str): Required. The resource name of the customer client link to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerClientLink` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_client_link' not in self._inner_api_calls: + self._inner_api_calls['get_customer_client_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_client_link, + default_retry=self._method_configs['GetCustomerClientLink'].retry, + default_timeout=self._method_configs['GetCustomerClientLink'].timeout, + client_info=self._client_info, + ) + + request = customer_client_link_service_pb2.GetCustomerClientLinkRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_client_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_client_link( + self, + customer_id, + operation_, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or updates a customer client link. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose customer link are being modified. + operation_ (Union[dict, ~google.ads.googleads_v5.types.CustomerClientLinkOperation]): Required. The operation to perform on the individual CustomerClientLink. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerClientLinkOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerClientLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_client_link' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_client_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_client_link, + default_retry=self._method_configs['MutateCustomerClientLink'].retry, + default_timeout=self._method_configs['MutateCustomerClientLink'].timeout, + client_info=self._client_info, + ) + + request = customer_client_link_service_pb2.MutateCustomerClientLinkRequest( + customer_id=customer_id, + operation=operation_, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_client_link'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_client_link_service_client_config.py b/google/ads/google_ads/v5/services/customer_client_link_service_client_config.py new file mode 100644 index 000000000..406d66793 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_client_link_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerClientLinkService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerClientLink": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerClientLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_client_service_client.py b/google/ads/google_ads/v5/services/customer_client_service_client.py new file mode 100644 index 000000000..60dcfd0e4 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_client_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerClientService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_client_service_client_config +from google.ads.google_ads.v5.services.transports import customer_client_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_client_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerClientServiceClient(object): + """Service to get clients in a customer's hierarchy.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerClientService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerClientServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_client_path(cls, customer, customer_client): + """Return a fully-qualified customer_client string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerClients/{customer_client}', + customer=customer, + customer_client=customer_client, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerClientServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerClientServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_client_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_client_service_grpc_transport.CustomerClientServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_client_service_grpc_transport.CustomerClientServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_client( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested client in full detail. + + Args: + resource_name (str): Required. The resource name of the client to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerClient` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_client' not in self._inner_api_calls: + self._inner_api_calls['get_customer_client'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_client, + default_retry=self._method_configs['GetCustomerClient'].retry, + default_timeout=self._method_configs['GetCustomerClient'].timeout, + client_info=self._client_info, + ) + + request = customer_client_service_pb2.GetCustomerClientRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_client'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_client_service_client_config.py b/google/ads/google_ads/v5/services/customer_client_service_client_config.py new file mode 100644 index 000000000..c2671ba3d --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_client_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerClientService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerClient": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_extension_setting_service_client.py b/google/ads/google_ads/v5/services/customer_extension_setting_service_client.py new file mode 100644 index 000000000..005429371 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_extension_setting_service_client.py @@ -0,0 +1,312 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerExtensionSettingService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_extension_setting_service_client_config +from google.ads.google_ads.v5.services.transports import customer_extension_setting_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_extension_setting_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerExtensionSettingServiceClient(object): + """Service to manage customer extension settings.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerExtensionSettingService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerExtensionSettingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_extension_setting_path(cls, customer, customer_extension_setting): + """Return a fully-qualified customer_extension_setting string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerExtensionSettings/{customer_extension_setting}', + customer=customer, + customer_extension_setting=customer_extension_setting, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerExtensionSettingServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerExtensionSettingServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_extension_setting_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_extension_setting_service_grpc_transport.CustomerExtensionSettingServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_extension_setting_service_grpc_transport.CustomerExtensionSettingServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_extension_setting( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested customer extension setting in full detail. + + Args: + resource_name (str): Required. The resource name of the customer extension setting to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerExtensionSetting` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_extension_setting' not in self._inner_api_calls: + self._inner_api_calls['get_customer_extension_setting'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_extension_setting, + default_retry=self._method_configs['GetCustomerExtensionSetting'].retry, + default_timeout=self._method_configs['GetCustomerExtensionSetting'].timeout, + client_info=self._client_info, + ) + + request = customer_extension_setting_service_pb2.GetCustomerExtensionSettingRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_extension_setting'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_extension_settings( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes customer extension settings. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose customer extension settings are being + modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomerExtensionSettingOperation]]): Required. The list of operations to perform on individual customer extension + settings. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerExtensionSettingOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerExtensionSettingsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_extension_settings' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_extension_settings'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_extension_settings, + default_retry=self._method_configs['MutateCustomerExtensionSettings'].retry, + default_timeout=self._method_configs['MutateCustomerExtensionSettings'].timeout, + client_info=self._client_info, + ) + + request = customer_extension_setting_service_pb2.MutateCustomerExtensionSettingsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_extension_settings'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_extension_setting_service_client_config.py b/google/ads/google_ads/v5/services/customer_extension_setting_service_client_config.py new file mode 100644 index 000000000..da71c9630 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_extension_setting_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerExtensionSettingService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerExtensionSetting": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerExtensionSettings": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_feed_service_client.py b/google/ads/google_ads/v5/services/customer_feed_service_client.py new file mode 100644 index 000000000..90fab67ae --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_feed_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerFeedService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_feed_service_client_config +from google.ads.google_ads.v5.services.transports import customer_feed_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_feed_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerFeedServiceClient(object): + """Service to manage customer feeds.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerFeedService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerFeedServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_feed_path(cls, customer, customer_feed): + """Return a fully-qualified customer_feed string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerFeeds/{customer_feed}', + customer=customer, + customer_feed=customer_feed, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerFeedServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerFeedServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_feed_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_feed_service_grpc_transport.CustomerFeedServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_feed_service_grpc_transport.CustomerFeedServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_feed( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested customer feed in full detail. + + Args: + resource_name (str): Required. The resource name of the customer feed to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerFeed` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_feed' not in self._inner_api_calls: + self._inner_api_calls['get_customer_feed'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_feed, + default_retry=self._method_configs['GetCustomerFeed'].retry, + default_timeout=self._method_configs['GetCustomerFeed'].timeout, + client_info=self._client_info, + ) + + request = customer_feed_service_pb2.GetCustomerFeedRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_feed'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_feeds( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes customer feeds. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose customer feeds are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomerFeedOperation]]): Required. The list of operations to perform on individual customer feeds. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerFeedOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerFeedsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_feeds' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_feeds'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_feeds, + default_retry=self._method_configs['MutateCustomerFeeds'].retry, + default_timeout=self._method_configs['MutateCustomerFeeds'].timeout, + client_info=self._client_info, + ) + + request = customer_feed_service_pb2.MutateCustomerFeedsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_feeds'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_feed_service_client_config.py b/google/ads/google_ads/v5/services/customer_feed_service_client_config.py new file mode 100644 index 000000000..48b2dd6d2 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_feed_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerFeedService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerFeed": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerFeeds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_label_service_client.py b/google/ads/google_ads/v5/services/customer_label_service_client.py new file mode 100644 index 000000000..eee20e85e --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_label_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerLabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_label_service_client_config +from google.ads.google_ads.v5.services.transports import customer_label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerLabelServiceClient(object): + """Service to manage labels on customers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerLabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerLabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_label_path(cls, customer, customer_label): + """Return a fully-qualified customer_label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerLabels/{customer_label}', + customer=customer, + customer_label=customer_label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerLabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerLabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_label_service_grpc_transport.CustomerLabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_label_service_grpc_transport.CustomerLabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested customer-label relationship in full detail. + + Args: + resource_name (str): Required. The resource name of the customer-label relationship to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerLabel` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_label' not in self._inner_api_calls: + self._inner_api_calls['get_customer_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_label, + default_retry=self._method_configs['GetCustomerLabel'].retry, + default_timeout=self._method_configs['GetCustomerLabel'].timeout, + client_info=self._client_info, + ) + + request = customer_label_service_pb2.GetCustomerLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates and removes customer-label relationships. + Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose customer-label relationships are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomerLabelOperation]]): Required. The list of operations to perform on customer-label relationships. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerLabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_labels, + default_retry=self._method_configs['MutateCustomerLabels'].retry, + default_timeout=self._method_configs['MutateCustomerLabels'].timeout, + client_info=self._client_info, + ) + + request = customer_label_service_pb2.MutateCustomerLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_label_service_client_config.py b/google/ads/google_ads/v5/services/customer_label_service_client_config.py new file mode 100644 index 000000000..71af99124 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerLabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_manager_link_service_client.py b/google/ads/google_ads/v5/services/customer_manager_link_service_client.py new file mode 100644 index 000000000..77123bd05 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_manager_link_service_client.py @@ -0,0 +1,368 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerManagerLinkService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_manager_link_service_client_config +from google.ads.google_ads.v5.services.transports import customer_manager_link_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_manager_link_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerManagerLinkServiceClient(object): + """Service to manage customer-manager links.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerManagerLinkService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerManagerLinkServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_manager_link_path(cls, customer, customer_manager_link): + """Return a fully-qualified customer_manager_link string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerManagerLinks/{customer_manager_link}', + customer=customer, + customer_manager_link=customer_manager_link, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerManagerLinkServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerManagerLinkServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_manager_link_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_manager_link_service_grpc_transport.CustomerManagerLinkServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_manager_link_service_grpc_transport.CustomerManagerLinkServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_manager_link( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested CustomerManagerLink in full detail. + + Args: + resource_name (str): Required. The resource name of the CustomerManagerLink to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerManagerLink` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_manager_link' not in self._inner_api_calls: + self._inner_api_calls['get_customer_manager_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_manager_link, + default_retry=self._method_configs['GetCustomerManagerLink'].retry, + default_timeout=self._method_configs['GetCustomerManagerLink'].timeout, + client_info=self._client_info, + ) + + request = customer_manager_link_service_pb2.GetCustomerManagerLinkRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_manager_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_manager_link( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or updates customer manager links. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose customer manager links are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomerManagerLinkOperation]]): Required. The list of operations to perform on individual customer manager links. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerManagerLinkOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerManagerLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_manager_link' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_manager_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_manager_link, + default_retry=self._method_configs['MutateCustomerManagerLink'].retry, + default_timeout=self._method_configs['MutateCustomerManagerLink'].timeout, + client_info=self._client_info, + ) + + request = customer_manager_link_service_pb2.MutateCustomerManagerLinkRequest( + customer_id=customer_id, + operations=operations, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_manager_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def move_manager_link( + self, + customer_id, + previous_customer_manager_link, + new_manager, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Moves a client customer to a new manager customer. + This simplifies the complex request that requires two operations to move + a client customer to a new manager. i.e: + 1. Update operation with Status INACTIVE (previous manager) and, + 2. Update operation with Status ACTIVE (new manager). + + Args: + customer_id (str): Required. The ID of the client customer that is being moved. + previous_customer_manager_link (str): Required. The resource name of the previous CustomerManagerLink. The + resource name has the form: + ``customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`` + new_manager (str): Required. The resource name of the new manager customer that the client + wants to move to. Customer resource names have the format: + "customers/{customer\_id}" + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MoveManagerLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'move_manager_link' not in self._inner_api_calls: + self._inner_api_calls['move_manager_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.move_manager_link, + default_retry=self._method_configs['MoveManagerLink'].retry, + default_timeout=self._method_configs['MoveManagerLink'].timeout, + client_info=self._client_info, + ) + + request = customer_manager_link_service_pb2.MoveManagerLinkRequest( + customer_id=customer_id, + previous_customer_manager_link=previous_customer_manager_link, + new_manager=new_manager, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['move_manager_link'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_manager_link_service_client_config.py b/google/ads/google_ads/v5/services/customer_manager_link_service_client_config.py new file mode 100644 index 000000000..ea66f6c05 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_manager_link_service_client_config.py @@ -0,0 +1,41 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerManagerLinkService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerManagerLink": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerManagerLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "MoveManagerLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_negative_criterion_service_client.py b/google/ads/google_ads/v5/services/customer_negative_criterion_service_client.py new file mode 100644 index 000000000..947271758 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_negative_criterion_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerNegativeCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import customer_negative_criterion_service_client_config +from google.ads.google_ads.v5.services.transports import customer_negative_criterion_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_negative_criterion_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerNegativeCriterionServiceClient(object): + """Service to manage customer negative criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerNegativeCriterionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerNegativeCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_negative_criteria_path(cls, customer, customer_negative_criteria): + """Return a fully-qualified customer_negative_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/customerNegativeCriteria/{customer_negative_criteria}', + customer=customer, + customer_negative_criteria=customer_negative_criteria, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerNegativeCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerNegativeCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_negative_criterion_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_negative_criterion_service_grpc_transport.CustomerNegativeCriterionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_negative_criterion_service_grpc_transport.CustomerNegativeCriterionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer_negative_criterion( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested criterion in full detail. + + Args: + resource_name (str): Required. The resource name of the criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CustomerNegativeCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer_negative_criterion' not in self._inner_api_calls: + self._inner_api_calls['get_customer_negative_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer_negative_criterion, + default_retry=self._method_configs['GetCustomerNegativeCriterion'].retry, + default_timeout=self._method_configs['GetCustomerNegativeCriterion'].timeout, + client_info=self._client_info, + ) + + request = customer_negative_criterion_service_pb2.GetCustomerNegativeCriterionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer_negative_criterion'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer_negative_criteria( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes criteria. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose criteria are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.CustomerNegativeCriterionOperation]]): Required. The list of operations to perform on individual criteria. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerNegativeCriterionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerNegativeCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer_negative_criteria' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer_negative_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer_negative_criteria, + default_retry=self._method_configs['MutateCustomerNegativeCriteria'].retry, + default_timeout=self._method_configs['MutateCustomerNegativeCriteria'].timeout, + client_info=self._client_info, + ) + + request = customer_negative_criterion_service_pb2.MutateCustomerNegativeCriteriaRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer_negative_criteria'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_negative_criterion_service_client_config.py b/google/ads/google_ads/v5/services/customer_negative_criterion_service_client_config.py new file mode 100644 index 000000000..4ab29939e --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_negative_criterion_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerNegativeCriterionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomerNegativeCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomerNegativeCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/customer_service_client.py b/google/ads/google_ads/v5/services/customer_service_client.py new file mode 100644 index 000000000..e9c6dfcce --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_service_client.py @@ -0,0 +1,423 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services CustomerService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template +import google.api_core.protobuf_helpers + +from google.ads.google_ads.v5.services import customer_service_client_config +from google.ads.google_ads.v5.services.transports import customer_service_grpc_transport +from google.ads.google_ads.v5.proto.services import customer_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class CustomerServiceClient(object): + """Service to manage customers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.CustomerService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def customer_path(cls, customer): + """Return a fully-qualified customer string.""" + return google.api_core.path_template.expand( + 'customers/{customer}', + customer=customer, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.CustomerServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = customer_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_service_grpc_transport.CustomerServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = customer_service_grpc_transport.CustomerServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested customer in full detail. + + Args: + resource_name (str): Required. The resource name of the customer to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Customer` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer' not in self._inner_api_calls: + self._inner_api_calls['get_customer'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer, + default_retry=self._method_configs['GetCustomer'].retry, + default_timeout=self._method_configs['GetCustomer'].timeout, + client_info=self._client_info, + ) + + request = customer_service_pb2.GetCustomerRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_customer'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_customer( + self, + customer_id, + operation_, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Updates a customer. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer being modified. + operation_ (Union[dict, ~google.ads.googleads_v5.types.CustomerOperation]): Required. The operation to perform on the customer + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerOperation` + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateCustomerResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_customer' not in self._inner_api_calls: + self._inner_api_calls['mutate_customer'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_customer, + default_retry=self._method_configs['MutateCustomer'].retry, + default_timeout=self._method_configs['MutateCustomer'].timeout, + client_info=self._client_info, + ) + + request = customer_service_pb2.MutateCustomerRequest( + customer_id=customer_id, + operation=operation_, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_customer'](request, retry=retry, timeout=timeout, metadata=metadata) + + def list_accessible_customers( + self, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns resource names of customers directly accessible by the + user authenticating the call. + + Args: + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListAccessibleCustomersResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_accessible_customers' not in self._inner_api_calls: + self._inner_api_calls['list_accessible_customers'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_accessible_customers, + default_retry=self._method_configs['ListAccessibleCustomers'].retry, + default_timeout=self._method_configs['ListAccessibleCustomers'].timeout, + client_info=self._client_info, + ) + + request = customer_service_pb2.ListAccessibleCustomersRequest() + return self._inner_api_calls['list_accessible_customers'](request, retry=retry, timeout=timeout, metadata=metadata) + + def create_customer_client( + self, + customer_id, + customer_client, + email_address=None, + access_role=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates a new client under manager. The new client customer is returned. + + Args: + customer_id (str): Required. The ID of the Manager under whom client customer is being created. + customer_client (Union[dict, ~google.ads.googleads_v5.types.Customer]): Required. The new client customer to create. The resource name on this customer + will be ignored. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Customer` + email_address (str): Email address of the user who should be invited on the created client + customer. Accessible only to customers on the allow-list. + access_role (~google.ads.googleads_v5.types.AccessRole): The proposed role of user on the created client customer. + Accessible only to customers on the allow-list. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CreateCustomerClientResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'create_customer_client' not in self._inner_api_calls: + self._inner_api_calls['create_customer_client'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_customer_client, + default_retry=self._method_configs['CreateCustomerClient'].retry, + default_timeout=self._method_configs['CreateCustomerClient'].timeout, + client_info=self._client_info, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + email_address=email_address, + ) + + request = customer_service_pb2.CreateCustomerClientRequest( + customer_id=customer_id, + customer_client=customer_client, + email_address=email_address, + access_role=access_role, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['create_customer_client'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/customer_service_client_config.py b/google/ads/google_ads/v5/services/customer_service_client_config.py new file mode 100644 index 000000000..85424b9b3 --- /dev/null +++ b/google/ads/google_ads/v5/services/customer_service_client_config.py @@ -0,0 +1,46 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.CustomerService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetCustomer": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCustomer": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListAccessibleCustomers": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "CreateCustomerClient": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/detail_placement_view_service_client.py b/google/ads/google_ads/v5/services/detail_placement_view_service_client.py new file mode 100644 index 000000000..0c7046c82 --- /dev/null +++ b/google/ads/google_ads/v5/services/detail_placement_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services DetailPlacementViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import detail_placement_view_service_client_config +from google.ads.google_ads.v5.services.transports import detail_placement_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import detail_placement_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class DetailPlacementViewServiceClient(object): + """Service to fetch Detail Placement views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.DetailPlacementViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + DetailPlacementViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def detail_placement_view_path(cls, customer, detail_placement_view): + """Return a fully-qualified detail_placement_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/detailPlacementViews/{detail_placement_view}', + customer=customer, + detail_placement_view=detail_placement_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.DetailPlacementViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.DetailPlacementViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = detail_placement_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=detail_placement_view_service_grpc_transport.DetailPlacementViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = detail_placement_view_service_grpc_transport.DetailPlacementViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_detail_placement_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Detail Placement view in full detail. + + Args: + resource_name (str): Required. The resource name of the Detail Placement view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DetailPlacementView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_detail_placement_view' not in self._inner_api_calls: + self._inner_api_calls['get_detail_placement_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_detail_placement_view, + default_retry=self._method_configs['GetDetailPlacementView'].retry, + default_timeout=self._method_configs['GetDetailPlacementView'].timeout, + client_info=self._client_info, + ) + + request = detail_placement_view_service_pb2.GetDetailPlacementViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_detail_placement_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/detail_placement_view_service_client_config.py b/google/ads/google_ads/v5/services/detail_placement_view_service_client_config.py new file mode 100644 index 000000000..7cb289df3 --- /dev/null +++ b/google/ads/google_ads/v5/services/detail_placement_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.DetailPlacementViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetDetailPlacementView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/display_keyword_view_service_client.py b/google/ads/google_ads/v5/services/display_keyword_view_service_client.py new file mode 100644 index 000000000..b62e447bd --- /dev/null +++ b/google/ads/google_ads/v5/services/display_keyword_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services DisplayKeywordViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import display_keyword_view_service_client_config +from google.ads.google_ads.v5.services.transports import display_keyword_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import display_keyword_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class DisplayKeywordViewServiceClient(object): + """Service to manage display keyword views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.DisplayKeywordViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + DisplayKeywordViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def display_keyword_view_path(cls, customer, display_keyword_view): + """Return a fully-qualified display_keyword_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/displayKeywordViews/{display_keyword_view}', + customer=customer, + display_keyword_view=display_keyword_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.DisplayKeywordViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.DisplayKeywordViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = display_keyword_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=display_keyword_view_service_grpc_transport.DisplayKeywordViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = display_keyword_view_service_grpc_transport.DisplayKeywordViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_display_keyword_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested display keyword view in full detail. + + Args: + resource_name (str): Required. The resource name of the display keyword view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DisplayKeywordView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_display_keyword_view' not in self._inner_api_calls: + self._inner_api_calls['get_display_keyword_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_display_keyword_view, + default_retry=self._method_configs['GetDisplayKeywordView'].retry, + default_timeout=self._method_configs['GetDisplayKeywordView'].timeout, + client_info=self._client_info, + ) + + request = display_keyword_view_service_pb2.GetDisplayKeywordViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_display_keyword_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/display_keyword_view_service_client_config.py b/google/ads/google_ads/v5/services/display_keyword_view_service_client_config.py new file mode 100644 index 000000000..710a660e5 --- /dev/null +++ b/google/ads/google_ads/v5/services/display_keyword_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.DisplayKeywordViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetDisplayKeywordView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/distance_view_service_client.py b/google/ads/google_ads/v5/services/distance_view_service_client.py new file mode 100644 index 000000000..6d27b5e73 --- /dev/null +++ b/google/ads/google_ads/v5/services/distance_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services DistanceViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import distance_view_service_client_config +from google.ads.google_ads.v5.services.transports import distance_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import distance_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class DistanceViewServiceClient(object): + """Service to fetch distance views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.DistanceViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + DistanceViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def distance_view_path(cls, customer, distance_view): + """Return a fully-qualified distance_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/distanceViews/{distance_view}', + customer=customer, + distance_view=distance_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.DistanceViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.DistanceViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = distance_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=distance_view_service_grpc_transport.DistanceViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = distance_view_service_grpc_transport.DistanceViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_distance_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the attributes of the requested distance view. + + Args: + resource_name (str): Required. The resource name of the distance view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DistanceView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_distance_view' not in self._inner_api_calls: + self._inner_api_calls['get_distance_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_distance_view, + default_retry=self._method_configs['GetDistanceView'].retry, + default_timeout=self._method_configs['GetDistanceView'].timeout, + client_info=self._client_info, + ) + + request = distance_view_service_pb2.GetDistanceViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_distance_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/distance_view_service_client_config.py b/google/ads/google_ads/v5/services/distance_view_service_client_config.py new file mode 100644 index 000000000..d60ac2f11 --- /dev/null +++ b/google/ads/google_ads/v5/services/distance_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.DistanceViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetDistanceView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/domain_category_service_client.py b/google/ads/google_ads/v5/services/domain_category_service_client.py new file mode 100644 index 000000000..1ca190f9f --- /dev/null +++ b/google/ads/google_ads/v5/services/domain_category_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services DomainCategoryService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import domain_category_service_client_config +from google.ads.google_ads.v5.services.transports import domain_category_service_grpc_transport +from google.ads.google_ads.v5.proto.services import domain_category_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class DomainCategoryServiceClient(object): + """Service to fetch domain categories.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.DomainCategoryService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + DomainCategoryServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def domain_category_path(cls, customer, domain_category): + """Return a fully-qualified domain_category string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/domainCategories/{domain_category}', + customer=customer, + domain_category=domain_category, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.DomainCategoryServiceGrpcTransport, + Callable[[~.Credentials, type], ~.DomainCategoryServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = domain_category_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=domain_category_service_grpc_transport.DomainCategoryServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = domain_category_service_grpc_transport.DomainCategoryServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_domain_category( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested domain category. + + Args: + resource_name (str): Required. Resource name of the domain category to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DomainCategory` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_domain_category' not in self._inner_api_calls: + self._inner_api_calls['get_domain_category'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_domain_category, + default_retry=self._method_configs['GetDomainCategory'].retry, + default_timeout=self._method_configs['GetDomainCategory'].timeout, + client_info=self._client_info, + ) + + request = domain_category_service_pb2.GetDomainCategoryRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_domain_category'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/domain_category_service_client_config.py b/google/ads/google_ads/v5/services/domain_category_service_client_config.py new file mode 100644 index 000000000..b9ab709a8 --- /dev/null +++ b/google/ads/google_ads/v5/services/domain_category_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.DomainCategoryService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetDomainCategory": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client.py b/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client.py new file mode 100644 index 000000000..e2fcc1ce3 --- /dev/null +++ b/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services DynamicSearchAdsSearchTermViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import dynamic_search_ads_search_term_view_service_client_config +from google.ads.google_ads.v5.services.transports import dynamic_search_ads_search_term_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import dynamic_search_ads_search_term_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class DynamicSearchAdsSearchTermViewServiceClient(object): + """Service to fetch dynamic search ads views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + DynamicSearchAdsSearchTermViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def dynamic_search_ads_search_term_view_path(cls, customer, dynamic_search_ads_search_term_view): + """Return a fully-qualified dynamic_search_ads_search_term_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/dynamicSearchAdsSearchTermViews/{dynamic_search_ads_search_term_view}', + customer=customer, + dynamic_search_ads_search_term_view=dynamic_search_ads_search_term_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.DynamicSearchAdsSearchTermViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.DynamicSearchAdsSearchTermViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = dynamic_search_ads_search_term_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=dynamic_search_ads_search_term_view_service_grpc_transport.DynamicSearchAdsSearchTermViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = dynamic_search_ads_search_term_view_service_grpc_transport.DynamicSearchAdsSearchTermViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_dynamic_search_ads_search_term_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested dynamic search ads search term view in full detail. + + Args: + resource_name (str): Required. The resource name of the dynamic search ads search term view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DynamicSearchAdsSearchTermView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_dynamic_search_ads_search_term_view' not in self._inner_api_calls: + self._inner_api_calls['get_dynamic_search_ads_search_term_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_dynamic_search_ads_search_term_view, + default_retry=self._method_configs['GetDynamicSearchAdsSearchTermView'].retry, + default_timeout=self._method_configs['GetDynamicSearchAdsSearchTermView'].timeout, + client_info=self._client_info, + ) + + request = dynamic_search_ads_search_term_view_service_pb2.GetDynamicSearchAdsSearchTermViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_dynamic_search_ads_search_term_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client_config.py b/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client_config.py new file mode 100644 index 000000000..1f58acb0a --- /dev/null +++ b/google/ads/google_ads/v5/services/dynamic_search_ads_search_term_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.DynamicSearchAdsSearchTermViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetDynamicSearchAdsSearchTermView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/enums.py b/google/ads/google_ads/v5/services/enums.py new file mode 100644 index 000000000..ef5b133f8 --- /dev/null +++ b/google/ads/google_ads/v5/services/enums.py @@ -0,0 +1,12294 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Wrappers for protocol buffer enum types.""" + +import enum +from textwrap import dedent + + +class _CreateEnumTypeUponFirstAccess(object): + r"""A lazy container class for a single capitalized Enum attribute. + It will exec code to define the Enum type within the instance dict upon + first access. Reducing import time for a module full of Enum definitions. + Example: + >>> class ThingHolder(_CreateEnumTypeUponFirstAccess): + ... Thing = '''\ + ... Thing = '''\ +class Thing(enum.IntEnum): + ... GOOD = 0 + ... BAD = 1 + ... UNKNOWN = 2 + ... ''' + ... + >>> ThingHolder = ThingHolder() # The instance enables the magic. + This avoids executing the slow Python enum.Enum metaclass construction code + at import time. Instead, the first time ThingHolder.Thing is accessed, the + code to define the enum type will be run and replace the Thing attribute on + ThingHolder with the instantiated Thing type. + >>> ThingHolder + + >>> dir(ThingHolder) + ['Thing'] + >>> ThingHolder.Thing.UNKNOWN # Triggers the actual creation of Thing. + + >>> ThingHolder.Thing.GOOD + + >>> ThingHolder + + The import time enum type creation cost is deferred. The runtime cost upon + first access will be a bit higher. Under the assumption that most + applications never access the majority of the enum types, the reduction in + startup time makes for a nicer experience. + """ + def __getattribute__(self, name): + # We use type(self) instead of self.__class__ to avoid recursing. + names = [k for k in type(self).__dict__ if k[0].isupper()] + assert len(names) <= 1, names + if not names: + # Race condition, another thread finished executing this before us. + return getattr(self, enum_type_name) + enum_type_name = names[0] + if name == enum_type_name: + try: + class_def_src = dedent(getattr(type(self), enum_type_name)) + except AttributeError: + # The only way this should happen is if another thread was also + # executing this method at the same time and finished defining + # the enum class on our instance and deleting its source from + # the class before our own call got this far. + # Assume our method is gone and revert to a regular instance + # attribute lookup to find our class. + assert not hasattr(type(self), '__getattribute__') + return getattr(self, enum_type_name) + if not isinstance(class_def_src, str): + # If the class attribute has been replaced with something else, + # another must have already executed it and created our type. + return class_def_src + + # Here 'class_def_src' will be the stringified definition of the + # inner enum. This assertion checks that the string starts with + # 'class AccessRole(enum.' if, for example, the outer class name + # is AccessRoleEnum. This follows the pattern for the majority of + # our API enums, where the outer message is FooBarEnum and the inner + # enum is named FooBar. In a few cases enums are defined on + # Operations, for example 'FeedAttributeOperation', and the inner + # enum is always called 'Operator' so this assertion also allows the + # pattern 'class Operator(enum.'. + assertion = class_def_src.startswith( + 'class %s(enum.' % enum_type_name) or class_def_src.startswith( + 'class Operator(enum.') + assert assertion, 'Expected ' + enum_type_name + # It is possible for multiple threads to wind up doing this exec at + # the same time. That'll create multiple identical types and assign + # them into the instance dict under the same name. One of them will + # "win" the final spot in class dict. BUT each simultaneous + # "first" call may wind up returning an "obsolete" type... Not + # great, but as they're IntEnum classes, nobody should be using + # the class type in type checks. Add a lock if this bothers you. + exec(class_def_src, {'enum': enum}, + object.__getattribute__(self, '__dict__')) + # We've done our job, get out of the way forever. + type(self).__getattribute__ = object.__getattribute__ + enum_type = getattr(self, enum_type_name) + # No need for the enum class source anymore. + ###delattr(type(self), enum_type_name) + + # ... + # These two statements are overkill and need rewriting if this base + # class were moved to a utility library or used from outside this + # file as globals() refers to the scope in the current file. If + # you get rid of these, uncomment the delattr above to still + # release some memory. + setattr(type(self), enum_type_name, enum_type) + # Get rid of our instance singleton now that its job is done. + # (obsoletes the reassigning of __getattribute__ above) + globals()[type(self).__name__] = type(self) + # ... + + return enum_type + else: + raise AttributeError('%r has no attribute %r' % + (type(self).__name__, name)) + +class AccessInvitationErrorEnum(_CreateEnumTypeUponFirstAccess): + AccessInvitationError = '''\ + class AccessInvitationError(enum.IntEnum): + """ + Enum describing possible AccessInvitation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_EMAIL_ADDRESS (int): The email address is invalid for sending an invitation. + EMAIL_ADDRESS_ALREADY_HAS_ACCESS (int): Email address already has access to this customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_EMAIL_ADDRESS = 2 + EMAIL_ADDRESS_ALREADY_HAS_ACCESS = 3 +''' +AccessInvitationErrorEnum = AccessInvitationErrorEnum() # For __getattribute__ + + +class AccessReasonEnum(_CreateEnumTypeUponFirstAccess): + AccessReason = '''\ + class AccessReason(enum.IntEnum): + """ + Enum describing possible access reasons. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + OWNED (int): The resource is owned by the user. + SHARED (int): The resource is shared to the user. + LICENSED (int): The resource is licensed to the user. + SUBSCRIBED (int): The user subscribed to the resource. + AFFILIATED (int): The resource is accessible to the user. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OWNED = 2 + SHARED = 3 + LICENSED = 4 + SUBSCRIBED = 5 + AFFILIATED = 6 +''' +AccessReasonEnum = AccessReasonEnum() # For __getattribute__ + + +class AccessRoleEnum(_CreateEnumTypeUponFirstAccess): + AccessRole = '''\ + class AccessRole(enum.IntEnum): + """ + Possible access role of a user. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADMIN (int): Owns its account and can control the addition of other users. + STANDARD (int): Can modify campaigns, but can't affect other users. + READ_ONLY (int): Can view campaigns and account changes, but cannot make edits. + EMAIL_ONLY (int): Role for \"email only\" access. Represents an email recipient rather than + a true User entity. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADMIN = 2 + STANDARD = 3 + READ_ONLY = 4 + EMAIL_ONLY = 5 +''' +AccessRoleEnum = AccessRoleEnum() # For __getattribute__ + + +class AccountBudgetProposalErrorEnum(_CreateEnumTypeUponFirstAccess): + AccountBudgetProposalError = '''\ + class AccountBudgetProposalError(enum.IntEnum): + """ + Enum describing possible account budget proposal errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FIELD_MASK_NOT_ALLOWED (int): The field mask must be empty for create/end/remove proposals. + IMMUTABLE_FIELD (int): The field cannot be set because of the proposal type. + REQUIRED_FIELD_MISSING (int): The field is required because of the proposal type. + CANNOT_CANCEL_APPROVED_PROPOSAL (int): Proposals that have been approved cannot be cancelled. + CANNOT_REMOVE_UNAPPROVED_BUDGET (int): Budgets that haven't been approved cannot be removed. + CANNOT_REMOVE_RUNNING_BUDGET (int): Budgets that are currently running cannot be removed. + CANNOT_END_UNAPPROVED_BUDGET (int): Budgets that haven't been approved cannot be truncated. + CANNOT_END_INACTIVE_BUDGET (int): Only budgets that are currently running can be truncated. + BUDGET_NAME_REQUIRED (int): All budgets must have names. + CANNOT_UPDATE_OLD_BUDGET (int): Expired budgets cannot be edited after a sufficient amount of time has + passed. + CANNOT_END_IN_PAST (int): It is not permissible a propose a new budget that ends in the past. + CANNOT_EXTEND_END_TIME (int): An expired budget cannot be extended to overlap with the running budget. + PURCHASE_ORDER_NUMBER_REQUIRED (int): A purchase order number is required. + PENDING_UPDATE_PROPOSAL_EXISTS (int): Budgets that have a pending update cannot be updated. + MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP (int): Cannot propose more than one budget when the corresponding billing setup + hasn't been approved. + CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET (int): Cannot update the start time of a budget that has already started. + SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED (int): Cannot update the spending limit of a budget with an amount lower than + what has already been spent. + UPDATE_IS_NO_OP (int): Cannot propose a budget update without actually changing any fields. + END_TIME_MUST_FOLLOW_START_TIME (int): The end time must come after the start time. + BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP (int): The budget's date range must fall within the date range of its billing + setup. + NOT_AUTHORIZED (int): The user is not authorized to mutate budgets for the given billing setup. + INVALID_BILLING_SETUP (int): Mutates are not allowed for the given billing setup. + OVERLAPS_EXISTING_BUDGET (int): Budget creation failed as it overlaps with an pending budget proposal + or an approved budget. + CANNOT_CREATE_BUDGET_THROUGH_API (int): The control setting in user's payments profile doesn't allow budget + creation through API. Log in to Google Ads to create budget. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FIELD_MASK_NOT_ALLOWED = 2 + IMMUTABLE_FIELD = 3 + REQUIRED_FIELD_MISSING = 4 + CANNOT_CANCEL_APPROVED_PROPOSAL = 5 + CANNOT_REMOVE_UNAPPROVED_BUDGET = 6 + CANNOT_REMOVE_RUNNING_BUDGET = 7 + CANNOT_END_UNAPPROVED_BUDGET = 8 + CANNOT_END_INACTIVE_BUDGET = 9 + BUDGET_NAME_REQUIRED = 10 + CANNOT_UPDATE_OLD_BUDGET = 11 + CANNOT_END_IN_PAST = 12 + CANNOT_EXTEND_END_TIME = 13 + PURCHASE_ORDER_NUMBER_REQUIRED = 14 + PENDING_UPDATE_PROPOSAL_EXISTS = 15 + MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = 16 + CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = 17 + SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = 18 + UPDATE_IS_NO_OP = 19 + END_TIME_MUST_FOLLOW_START_TIME = 20 + BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = 21 + NOT_AUTHORIZED = 22 + INVALID_BILLING_SETUP = 23 + OVERLAPS_EXISTING_BUDGET = 24 + CANNOT_CREATE_BUDGET_THROUGH_API = 25 +''' +AccountBudgetProposalErrorEnum = AccountBudgetProposalErrorEnum() # For __getattribute__ + + +class AccountBudgetProposalStatusEnum(_CreateEnumTypeUponFirstAccess): + AccountBudgetProposalStatus = '''\ + class AccountBudgetProposalStatus(enum.IntEnum): + """ + The possible statuses of an AccountBudgetProposal. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The proposal is pending approval. + APPROVED_HELD (int): The proposal has been approved but the corresponding billing setup + has not. This can occur for proposals that set up the first budget + when signing up for billing or when performing a change of bill-to + operation. + APPROVED (int): The proposal has been approved. + CANCELLED (int): The proposal has been cancelled by the user. + REJECTED (int): The proposal has been rejected by the user, e.g. by rejecting an + acceptance email. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + APPROVED_HELD = 3 + APPROVED = 4 + CANCELLED = 5 + REJECTED = 6 +''' +AccountBudgetProposalStatusEnum = AccountBudgetProposalStatusEnum() # For __getattribute__ + + +class AccountBudgetProposalTypeEnum(_CreateEnumTypeUponFirstAccess): + AccountBudgetProposalType = '''\ + class AccountBudgetProposalType(enum.IntEnum): + """ + The possible types of an AccountBudgetProposal. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CREATE (int): Identifies a request to create a new budget. + UPDATE (int): Identifies a request to edit an existing budget. + END (int): Identifies a request to end a budget that has already started. + REMOVE (int): Identifies a request to remove a budget that hasn't started yet. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CREATE = 2 + UPDATE = 3 + END = 4 + REMOVE = 5 +''' +AccountBudgetProposalTypeEnum = AccountBudgetProposalTypeEnum() # For __getattribute__ + + +class AccountBudgetStatusEnum(_CreateEnumTypeUponFirstAccess): + AccountBudgetStatus = '''\ + class AccountBudgetStatus(enum.IntEnum): + """ + The possible statuses of an AccountBudget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The account budget is pending approval. + APPROVED (int): The account budget has been approved. + CANCELLED (int): The account budget has been cancelled by the user. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + APPROVED = 3 + CANCELLED = 4 +''' +AccountBudgetStatusEnum = AccountBudgetStatusEnum() # For __getattribute__ + + +class AccountLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + AccountLinkError = '''\ + class AccountLinkError(enum.IntEnum): + """ + Enum describing possible account link errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_STATUS (int): The new link status is invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_STATUS = 2 +''' +AccountLinkErrorEnum = AccountLinkErrorEnum() # For __getattribute__ + + +class AccountLinkStatusEnum(_CreateEnumTypeUponFirstAccess): + AccountLinkStatus = '''\ + class AccountLinkStatus(enum.IntEnum): + """ + Describes the possible statuses for a link between a Google Ads customer + and another account. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The link is enabled. + REMOVED (int): The link is removed/disabled. + REQUESTED (int): The link to the other account has been requested. A user on the other + account may now approve the link by setting the status to ENABLED + PENDING_APPROVAL (int): This link has been requested by a user on the other account. It may be + approved by a user on this account by setting the status to ENABLED + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 + REQUESTED = 4 + PENDING_APPROVAL = 5 +''' +AccountLinkStatusEnum = AccountLinkStatusEnum() # For __getattribute__ + + +class AdCustomizerErrorEnum(_CreateEnumTypeUponFirstAccess): + AdCustomizerError = '''\ + class AdCustomizerError(enum.IntEnum): + """ + Enum describing possible ad customizer errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + COUNTDOWN_INVALID_DATE_FORMAT (int): Invalid date argument in countdown function. + COUNTDOWN_DATE_IN_PAST (int): Countdown end date is in the past. + COUNTDOWN_INVALID_LOCALE (int): Invalid locale string in countdown function. + COUNTDOWN_INVALID_START_DAYS_BEFORE (int): Days-before argument to countdown function is not positive. + UNKNOWN_USER_LIST (int): A user list referenced in an IF function does not exist. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + COUNTDOWN_INVALID_DATE_FORMAT = 2 + COUNTDOWN_DATE_IN_PAST = 3 + COUNTDOWN_INVALID_LOCALE = 4 + COUNTDOWN_INVALID_START_DAYS_BEFORE = 5 + UNKNOWN_USER_LIST = 6 +''' +AdCustomizerErrorEnum = AdCustomizerErrorEnum() # For __getattribute__ + + +class AdCustomizerPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + AdCustomizerPlaceholderField = '''\ + class AdCustomizerPlaceholderField(enum.IntEnum): + """ + Possible values for Ad Customizers placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INTEGER (int): Data Type: INT64. Integer value to be inserted. + PRICE (int): Data Type: STRING. Price value to be inserted. + DATE (int): Data Type: DATE\_TIME. Date value to be inserted. + STRING (int): Data Type: STRING. String value to be inserted. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INTEGER = 2 + PRICE = 3 + DATE = 4 + STRING = 5 +''' +AdCustomizerPlaceholderFieldEnum = AdCustomizerPlaceholderFieldEnum() # For __getattribute__ + + +class AdErrorEnum(_CreateEnumTypeUponFirstAccess): + AdError = '''\ + class AdError(enum.IntEnum): + """ + Enum describing possible ad errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE (int): Ad customizers are not supported for ad type. + APPROXIMATELY_TOO_LONG (int): Estimating character sizes the string is too long. + APPROXIMATELY_TOO_SHORT (int): Estimating character sizes the string is too short. + BAD_SNIPPET (int): There is a problem with the snippet. + CANNOT_MODIFY_AD (int): Cannot modify an ad. + CANNOT_SET_BUSINESS_NAME_IF_URL_SET (int): business name and url cannot be set at the same time + CANNOT_SET_FIELD (int): The specified field is incompatible with this ad's type or settings. + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET (int): Cannot set field when originAdId is set. + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING (int): Cannot set field when an existing ad id is set for sharing. + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE (int): Cannot set allowFlexibleColor false if no color is provided by user. + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING (int): When user select native, no color control is allowed because we will + always respect publisher color for native format serving. + CANNOT_SET_URL (int): Cannot specify a url for the ad type + CANNOT_SET_WITHOUT_FINAL_URLS (int): Cannot specify a tracking or mobile url without also setting final urls + CANNOT_SET_WITH_FINAL_URLS (int): Cannot specify a legacy url and a final url simultaneously + CANNOT_SET_WITH_URL_DATA (int): Cannot specify a urls in UrlData and in template fields simultaneously. + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR (int): This operator cannot be used with a subclass of Ad. + CUSTOMER_NOT_APPROVED_MOBILEADS (int): Customer is not approved for mobile ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS (int): Customer is not approved for 3PAS richmedia ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS (int): Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. + CUSTOMER_NOT_ELIGIBLE (int): Not an eligible customer + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL (int): Customer is not eligible for updating beacon url + DIMENSION_ALREADY_IN_UNION (int): There already exists an ad with the same dimensions in the union. + DIMENSION_MUST_BE_SET (int): Ad's dimension must be set before setting union dimension. + DIMENSION_NOT_IN_UNION (int): Ad's dimension must be included in the union dimensions. + DISPLAY_URL_CANNOT_BE_SPECIFIED (int): Display Url cannot be specified (applies to Ad Exchange Ads) + DOMESTIC_PHONE_NUMBER_FORMAT (int): Telephone number contains invalid characters or invalid format. Please + re-enter your number using digits (0-9), dashes (-), and parentheses + only. + EMERGENCY_PHONE_NUMBER (int): Emergency telephone numbers are not allowed. Please enter a valid + domestic phone number to connect customers to your business. + EMPTY_FIELD (int): A required field was not specified or is an empty string. + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID (int): A feed attribute referenced in an ad customizer tag is not in the ad + customizer mapping for the feed. + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH (int): The ad customizer field mapping for the feed attribute does not match the + expected field type. + ILLEGAL_AD_CUSTOMIZER_TAG_USE (int): The use of ad customizer tags in the ad text is disallowed. Details in + trigger. + ILLEGAL_TAG_USE (int): Tags of the form {PH\_x}, where x is a number, are disallowed in ad + text. + INCONSISTENT_DIMENSIONS (int): The dimensions of the ad are specified or derived in multiple ways and + are not consistent. + INCONSISTENT_STATUS_IN_TEMPLATE_UNION (int): The status cannot differ among template ads of the same union. + INCORRECT_LENGTH (int): The length of the string is not valid. + INELIGIBLE_FOR_UPGRADE (int): The ad is ineligible for upgrade. + INVALID_AD_ADDRESS_CAMPAIGN_TARGET (int): User cannot create mobile ad for countries targeted in specified + campaign. + INVALID_AD_TYPE (int): Invalid Ad type. A specific type of Ad is required. + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE (int): Headline, description or phone cannot be present when creating mobile + image ad. + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT (int): Image cannot be present when creating mobile text ad. + INVALID_CALL_TO_ACTION_TEXT (int): Invalid call to action text. + INVALID_CHARACTER_FOR_URL (int): Invalid character in URL. + INVALID_COUNTRY_CODE (int): Creative's country code is not valid. + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG (int): Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) + INVALID_INPUT (int): An input error whose real reason was not properly mapped (should not + happen). + INVALID_MARKUP_LANGUAGE (int): An invalid markup language was entered. + INVALID_MOBILE_CARRIER (int): An invalid mobile carrier was entered. + INVALID_MOBILE_CARRIER_TARGET (int): Specified mobile carriers target a country not targeted by the campaign. + INVALID_NUMBER_OF_ELEMENTS (int): Wrong number of elements for given element type + INVALID_PHONE_NUMBER_FORMAT (int): The format of the telephone number is incorrect. Please re-enter the + number using the correct format. + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID (int): The certified vendor format id is incorrect. + INVALID_TEMPLATE_DATA (int): The template ad data contains validation errors. + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE (int): The template field doesn't have have the correct type. + INVALID_TEMPLATE_ID (int): Invalid template id. + LINE_TOO_WIDE (int): After substituting replacement strings, the line is too wide. + MISSING_AD_CUSTOMIZER_MAPPING (int): The feed referenced must have ad customizer mapping to be used in a + customizer tag. + MISSING_ADDRESS_COMPONENT (int): Missing address component in template element address field. + MISSING_ADVERTISEMENT_NAME (int): An ad name must be entered. + MISSING_BUSINESS_NAME (int): Business name must be entered. + MISSING_DESCRIPTION1 (int): Description (line 2) must be entered. + MISSING_DESCRIPTION2 (int): Description (line 3) must be entered. + MISSING_DESTINATION_URL_TAG (int): The destination url must contain at least one tag (e.g. {lpurl}) + MISSING_LANDING_PAGE_URL_TAG (int): The tracking url template of ExpandedDynamicSearchAd must contain at + least one tag. (e.g. {lpurl}) + MISSING_DIMENSION (int): A valid dimension must be specified for this ad. + MISSING_DISPLAY_URL (int): A display URL must be entered. + MISSING_HEADLINE (int): Headline must be entered. + MISSING_HEIGHT (int): A height must be entered. + MISSING_IMAGE (int): An image must be entered. + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS (int): Marketing image or product videos are required. + MISSING_MARKUP_LANGUAGES (int): The markup language in which your site is written must be entered. + MISSING_MOBILE_CARRIER (int): A mobile carrier must be entered. + MISSING_PHONE (int): Phone number must be entered. + MISSING_REQUIRED_TEMPLATE_FIELDS (int): Missing required template fields + MISSING_TEMPLATE_FIELD_VALUE (int): Missing a required field value + MISSING_TEXT (int): The ad must have text. + MISSING_VISIBLE_URL (int): A visible URL must be entered. + MISSING_WIDTH (int): A width must be entered. + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED (int): Only 1 feed can be used as the source of ad customizer substitutions in a + single ad. + MUST_USE_TEMP_AD_UNION_ID_ON_ADD (int): TempAdUnionId must be use when adding template ads. + TOO_LONG (int): The string has too many characters. + TOO_SHORT (int): The string has too few characters. + UNION_DIMENSIONS_CANNOT_CHANGE (int): Ad union dimensions cannot change for saved ads. + UNKNOWN_ADDRESS_COMPONENT (int): Address component is not {country, lat, lng}. + UNKNOWN_FIELD_NAME (int): Unknown unique field name + UNKNOWN_UNIQUE_NAME (int): Unknown unique name (template element type specifier) + UNSUPPORTED_DIMENSIONS (int): Unsupported ad dimension + URL_INVALID_SCHEME (int): URL starts with an invalid scheme. + URL_INVALID_TOP_LEVEL_DOMAIN (int): URL ends with an invalid top-level domain name. + URL_MALFORMED (int): URL contains illegal characters. + URL_NO_HOST (int): URL must contain a host name. + URL_NOT_EQUIVALENT (int): URL not equivalent during upgrade. + URL_HOST_NAME_TOO_LONG (int): URL host name too long to be stored as visible URL (applies to Ad + Exchange ads) + URL_NO_SCHEME (int): URL must start with a scheme. + URL_NO_TOP_LEVEL_DOMAIN (int): URL should end in a valid domain extension, such as .com or .net. + URL_PATH_NOT_ALLOWED (int): URL must not end with a path. + URL_PORT_NOT_ALLOWED (int): URL must not specify a port. + URL_QUERY_NOT_ALLOWED (int): URL must not contain a query. + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG (int): A url scheme is not allowed in front of tag in tracking url template + (e.g. http://{lpurl}) + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE (int): The user does not have permissions to create a template ad for the given + template. + INCONSISTENT_EXPANDABLE_SETTINGS (int): Expandable setting is inconsistent/wrong. For example, an AdX ad is + invalid if it has a expandable vendor format but no expanding directions + specified, or expanding directions is specified, but the vendor format is + not expandable. + INVALID_FORMAT (int): Format is invalid + INVALID_FIELD_TEXT (int): The text of this field did not match a pattern of allowed values. + ELEMENT_NOT_PRESENT (int): Template element is mising + IMAGE_ERROR (int): Error occurred during image processing + VALUE_NOT_IN_RANGE (int): The value is not within the valid range + FIELD_NOT_PRESENT (int): Template element field is not present + ADDRESS_NOT_COMPLETE (int): Address is incomplete + ADDRESS_INVALID (int): Invalid address + VIDEO_RETRIEVAL_ERROR (int): Error retrieving specified video + AUDIO_ERROR (int): Error processing audio + INVALID_YOUTUBE_DISPLAY_URL (int): Display URL is incorrect for YouTube PYV ads + TOO_MANY_PRODUCT_IMAGES (int): Too many product Images in GmailAd + TOO_MANY_PRODUCT_VIDEOS (int): Too many product Videos in GmailAd + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE (int): The device preference is not compatible with the ad type + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Call tracking is not supported for specified country. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED (int): Carrier specific short number is not allowed. + DISALLOWED_NUMBER_TYPE (int): Specified phone number type is disallowed. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number not supported for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY (int): Phone number not supported with call tracking enabled for country. + PREMIUM_RATE_NUMBER_NOT_ALLOWED (int): Premium rate phone number is not allowed. + VANITY_PHONE_NUMBER_NOT_ALLOWED (int): Vanity phone number is not allowed. + INVALID_CALL_CONVERSION_TYPE_ID (int): Invalid call conversion type id. + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID (int): Cannot disable call conversion and set conversion type id. + CANNOT_SET_PATH2_WITHOUT_PATH1 (int): Cannot set path2 without path1. + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME (int): Missing domain name in campaign setting when adding expanded dynamic + search ad. + INCOMPATIBLE_WITH_RESTRICTION_TYPE (int): The associated ad is not compatible with restriction type. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED (int): Consent for call recording is required for creating/updating call only + ads. Please see https://support.google.com/google-ads/answer/7412639. + MISSING_IMAGE_OR_MEDIA_BUNDLE (int): Either an image or a media bundle is required in a display upload ad. + PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN (int): The display upload product type is not supported in this campaign. + PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE (int): The default value of an ad placeholder can not be the empty string. + PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE (int): Ad placeholders with countdown functions must not have a default value. + PLACEHOLDER_DEFAULT_VALUE_MISSING (int): A previous ad placeholder that had a default value was found which means + that all (non-countdown) placeholders must have a default value. This + ad placeholder does not have a default value. + UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE (int): A previous ad placeholder that did not have a default value was found + which means that no placeholders may have a default value. This + ad placeholder does have a default value. + AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT (int): Two ad customizers may not be directly adjacent in an ad text. They must + be separated by at least one character. + UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION (int): The ad is not associated with any enabled AdGroupAd, and cannot be + updated. + TOO_MANY_AD_CUSTOMIZERS (int): Too many ad customizers in one asset. + INVALID_AD_CUSTOMIZER_FORMAT (int): The ad customizer tag is recognized, but the format is invalid. + NESTED_AD_CUSTOMIZER_SYNTAX (int): Customizer tags cannot be nested. + UNSUPPORTED_AD_CUSTOMIZER_SYNTAX (int): The ad customizer syntax used in the ad is not supported. + UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG (int): There exists unpaired brace in the ad customizer tag. + MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS (int): More than one type of countdown tag exists among all text lines. + DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID (int): Date time in the countdown tag is invalid. + DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST (int): Date time in the countdown tag is in the past. + UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND (int): Cannot recognize the ad customizer tag. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2 + APPROXIMATELY_TOO_LONG = 3 + APPROXIMATELY_TOO_SHORT = 4 + BAD_SNIPPET = 5 + CANNOT_MODIFY_AD = 6 + CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7 + CANNOT_SET_FIELD = 8 + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9 + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10 + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11 + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12 + CANNOT_SET_URL = 13 + CANNOT_SET_WITHOUT_FINAL_URLS = 14 + CANNOT_SET_WITH_FINAL_URLS = 15 + CANNOT_SET_WITH_URL_DATA = 17 + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18 + CUSTOMER_NOT_APPROVED_MOBILEADS = 19 + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20 + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21 + CUSTOMER_NOT_ELIGIBLE = 22 + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23 + DIMENSION_ALREADY_IN_UNION = 24 + DIMENSION_MUST_BE_SET = 25 + DIMENSION_NOT_IN_UNION = 26 + DISPLAY_URL_CANNOT_BE_SPECIFIED = 27 + DOMESTIC_PHONE_NUMBER_FORMAT = 28 + EMERGENCY_PHONE_NUMBER = 29 + EMPTY_FIELD = 30 + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31 + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32 + ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33 + ILLEGAL_TAG_USE = 34 + INCONSISTENT_DIMENSIONS = 35 + INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36 + INCORRECT_LENGTH = 37 + INELIGIBLE_FOR_UPGRADE = 38 + INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39 + INVALID_AD_TYPE = 40 + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41 + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42 + INVALID_CALL_TO_ACTION_TEXT = 43 + INVALID_CHARACTER_FOR_URL = 44 + INVALID_COUNTRY_CODE = 45 + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47 + INVALID_INPUT = 48 + INVALID_MARKUP_LANGUAGE = 49 + INVALID_MOBILE_CARRIER = 50 + INVALID_MOBILE_CARRIER_TARGET = 51 + INVALID_NUMBER_OF_ELEMENTS = 52 + INVALID_PHONE_NUMBER_FORMAT = 53 + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54 + INVALID_TEMPLATE_DATA = 55 + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56 + INVALID_TEMPLATE_ID = 57 + LINE_TOO_WIDE = 58 + MISSING_AD_CUSTOMIZER_MAPPING = 59 + MISSING_ADDRESS_COMPONENT = 60 + MISSING_ADVERTISEMENT_NAME = 61 + MISSING_BUSINESS_NAME = 62 + MISSING_DESCRIPTION1 = 63 + MISSING_DESCRIPTION2 = 64 + MISSING_DESTINATION_URL_TAG = 65 + MISSING_LANDING_PAGE_URL_TAG = 66 + MISSING_DIMENSION = 67 + MISSING_DISPLAY_URL = 68 + MISSING_HEADLINE = 69 + MISSING_HEIGHT = 70 + MISSING_IMAGE = 71 + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72 + MISSING_MARKUP_LANGUAGES = 73 + MISSING_MOBILE_CARRIER = 74 + MISSING_PHONE = 75 + MISSING_REQUIRED_TEMPLATE_FIELDS = 76 + MISSING_TEMPLATE_FIELD_VALUE = 77 + MISSING_TEXT = 78 + MISSING_VISIBLE_URL = 79 + MISSING_WIDTH = 80 + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81 + MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82 + TOO_LONG = 83 + TOO_SHORT = 84 + UNION_DIMENSIONS_CANNOT_CHANGE = 85 + UNKNOWN_ADDRESS_COMPONENT = 86 + UNKNOWN_FIELD_NAME = 87 + UNKNOWN_UNIQUE_NAME = 88 + UNSUPPORTED_DIMENSIONS = 89 + URL_INVALID_SCHEME = 90 + URL_INVALID_TOP_LEVEL_DOMAIN = 91 + URL_MALFORMED = 92 + URL_NO_HOST = 93 + URL_NOT_EQUIVALENT = 94 + URL_HOST_NAME_TOO_LONG = 95 + URL_NO_SCHEME = 96 + URL_NO_TOP_LEVEL_DOMAIN = 97 + URL_PATH_NOT_ALLOWED = 98 + URL_PORT_NOT_ALLOWED = 99 + URL_QUERY_NOT_ALLOWED = 100 + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102 + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103 + INCONSISTENT_EXPANDABLE_SETTINGS = 104 + INVALID_FORMAT = 105 + INVALID_FIELD_TEXT = 106 + ELEMENT_NOT_PRESENT = 107 + IMAGE_ERROR = 108 + VALUE_NOT_IN_RANGE = 109 + FIELD_NOT_PRESENT = 110 + ADDRESS_NOT_COMPLETE = 111 + ADDRESS_INVALID = 112 + VIDEO_RETRIEVAL_ERROR = 113 + AUDIO_ERROR = 114 + INVALID_YOUTUBE_DISPLAY_URL = 115 + TOO_MANY_PRODUCT_IMAGES = 116 + TOO_MANY_PRODUCT_VIDEOS = 117 + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118 + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119 + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120 + DISALLOWED_NUMBER_TYPE = 121 + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122 + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123 + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124 + VANITY_PHONE_NUMBER_NOT_ALLOWED = 125 + INVALID_CALL_CONVERSION_TYPE_ID = 126 + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127 + CANNOT_SET_PATH2_WITHOUT_PATH1 = 128 + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129 + INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130 + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 131 + MISSING_IMAGE_OR_MEDIA_BUNDLE = 132 + PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN = 133 + PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE = 134 + PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE = 135 + PLACEHOLDER_DEFAULT_VALUE_MISSING = 136 + UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE = 137 + AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT = 138 + UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION = 139 + TOO_MANY_AD_CUSTOMIZERS = 141 + INVALID_AD_CUSTOMIZER_FORMAT = 142 + NESTED_AD_CUSTOMIZER_SYNTAX = 143 + UNSUPPORTED_AD_CUSTOMIZER_SYNTAX = 144 + UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG = 145 + MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS = 146 + DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID = 147 + DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST = 148 + UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND = 149 +''' +AdErrorEnum = AdErrorEnum() # For __getattribute__ + + +class AdGroupAdErrorEnum(_CreateEnumTypeUponFirstAccess): + AdGroupAdError = '''\ + class AdGroupAdError(enum.IntEnum): + """ + Enum describing possible ad group ad errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_AD_LABEL_DOES_NOT_EXIST (int): No link found between the adgroup ad and the label. + AD_GROUP_AD_LABEL_ALREADY_EXISTS (int): The label has already been attached to the adgroup ad. + AD_NOT_UNDER_ADGROUP (int): The specified ad was not found in the adgroup + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD (int): Removed ads may not be modified + CANNOT_CREATE_DEPRECATED_ADS (int): An ad of this type is deprecated and cannot be created. Only deletions + are permitted. + CANNOT_CREATE_TEXT_ADS (int): Text ads are deprecated and cannot be created. Use expanded text ads + instead. + EMPTY_FIELD (int): A required field was not specified or is an empty string. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS (int): An ad may only be modified once per call + AD_TYPE_CANNOT_BE_PAUSED (int): AdGroupAds with the given ad type cannot be paused. + AD_TYPE_CANNOT_BE_REMOVED (int): AdGroupAds with the given ad type cannot be removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2 + AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3 + AD_NOT_UNDER_ADGROUP = 4 + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5 + CANNOT_CREATE_DEPRECATED_ADS = 6 + CANNOT_CREATE_TEXT_ADS = 7 + EMPTY_FIELD = 8 + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9 + AD_TYPE_CANNOT_BE_PAUSED = 10 + AD_TYPE_CANNOT_BE_REMOVED = 11 +''' +AdGroupAdErrorEnum = AdGroupAdErrorEnum() # For __getattribute__ + + +class AdGroupAdRotationModeEnum(_CreateEnumTypeUponFirstAccess): + AdGroupAdRotationMode = '''\ + class AdGroupAdRotationMode(enum.IntEnum): + """ + The possible ad rotation modes of an ad group. + + Attributes: + UNSPECIFIED (int): The ad rotation mode has not been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + OPTIMIZE (int): Optimize ad group ads based on clicks or conversions. + ROTATE_FOREVER (int): Rotate evenly forever. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPTIMIZE = 2 + ROTATE_FOREVER = 3 +''' +AdGroupAdRotationModeEnum = AdGroupAdRotationModeEnum() # For __getattribute__ + + +class AdGroupAdStatusEnum(_CreateEnumTypeUponFirstAccess): + AdGroupAdStatus = '''\ + class AdGroupAdStatus(enum.IntEnum): + """ + The possible statuses of an AdGroupAd. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The ad group ad is enabled. + PAUSED (int): The ad group ad is paused. + REMOVED (int): The ad group ad is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 +''' +AdGroupAdStatusEnum = AdGroupAdStatusEnum() # For __getattribute__ + + +class AdGroupBidModifierErrorEnum(_CreateEnumTypeUponFirstAccess): + AdGroupBidModifierError = '''\ + class AdGroupBidModifierError(enum.IntEnum): + """ + Enum describing possible ad group bid modifier errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CRITERION_ID_NOT_SUPPORTED (int): The criterion ID does not support bid modification. + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER (int): Cannot override the bid modifier for the given criterion ID if the parent + campaign is opted out of the same criterion. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CRITERION_ID_NOT_SUPPORTED = 2 + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3 +''' +AdGroupBidModifierErrorEnum = AdGroupBidModifierErrorEnum() # For __getattribute__ + + +class AdGroupCriterionApprovalStatusEnum(_CreateEnumTypeUponFirstAccess): + AdGroupCriterionApprovalStatus = '''\ + class AdGroupCriterionApprovalStatus(enum.IntEnum): + """ + Enumerates AdGroupCriterion approval statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + APPROVED (int): Approved. + DISAPPROVED (int): Disapproved. + PENDING_REVIEW (int): Pending Review. + UNDER_REVIEW (int): Under review. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPROVED = 2 + DISAPPROVED = 3 + PENDING_REVIEW = 4 + UNDER_REVIEW = 5 +''' +AdGroupCriterionApprovalStatusEnum = AdGroupCriterionApprovalStatusEnum() # For __getattribute__ + + +class AdGroupCriterionErrorEnum(_CreateEnumTypeUponFirstAccess): + AdGroupCriterionError = '''\ + class AdGroupCriterionError(enum.IntEnum): + """ + Enum describing possible ad group criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST (int): No link found between the AdGroupCriterion and the label. + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS (int): The label has already been attached to the AdGroupCriterion. + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION (int): Negative AdGroupCriterion cannot have labels. + TOO_MANY_OPERATIONS (int): Too many operations for a single call. + CANT_UPDATE_NEGATIVE (int): Negative ad group criteria are not updateable. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion (keyword v.s. placement) is required for ADD + and SET operations. + BID_INCOMPATIBLE_WITH_ADGROUP (int): Bid is incompatible with ad group's bidding settings. + CANNOT_TARGET_AND_EXCLUDE (int): Cannot target and exclude the same criterion at once. + ILLEGAL_URL (int): The URL of a placement is invalid. + INVALID_KEYWORD_TEXT (int): Keyword text was invalid. + INVALID_DESTINATION_URL (int): Destination URL was invalid. + MISSING_DESTINATION_URL_TAG (int): The destination url must contain at least one tag (e.g. {lpurl}) + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM (int): Keyword-level cpm bid is not supported + INVALID_USER_STATUS (int): For example, cannot add a biddable ad group criterion that had been + removed. + CANNOT_ADD_CRITERIA_TYPE (int): Criteria type cannot be targeted for the ad group. Either the account is + restricted to keywords only, the criteria type is incompatible with the + campaign's bidding strategy, or the criteria type can only be applied to + campaigns. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type cannot be excluded for the ad group. Refer to the + documentation for a specific criterion to check if it is excludable. + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE (int): Partial failure is not supported for shopping campaign mutate operations. + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS (int): Operations in the mutate request changes too many shopping ad groups. + Please split requests for multiple shopping ad groups across multiple + requests. + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS (int): Not allowed to modify url fields of an ad group criterion if there are + duplicate elements for that ad group criterion in the request. + CANNOT_SET_WITHOUT_FINAL_URLS (int): Cannot set url fields without also setting final urls. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST (int): Cannot clear final urls if final mobile urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST (int): Cannot clear final urls if final app urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS (int): Cannot clear final urls if tracking url template exists. + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST (int): Cannot clear final urls if url custom parameters exist. + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS (int): Cannot set both destination url and final urls. + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE (int): Cannot set both destination url and tracking url template. + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): Final urls are not supported for this criterion type. + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): Final mobile urls are not supported for this criterion type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2 + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3 + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4 + TOO_MANY_OPERATIONS = 5 + CANT_UPDATE_NEGATIVE = 6 + CONCRETE_TYPE_REQUIRED = 7 + BID_INCOMPATIBLE_WITH_ADGROUP = 8 + CANNOT_TARGET_AND_EXCLUDE = 9 + ILLEGAL_URL = 10 + INVALID_KEYWORD_TEXT = 11 + INVALID_DESTINATION_URL = 12 + MISSING_DESTINATION_URL_TAG = 13 + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14 + INVALID_USER_STATUS = 15 + CANNOT_ADD_CRITERIA_TYPE = 16 + CANNOT_EXCLUDE_CRITERIA_TYPE = 17 + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27 + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28 + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29 + CANNOT_SET_WITHOUT_FINAL_URLS = 30 + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31 + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32 + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33 + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34 + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35 + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36 + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37 + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38 +''' +AdGroupCriterionErrorEnum = AdGroupCriterionErrorEnum() # For __getattribute__ + + +class AdGroupCriterionStatusEnum(_CreateEnumTypeUponFirstAccess): + AdGroupCriterionStatus = '''\ + class AdGroupCriterionStatus(enum.IntEnum): + """ + The possible statuses of an AdGroupCriterion. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The ad group criterion is enabled. + PAUSED (int): The ad group criterion is paused. + REMOVED (int): The ad group criterion is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 +''' +AdGroupCriterionStatusEnum = AdGroupCriterionStatusEnum() # For __getattribute__ + + +class AdGroupErrorEnum(_CreateEnumTypeUponFirstAccess): + AdGroupError = '''\ + class AdGroupError(enum.IntEnum): + """ + Enum describing possible ad group errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_ADGROUP_NAME (int): AdGroup with the same name already exists for the campaign. + INVALID_ADGROUP_NAME (int): AdGroup name is not valid. + ADVERTISER_NOT_ON_CONTENT_NETWORK (int): Advertiser is not allowed to target sites or set site bids that are not + on the Google Search Network. + BID_TOO_BIG (int): Bid amount is too big. + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH (int): AdGroup bid does not match the campaign's bidding strategy. + MISSING_ADGROUP_NAME (int): AdGroup name is required for Add. + ADGROUP_LABEL_DOES_NOT_EXIST (int): No link found between the ad group and the label. + ADGROUP_LABEL_ALREADY_EXISTS (int): The label has already been attached to the ad group. + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP (int): The CriterionTypeGroup is not supported for the content bid dimension. + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE (int): The ad group type is not compatible with the campaign channel type. + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY (int): The ad group type is not supported in the country of sale of the + campaign. + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING (int): Ad groups of AdGroupType.SEARCH\_DYNAMIC\_ADS can only be added to + campaigns that have DynamicSearchAdsSetting attached. + PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER (int): Promoted hotels ad groups are only available to customers on the + allow-list. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_ADGROUP_NAME = 2 + INVALID_ADGROUP_NAME = 3 + ADVERTISER_NOT_ON_CONTENT_NETWORK = 5 + BID_TOO_BIG = 6 + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7 + MISSING_ADGROUP_NAME = 8 + ADGROUP_LABEL_DOES_NOT_EXIST = 9 + ADGROUP_LABEL_ALREADY_EXISTS = 10 + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11 + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12 + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13 + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14 + PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER = 15 +''' +AdGroupErrorEnum = AdGroupErrorEnum() # For __getattribute__ + + +class AdGroupFeedErrorEnum(_CreateEnumTypeUponFirstAccess): + AdGroupFeedError = '''\ + class AdGroupFeedError(enum.IntEnum): + """ + Enum describing possible ad group feed errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active feed already exists for this ad group and place holder type. + CANNOT_CREATE_FOR_REMOVED_FEED (int): The specified feed is removed. + ADGROUP_FEED_ALREADY_EXISTS (int): The AdGroupFeed already exists. UPDATE operation should be used to modify + the existing AdGroupFeed. + CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED (int): Cannot operate on removed AdGroupFeed. + INVALID_PLACEHOLDER_TYPE (int): Invalid placeholder type. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE (int): Feed mapping for this placeholder type does not exist. + NO_EXISTING_LOCATION_CUSTOMER_FEED (int): Location AdGroupFeeds cannot be created unless there is a location + CustomerFeed for the specified feed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2 + CANNOT_CREATE_FOR_REMOVED_FEED = 3 + ADGROUP_FEED_ALREADY_EXISTS = 4 + CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED = 5 + INVALID_PLACEHOLDER_TYPE = 6 + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7 + NO_EXISTING_LOCATION_CUSTOMER_FEED = 8 +''' +AdGroupFeedErrorEnum = AdGroupFeedErrorEnum() # For __getattribute__ + + +class AdGroupStatusEnum(_CreateEnumTypeUponFirstAccess): + AdGroupStatus = '''\ + class AdGroupStatus(enum.IntEnum): + """ + The possible statuses of an ad group. + + Attributes: + UNSPECIFIED (int): The status has not been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The ad group is enabled. + PAUSED (int): The ad group is paused. + REMOVED (int): The ad group is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 +''' +AdGroupStatusEnum = AdGroupStatusEnum() # For __getattribute__ + + +class AdGroupTypeEnum(_CreateEnumTypeUponFirstAccess): + AdGroupType = '''\ + class AdGroupType(enum.IntEnum): + """ + Enum listing the possible types of an ad group. + + Attributes: + UNSPECIFIED (int): The type has not been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + SEARCH_STANDARD (int): The default ad group type for Search campaigns. + DISPLAY_STANDARD (int): The default ad group type for Display campaigns. + SHOPPING_PRODUCT_ADS (int): The ad group type for Shopping campaigns serving standard product ads. + HOTEL_ADS (int): The default ad group type for Hotel campaigns. + SHOPPING_SMART_ADS (int): The type for ad groups in Smart Shopping campaigns. + VIDEO_BUMPER (int): Short unskippable in-stream video ads. + VIDEO_TRUE_VIEW_IN_STREAM (int): TrueView (skippable) in-stream video ads. + VIDEO_TRUE_VIEW_IN_DISPLAY (int): TrueView in-display video ads. + VIDEO_NON_SKIPPABLE_IN_STREAM (int): Unskippable in-stream video ads. + VIDEO_OUTSTREAM (int): Outstream video ads. + SEARCH_DYNAMIC_ADS (int): Ad group type for Dynamic Search Ads ad groups. + SHOPPING_COMPARISON_LISTING_ADS (int): The type for ad groups in Shopping Comparison Listing campaigns. + PROMOTED_HOTEL_ADS (int): The ad group type for Promoted Hotel ad groups. + VIDEO_RESPONSIVE (int): Video responsive ad groups. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_STANDARD = 2 + DISPLAY_STANDARD = 3 + SHOPPING_PRODUCT_ADS = 4 + HOTEL_ADS = 6 + SHOPPING_SMART_ADS = 7 + VIDEO_BUMPER = 8 + VIDEO_TRUE_VIEW_IN_STREAM = 9 + VIDEO_TRUE_VIEW_IN_DISPLAY = 10 + VIDEO_NON_SKIPPABLE_IN_STREAM = 11 + VIDEO_OUTSTREAM = 12 + SEARCH_DYNAMIC_ADS = 13 + SHOPPING_COMPARISON_LISTING_ADS = 14 + PROMOTED_HOTEL_ADS = 15 + VIDEO_RESPONSIVE = 16 +''' +AdGroupTypeEnum = AdGroupTypeEnum() # For __getattribute__ + + +class AdNetworkTypeEnum(_CreateEnumTypeUponFirstAccess): + AdNetworkType = '''\ + class AdNetworkType(enum.IntEnum): + """ + Enumerates Google Ads network types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + SEARCH (int): Google search. + SEARCH_PARTNERS (int): Search partners. + CONTENT (int): Display Network. + YOUTUBE_SEARCH (int): YouTube Search. + YOUTUBE_WATCH (int): YouTube Videos + MIXED (int): Cross-network. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH = 2 + SEARCH_PARTNERS = 3 + CONTENT = 4 + YOUTUBE_SEARCH = 5 + YOUTUBE_WATCH = 6 + MIXED = 7 +''' +AdNetworkTypeEnum = AdNetworkTypeEnum() # For __getattribute__ + + +class AdParameterErrorEnum(_CreateEnumTypeUponFirstAccess): + AdParameterError = '''\ + class AdParameterError(enum.IntEnum): + """ + Enum describing possible ad parameter errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_CRITERION_MUST_BE_KEYWORD (int): The ad group criterion must be a keyword criterion. + INVALID_INSERTION_TEXT_FORMAT (int): The insertion text is invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_CRITERION_MUST_BE_KEYWORD = 2 + INVALID_INSERTION_TEXT_FORMAT = 3 +''' +AdParameterErrorEnum = AdParameterErrorEnum() # For __getattribute__ + + +class AdServingOptimizationStatusEnum(_CreateEnumTypeUponFirstAccess): + AdServingOptimizationStatus = '''\ + class AdServingOptimizationStatus(enum.IntEnum): + """ + Enum describing possible serving statuses. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + OPTIMIZE (int): Ad serving is optimized based on CTR for the campaign. + CONVERSION_OPTIMIZE (int): Ad serving is optimized based on CTR \* Conversion for the campaign. If + the campaign is not in the conversion optimizer bidding strategy, it + will default to OPTIMIZED. + ROTATE (int): Ads are rotated evenly for 90 days, then optimized for clicks. + ROTATE_INDEFINITELY (int): Show lower performing ads more evenly with higher performing ads, and do + not optimize. + UNAVAILABLE (int): Ad serving optimization status is not available. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPTIMIZE = 2 + CONVERSION_OPTIMIZE = 3 + ROTATE = 4 + ROTATE_INDEFINITELY = 5 + UNAVAILABLE = 6 +''' +AdServingOptimizationStatusEnum = AdServingOptimizationStatusEnum() # For __getattribute__ + + +class AdSharingErrorEnum(_CreateEnumTypeUponFirstAccess): + AdSharingError = '''\ + class AdSharingError(enum.IntEnum): + """ + Enum describing possible ad sharing errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_ALREADY_CONTAINS_AD (int): Error resulting in attempting to add an Ad to an AdGroup that already + contains the Ad. + INCOMPATIBLE_AD_UNDER_AD_GROUP (int): Ad is not compatible with the AdGroup it is being shared with. + CANNOT_SHARE_INACTIVE_AD (int): Cannot add AdGroupAd on inactive Ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_ALREADY_CONTAINS_AD = 2 + INCOMPATIBLE_AD_UNDER_AD_GROUP = 3 + CANNOT_SHARE_INACTIVE_AD = 4 +''' +AdSharingErrorEnum = AdSharingErrorEnum() # For __getattribute__ + + +class AdStrengthEnum(_CreateEnumTypeUponFirstAccess): + AdStrength = '''\ + class AdStrength(enum.IntEnum): + """ + Enum listing the possible ad strengths. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The ad strength is currently pending. + NO_ADS (int): No ads could be generated. + POOR (int): Poor strength. + AVERAGE (int): Average strength. + GOOD (int): Good strength. + EXCELLENT (int): Excellent strength. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + NO_ADS = 3 + POOR = 4 + AVERAGE = 5 + GOOD = 6 + EXCELLENT = 7 +''' +AdStrengthEnum = AdStrengthEnum() # For __getattribute__ + + +class AdTypeEnum(_CreateEnumTypeUponFirstAccess): + AdType = '''\ + class AdType(enum.IntEnum): + """ + The possible types of an ad. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + TEXT_AD (int): The ad is a text ad. + EXPANDED_TEXT_AD (int): The ad is an expanded text ad. + CALL_ONLY_AD (int): The ad is a call only ad. + EXPANDED_DYNAMIC_SEARCH_AD (int): The ad is an expanded dynamic search ad. + HOTEL_AD (int): The ad is a hotel ad. + SHOPPING_SMART_AD (int): The ad is a Smart Shopping ad. + SHOPPING_PRODUCT_AD (int): The ad is a standard Shopping ad. + VIDEO_AD (int): The ad is a video ad. + GMAIL_AD (int): This ad is a Gmail ad. + IMAGE_AD (int): This ad is an Image ad. + RESPONSIVE_SEARCH_AD (int): The ad is a responsive search ad. + LEGACY_RESPONSIVE_DISPLAY_AD (int): The ad is a legacy responsive display ad. + APP_AD (int): The ad is an app ad. + LEGACY_APP_INSTALL_AD (int): The ad is a legacy app install ad. + RESPONSIVE_DISPLAY_AD (int): The ad is a responsive display ad. + LOCAL_AD (int): The ad is a local ad. + HTML5_UPLOAD_AD (int): The ad is a display upload ad with the HTML5\_UPLOAD\_AD product type. + DYNAMIC_HTML5_AD (int): The ad is a display upload ad with one of the DYNAMIC\_HTML5\_\* product + types. + APP_ENGAGEMENT_AD (int): The ad is an app engagement ad. + SHOPPING_COMPARISON_LISTING_AD (int): The ad is a Shopping Comparison Listing ad. + VIDEO_BUMPER_AD (int): Video bumper ad. + VIDEO_NON_SKIPPABLE_IN_STREAM_AD (int): Video non-skippable in-stream ad. + VIDEO_OUTSTREAM_AD (int): Video outstream ad. + VIDEO_TRUEVIEW_DISCOVERY_AD (int): Video TrueView in-display ad. + VIDEO_TRUEVIEW_IN_STREAM_AD (int): Video TrueView in-stream ad. + VIDEO_RESPONSIVE_AD (int): Video responsive ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TEXT_AD = 2 + EXPANDED_TEXT_AD = 3 + CALL_ONLY_AD = 6 + EXPANDED_DYNAMIC_SEARCH_AD = 7 + HOTEL_AD = 8 + SHOPPING_SMART_AD = 9 + SHOPPING_PRODUCT_AD = 10 + VIDEO_AD = 12 + GMAIL_AD = 13 + IMAGE_AD = 14 + RESPONSIVE_SEARCH_AD = 15 + LEGACY_RESPONSIVE_DISPLAY_AD = 16 + APP_AD = 17 + LEGACY_APP_INSTALL_AD = 18 + RESPONSIVE_DISPLAY_AD = 19 + LOCAL_AD = 20 + HTML5_UPLOAD_AD = 21 + DYNAMIC_HTML5_AD = 22 + APP_ENGAGEMENT_AD = 23 + SHOPPING_COMPARISON_LISTING_AD = 24 + VIDEO_BUMPER_AD = 25 + VIDEO_NON_SKIPPABLE_IN_STREAM_AD = 26 + VIDEO_OUTSTREAM_AD = 27 + VIDEO_TRUEVIEW_DISCOVERY_AD = 28 + VIDEO_TRUEVIEW_IN_STREAM_AD = 29 + VIDEO_RESPONSIVE_AD = 30 +''' +AdTypeEnum = AdTypeEnum() # For __getattribute__ + + +class AdvertisingChannelSubTypeEnum(_CreateEnumTypeUponFirstAccess): + AdvertisingChannelSubType = '''\ + class AdvertisingChannelSubType(enum.IntEnum): + """ + Enum describing the different channel subtypes. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used as a return value only. Represents value unknown in this version. + SEARCH_MOBILE_APP (int): Mobile app campaigns for Search. + DISPLAY_MOBILE_APP (int): Mobile app campaigns for Display. + SEARCH_EXPRESS (int): AdWords express campaigns for search. + DISPLAY_EXPRESS (int): AdWords Express campaigns for display. + SHOPPING_SMART_ADS (int): Smart Shopping campaigns. + DISPLAY_GMAIL_AD (int): Gmail Ad campaigns. + DISPLAY_SMART_CAMPAIGN (int): Smart display campaigns. + VIDEO_OUTSTREAM (int): Video Outstream campaigns. + VIDEO_ACTION (int): Video TrueView for Action campaigns. + VIDEO_NON_SKIPPABLE (int): Video campaigns with non-skippable video ads. + APP_CAMPAIGN (int): App Campaign that allows you to easily promote your Android or iOS app + across Google's top properties including Search, Play, YouTube, and the + Google Display Network. + APP_CAMPAIGN_FOR_ENGAGEMENT (int): App Campaign for engagement, focused on driving re-engagement with the + app across several of Google’s top properties including Search, YouTube, + and the Google Display Network. + LOCAL_CAMPAIGN (int): Campaigns specialized for local advertising. + SHOPPING_COMPARISON_LISTING_ADS (int): Shopping Comparison Listing campaigns. + SMART_CAMPAIGN (int): Standard Smart campaigns. + VIDEO_SEQUENCE (int): Video campaigns with sequence video ads. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_MOBILE_APP = 2 + DISPLAY_MOBILE_APP = 3 + SEARCH_EXPRESS = 4 + DISPLAY_EXPRESS = 5 + SHOPPING_SMART_ADS = 6 + DISPLAY_GMAIL_AD = 7 + DISPLAY_SMART_CAMPAIGN = 8 + VIDEO_OUTSTREAM = 9 + VIDEO_ACTION = 10 + VIDEO_NON_SKIPPABLE = 11 + APP_CAMPAIGN = 12 + APP_CAMPAIGN_FOR_ENGAGEMENT = 13 + LOCAL_CAMPAIGN = 14 + SHOPPING_COMPARISON_LISTING_ADS = 15 + SMART_CAMPAIGN = 16 + VIDEO_SEQUENCE = 17 +''' +AdvertisingChannelSubTypeEnum = AdvertisingChannelSubTypeEnum() # For __getattribute__ + + +class AdvertisingChannelTypeEnum(_CreateEnumTypeUponFirstAccess): + AdvertisingChannelType = '''\ + class AdvertisingChannelType(enum.IntEnum): + """ + Enum describing the various advertising channel types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SEARCH (int): Search Network. Includes display bundled, and Search+ campaigns. + DISPLAY (int): Google Display Network only. + SHOPPING (int): Shopping campaigns serve on the shopping property + and on google.com search results. + HOTEL (int): Hotel Ads campaigns. + VIDEO (int): Video campaigns. + MULTI_CHANNEL (int): App Campaigns, and App Campaigns for Engagement, that run + across multiple channels. + LOCAL (int): Local ads campaigns. + SMART (int): Smart campaigns. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH = 2 + DISPLAY = 3 + SHOPPING = 4 + HOTEL = 5 + VIDEO = 6 + MULTI_CHANNEL = 7 + LOCAL = 8 + SMART = 9 +''' +AdvertisingChannelTypeEnum = AdvertisingChannelTypeEnum() # For __getattribute__ + + +class AdxErrorEnum(_CreateEnumTypeUponFirstAccess): + AdxError = '''\ + class AdxError(enum.IntEnum): + """ + Enum describing possible adx errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + UNSUPPORTED_FEATURE (int): Attempt to use non-AdX feature by AdX customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNSUPPORTED_FEATURE = 2 +''' +AdxErrorEnum = AdxErrorEnum() # For __getattribute__ + + +class AffiliateLocationFeedRelationshipTypeEnum(_CreateEnumTypeUponFirstAccess): + AffiliateLocationFeedRelationshipType = '''\ + class AffiliateLocationFeedRelationshipType(enum.IntEnum): + """ + Possible values for a relationship type for an affiliate location feed. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + GENERAL_RETAILER (int): General retailer relationship. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + GENERAL_RETAILER = 2 +''' +AffiliateLocationFeedRelationshipTypeEnum = AffiliateLocationFeedRelationshipTypeEnum() # For __getattribute__ + + +class AffiliateLocationPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + AffiliateLocationPlaceholderField = '''\ + class AffiliateLocationPlaceholderField(enum.IntEnum): + """ + Possible values for Affiliate Location placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BUSINESS_NAME (int): Data Type: STRING. The name of the business. + ADDRESS_LINE_1 (int): Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_2 (int): Data Type: STRING. Line 2 of the business address. + CITY (int): Data Type: STRING. City of the business address. + PROVINCE (int): Data Type: STRING. Province of the business address. + POSTAL_CODE (int): Data Type: STRING. Postal code of the business address. + COUNTRY_CODE (int): Data Type: STRING. Country code of the business address. + PHONE_NUMBER (int): Data Type: STRING. Phone number of the business. + LANGUAGE_CODE (int): Data Type: STRING. Language code of the business. + CHAIN_ID (int): Data Type: INT64. ID of the chain. + CHAIN_NAME (int): Data Type: STRING. Name of the chain. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BUSINESS_NAME = 2 + ADDRESS_LINE_1 = 3 + ADDRESS_LINE_2 = 4 + CITY = 5 + PROVINCE = 6 + POSTAL_CODE = 7 + COUNTRY_CODE = 8 + PHONE_NUMBER = 9 + LANGUAGE_CODE = 10 + CHAIN_ID = 11 + CHAIN_NAME = 12 +''' +AffiliateLocationPlaceholderFieldEnum = AffiliateLocationPlaceholderFieldEnum() # For __getattribute__ + + +class AgeRangeTypeEnum(_CreateEnumTypeUponFirstAccess): + AgeRangeType = '''\ + class AgeRangeType(enum.IntEnum): + """ + The type of demographic age ranges (e.g. between 18 and 24 years old). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AGE_RANGE_18_24 (int): Between 18 and 24 years old. + AGE_RANGE_25_34 (int): Between 25 and 34 years old. + AGE_RANGE_35_44 (int): Between 35 and 44 years old. + AGE_RANGE_45_54 (int): Between 45 and 54 years old. + AGE_RANGE_55_64 (int): Between 55 and 64 years old. + AGE_RANGE_65_UP (int): 65 years old and beyond. + AGE_RANGE_UNDETERMINED (int): Undetermined age range. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AGE_RANGE_18_24 = 503001 + AGE_RANGE_25_34 = 503002 + AGE_RANGE_35_44 = 503003 + AGE_RANGE_45_54 = 503004 + AGE_RANGE_55_64 = 503005 + AGE_RANGE_65_UP = 503006 + AGE_RANGE_UNDETERMINED = 503999 +''' +AgeRangeTypeEnum = AgeRangeTypeEnum() # For __getattribute__ + + +class AppCampaignAppStoreEnum(_CreateEnumTypeUponFirstAccess): + AppCampaignAppStore = '''\ + class AppCampaignAppStore(enum.IntEnum): + """ + Enum describing app campaign app store. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + APPLE_APP_STORE (int): Apple app store. + GOOGLE_APP_STORE (int): Google play. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPLE_APP_STORE = 2 + GOOGLE_APP_STORE = 3 +''' +AppCampaignAppStoreEnum = AppCampaignAppStoreEnum() # For __getattribute__ + + +class AppCampaignBiddingStrategyGoalTypeEnum(_CreateEnumTypeUponFirstAccess): + AppCampaignBiddingStrategyGoalType = '''\ + class AppCampaignBiddingStrategyGoalType(enum.IntEnum): + """ + Goal type of App campaign BiddingStrategy. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + OPTIMIZE_INSTALLS_TARGET_INSTALL_COST (int): Aim to maximize the number of app installs. The cpa bid is the + target cost per install. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST (int): Aim to maximize the long term number of selected in-app conversions from + app installs. The cpa bid is the target cost per install. + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST (int): Aim to maximize the long term number of selected in-app conversions from + app installs. The cpa bid is the target cost per in-app conversion. Note + that the actual cpa may seem higher than the target cpa at first, since + the long term conversions haven’t happened yet. + OPTIMIZE_RETURN_ON_ADVERTISING_SPEND (int): Aim to maximize all conversions' value, i.e. install + selected in-app + conversions while achieving or exceeding target return on advertising + spend. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPTIMIZE_INSTALLS_TARGET_INSTALL_COST = 2 + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST = 3 + OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST = 4 + OPTIMIZE_RETURN_ON_ADVERTISING_SPEND = 5 +''' +AppCampaignBiddingStrategyGoalTypeEnum = AppCampaignBiddingStrategyGoalTypeEnum() # For __getattribute__ + + +class AppPaymentModelTypeEnum(_CreateEnumTypeUponFirstAccess): + AppPaymentModelType = '''\ + class AppPaymentModelType(enum.IntEnum): + """ + Enum describing possible app payment models. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PAID (int): Represents paid-for apps. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PAID = 30 +''' +AppPaymentModelTypeEnum = AppPaymentModelTypeEnum() # For __getattribute__ + + +class AppPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + AppPlaceholderField = '''\ + class AppPlaceholderField(enum.IntEnum): + """ + Possible values for App placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STORE (int): Data Type: INT64. The application store that the target application + belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play + Store. + ID (int): Data Type: STRING. The store-specific ID for the target application. + LINK_TEXT (int): Data Type: STRING. The visible text displayed when the link is rendered + in an ad. + URL (int): Data Type: STRING. The destination URL of the in-app link. + FINAL_URLS (int): Data Type: URL\_LIST. Final URLs for the in-app link when using Upgraded + URLs. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final Mobile URLs for the in-app link when using + Upgraded URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the in-app link when using Upgraded + URLs. + FINAL_URL_SUFFIX (int): Data Type: STRING. Final URL suffix for the in-app link when using + parallel tracking. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STORE = 2 + ID = 3 + LINK_TEXT = 4 + URL = 5 + FINAL_URLS = 6 + FINAL_MOBILE_URLS = 7 + TRACKING_URL = 8 + FINAL_URL_SUFFIX = 9 +''' +AppPlaceholderFieldEnum = AppPlaceholderFieldEnum() # For __getattribute__ + + +class AppStoreEnum(_CreateEnumTypeUponFirstAccess): + AppStore = '''\ + class AppStore(enum.IntEnum): + """ + App store type in an app extension. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + APPLE_ITUNES (int): Apple iTunes. + GOOGLE_PLAY (int): Google Play. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPLE_ITUNES = 2 + GOOGLE_PLAY = 3 +''' +AppStoreEnum = AppStoreEnum() # For __getattribute__ + + +class AppUrlOperatingSystemTypeEnum(_CreateEnumTypeUponFirstAccess): + AppUrlOperatingSystemType = '''\ + class AppUrlOperatingSystemType(enum.IntEnum): + """ + Operating System + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + IOS (int): The Apple IOS operating system. + ANDROID (int): The Android operating system. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IOS = 2 + ANDROID = 3 +''' +AppUrlOperatingSystemTypeEnum = AppUrlOperatingSystemTypeEnum() # For __getattribute__ + + +class AssetErrorEnum(_CreateEnumTypeUponFirstAccess): + AssetError = '''\ + class AssetError(enum.IntEnum): + """ + Enum describing possible asset errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE (int): The customer is not is not on the allow-list for this asset type. + DUPLICATE_ASSET (int): Assets are duplicated across operations. + DUPLICATE_ASSET_NAME (int): The asset name is duplicated, either across operations or with an + existing asset. + ASSET_DATA_IS_MISSING (int): The Asset.asset\_data oneof is empty. + CANNOT_MODIFY_ASSET_NAME (int): The asset has a name which is different from an existing duplicate that + represents the same content. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE = 13 + DUPLICATE_ASSET = 3 + DUPLICATE_ASSET_NAME = 4 + ASSET_DATA_IS_MISSING = 5 + CANNOT_MODIFY_ASSET_NAME = 6 +''' +AssetErrorEnum = AssetErrorEnum() # For __getattribute__ + + +class AssetFieldTypeEnum(_CreateEnumTypeUponFirstAccess): + AssetFieldType = '''\ + class AssetFieldType(enum.IntEnum): + """ + Enum describing the possible placements of an asset. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + HEADLINE (int): The asset is linked for use as a headline. + DESCRIPTION (int): The asset is linked for use as a description. + MANDATORY_AD_TEXT (int): The asset is linked for use as mandatory ad text. + MARKETING_IMAGE (int): The asset is linked for use as a marketing image. + MEDIA_BUNDLE (int): The asset is linked for use as a media bundle. + YOUTUBE_VIDEO (int): The asset is linked for use as a YouTube video. + BOOK_ON_GOOGLE (int): The asset is linked to indicate that a hotels campaign is "Book on + Google" enabled. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HEADLINE = 2 + DESCRIPTION = 3 + MANDATORY_AD_TEXT = 4 + MARKETING_IMAGE = 5 + MEDIA_BUNDLE = 6 + YOUTUBE_VIDEO = 7 + BOOK_ON_GOOGLE = 8 +''' +AssetFieldTypeEnum = AssetFieldTypeEnum() # For __getattribute__ + + +class AssetLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + AssetLinkError = '''\ + class AssetLinkError(enum.IntEnum): + """ + Enum describing possible asset link errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + PINNING_UNSUPPORTED (int): Pinning is not supported for the given asset link field. + UNSUPPORTED_FIELD_TYPE (int): The given field type is not supported to be added directly via asset + links. + FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE (int): The given asset's type and the specified field type are incompatible. + FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE (int): The specified field type is incompatible with the given campaign type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PINNING_UNSUPPORTED = 2 + UNSUPPORTED_FIELD_TYPE = 3 + FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE = 4 + FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE = 5 +''' +AssetLinkErrorEnum = AssetLinkErrorEnum() # For __getattribute__ + + +class AssetLinkStatusEnum(_CreateEnumTypeUponFirstAccess): + AssetLinkStatus = '''\ + class AssetLinkStatus(enum.IntEnum): + """ + Enum describing statuses of an asset link. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Asset link is enabled. + REMOVED (int): Asset link has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +AssetLinkStatusEnum = AssetLinkStatusEnum() # For __getattribute__ + + +class AssetPerformanceLabelEnum(_CreateEnumTypeUponFirstAccess): + AssetPerformanceLabel = '''\ + class AssetPerformanceLabel(enum.IntEnum): + """ + Enum describing the possible performance labels of an asset, usually + computed in the context of a linkage. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): This asset does not yet have any performance informantion. This may be + because it is still under review. + LEARNING (int): The asset has started getting impressions but the stats are not + statistically significant enough to get an asset performance label. + LOW (int): Worst performing assets. + GOOD (int): Good performing assets. + BEST (int): Best performing assets. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + LEARNING = 3 + LOW = 4 + GOOD = 5 + BEST = 6 +''' +AssetPerformanceLabelEnum = AssetPerformanceLabelEnum() # For __getattribute__ + + +class AssetTypeEnum(_CreateEnumTypeUponFirstAccess): + AssetType = '''\ + class AssetType(enum.IntEnum): + """ + Enum describing possible types of asset. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + YOUTUBE_VIDEO (int): YouTube video asset. + MEDIA_BUNDLE (int): Media bundle asset. + IMAGE (int): Image asset. + TEXT (int): Text asset. + BOOK_ON_GOOGLE (int): Book on Google asset. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + YOUTUBE_VIDEO = 2 + MEDIA_BUNDLE = 3 + IMAGE = 4 + TEXT = 5 + BOOK_ON_GOOGLE = 7 +''' +AssetTypeEnum = AssetTypeEnum() # For __getattribute__ + + +class AttributionModelEnum(_CreateEnumTypeUponFirstAccess): + AttributionModel = '''\ + class AttributionModel(enum.IntEnum): + """ + The attribution model that describes how to distribute credit for a + particular conversion across potentially many prior interactions. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EXTERNAL (int): Uses external attribution. + GOOGLE_ADS_LAST_CLICK (int): Attributes all credit for a conversion to its last click. + GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK (int): Attributes all credit for a conversion to its first click using Google + Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_LINEAR (int): Attributes credit for a conversion equally across all of its clicks using + Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY (int): Attributes exponentially more credit for a conversion to its more recent + clicks using Google Search attribution (half-life is 1 week). + GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED (int): Attributes 40% of the credit for a conversion to its first and last + clicks. Remaining 20% is evenly distributed across all other clicks. This + uses Google Search attribution. + GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN (int): Flexible model that uses machine learning to determine the appropriate + distribution of credit among clicks using Google Search attribution. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXTERNAL = 100 + GOOGLE_ADS_LAST_CLICK = 101 + GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK = 102 + GOOGLE_SEARCH_ATTRIBUTION_LINEAR = 103 + GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY = 104 + GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED = 105 + GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN = 106 +''' +AttributionModelEnum = AttributionModelEnum() # For __getattribute__ + + +class AuthenticationErrorEnum(_CreateEnumTypeUponFirstAccess): + AuthenticationError = '''\ + class AuthenticationError(enum.IntEnum): + """ + Enum describing possible authentication errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AUTHENTICATION_ERROR (int): Authentication of the request failed. + CLIENT_CUSTOMER_ID_INVALID (int): Client Customer Id is not a number. + CUSTOMER_NOT_FOUND (int): No customer found for the provided customer id. + GOOGLE_ACCOUNT_DELETED (int): Client's Google Account is deleted. + GOOGLE_ACCOUNT_COOKIE_INVALID (int): Google account login token in the cookie is invalid. + GOOGLE_ACCOUNT_AUTHENTICATION_FAILED (int): A problem occurred during Google account authentication. + GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH (int): The user in the google account login token does not match the UserId in + the cookie. + LOGIN_COOKIE_REQUIRED (int): Login cookie is required for authentication. + NOT_ADS_USER (int): User in the cookie is not a valid Ads user. + OAUTH_TOKEN_INVALID (int): Oauth token in the header is not valid. + OAUTH_TOKEN_EXPIRED (int): Oauth token in the header has expired. + OAUTH_TOKEN_DISABLED (int): Oauth token in the header has been disabled. + OAUTH_TOKEN_REVOKED (int): Oauth token in the header has been revoked. + OAUTH_TOKEN_HEADER_INVALID (int): Oauth token HTTP header is malformed. + LOGIN_COOKIE_INVALID (int): Login cookie is not valid. + USER_ID_INVALID (int): User Id in the header is not a valid id. + TWO_STEP_VERIFICATION_NOT_ENROLLED (int): An account administrator changed this account's authentication settings. + To access this Google Ads account, enable 2-Step Verification in your + Google account at https://www.google.com/landing/2step. + ADVANCED_PROTECTION_NOT_ENROLLED (int): An account administrator changed this account's authentication settings. + To access this Google Ads account, enable Advanced Protection in your + Google account at https://landing.google.com/advancedprotection. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AUTHENTICATION_ERROR = 2 + CLIENT_CUSTOMER_ID_INVALID = 5 + CUSTOMER_NOT_FOUND = 8 + GOOGLE_ACCOUNT_DELETED = 9 + GOOGLE_ACCOUNT_COOKIE_INVALID = 10 + GOOGLE_ACCOUNT_AUTHENTICATION_FAILED = 25 + GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH = 12 + LOGIN_COOKIE_REQUIRED = 13 + NOT_ADS_USER = 14 + OAUTH_TOKEN_INVALID = 15 + OAUTH_TOKEN_EXPIRED = 16 + OAUTH_TOKEN_DISABLED = 17 + OAUTH_TOKEN_REVOKED = 18 + OAUTH_TOKEN_HEADER_INVALID = 19 + LOGIN_COOKIE_INVALID = 20 + USER_ID_INVALID = 22 + TWO_STEP_VERIFICATION_NOT_ENROLLED = 23 + ADVANCED_PROTECTION_NOT_ENROLLED = 24 +''' +AuthenticationErrorEnum = AuthenticationErrorEnum() # For __getattribute__ + + +class AuthorizationErrorEnum(_CreateEnumTypeUponFirstAccess): + AuthorizationError = '''\ + class AuthorizationError(enum.IntEnum): + """ + Enum describing possible authorization errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + USER_PERMISSION_DENIED (int): User doesn't have permission to access customer. Note: If you're + accessing a client customer, the manager's customer ID must be set in + the ``login-customer-id`` header. Learn more at + https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid + DEVELOPER_TOKEN_NOT_ON_ALLOWLIST (int): The developer token is not on the allow-list.Nc + DEVELOPER_TOKEN_PROHIBITED (int): The developer token is not allowed with the project sent in the request. + PROJECT_DISABLED (int): The Google Cloud project sent in the request does not have permission to + access the api. + AUTHORIZATION_ERROR (int): Authorization of the client failed. + ACTION_NOT_PERMITTED (int): The user does not have permission to perform this action + (e.g., ADD, UPDATE, REMOVE) on the resource or call a method. + INCOMPLETE_SIGNUP (int): Signup not complete. + CUSTOMER_NOT_ENABLED (int): The customer can't be used because it isn't enabled. + MISSING_TOS (int): The developer must sign the terms of service. They can be found here: + ads.google.com/aw/apicenter + DEVELOPER_TOKEN_NOT_APPROVED (int): The developer token is not approved. Non-approved developer tokens can + only be used with test accounts. + INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION (int): The login customer specified does not have access to the account + specified, so the request is invalid. + SERVICE_ACCESS_DENIED (int): The developer specified does not have access to the service. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + USER_PERMISSION_DENIED = 2 + DEVELOPER_TOKEN_NOT_ON_ALLOWLIST = 13 + DEVELOPER_TOKEN_PROHIBITED = 4 + PROJECT_DISABLED = 5 + AUTHORIZATION_ERROR = 6 + ACTION_NOT_PERMITTED = 7 + INCOMPLETE_SIGNUP = 8 + CUSTOMER_NOT_ENABLED = 24 + MISSING_TOS = 9 + DEVELOPER_TOKEN_NOT_APPROVED = 10 + INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION = 11 + SERVICE_ACCESS_DENIED = 12 +''' +AuthorizationErrorEnum = AuthorizationErrorEnum() # For __getattribute__ + + +class BatchJobErrorEnum(_CreateEnumTypeUponFirstAccess): + BatchJobError = '''\ + class BatchJobError(enum.IntEnum): + """ + Enum describing possible request errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING (int): The batch job cannot add more operations or run after it has started + running. + EMPTY_OPERATIONS (int): The operations for an AddBatchJobOperations request were empty. + INVALID_SEQUENCE_TOKEN (int): The sequence token for an AddBatchJobOperations request was invalid. + RESULTS_NOT_READY (int): Batch job results can only be retrieved once the job is finished. + INVALID_PAGE_SIZE (int): The page size for ListBatchJobResults was invalid. + CAN_ONLY_REMOVE_PENDING_JOB (int): The batch job cannot be removed because it has started running. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING = 2 + EMPTY_OPERATIONS = 3 + INVALID_SEQUENCE_TOKEN = 4 + RESULTS_NOT_READY = 5 + INVALID_PAGE_SIZE = 6 + CAN_ONLY_REMOVE_PENDING_JOB = 7 +''' +BatchJobErrorEnum = BatchJobErrorEnum() # For __getattribute__ + + +class BatchJobStatusEnum(_CreateEnumTypeUponFirstAccess): + BatchJobStatus = '''\ + class BatchJobStatus(enum.IntEnum): + """ + The batch job statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The job is not currently running. + RUNNING (int): The job is running. + DONE (int): The job is done. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + RUNNING = 3 + DONE = 4 +''' +BatchJobStatusEnum = BatchJobStatusEnum() # For __getattribute__ + + +class BidModifierSourceEnum(_CreateEnumTypeUponFirstAccess): + BidModifierSource = '''\ + class BidModifierSource(enum.IntEnum): + """ + Enum describing possible bid modifier sources. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CAMPAIGN (int): The bid modifier is specified at the campaign level, on the campaign + level criterion. + AD_GROUP (int): The bid modifier is specified (overridden) at the ad group level. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN = 2 + AD_GROUP = 3 +''' +BidModifierSourceEnum = BidModifierSourceEnum() # For __getattribute__ + + +class BiddingErrorEnum(_CreateEnumTypeUponFirstAccess): + BiddingError = '''\ + class BiddingError(enum.IntEnum): + """ + Enum describing possible bidding errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED (int): Cannot transition to new bidding strategy. + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN (int): Cannot attach bidding strategy to campaign. + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE (int): Bidding strategy is not supported or cannot be used as anonymous. + INVALID_BIDDING_STRATEGY_TYPE (int): The type does not match the named strategy's type. + INVALID_BID (int): The bid is invalid. + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE (int): Bidding strategy is not available for the account type. + CONVERSION_TRACKING_NOT_ENABLED (int): Conversion tracking is not enabled in the campaign that has YouTube + Video Builder transitions. + NOT_ENOUGH_CONVERSIONS (int): Not enough conversions tracked for YouTube Video Builder transitions. + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY (int): Campaign can not be created with given bidding strategy. It can be + transitioned to the strategy, once eligible. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY (int): Cannot target content network only as campaign uses Page One Promoted + bidding strategy. + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE (int): Budget Optimizer and Target Spend bidding strategies are not supported + for campaigns with AdSchedule targeting. + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER (int): Pay per conversion is not available to all the customer, only few + customers on the allow-list can use this. + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA (int): Pay per conversion is not allowed with Target CPA. + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS (int): Cannot set bidding strategy to Manual CPM for search network only + campaigns. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS (int): The bidding strategy is not supported for use in drafts or experiments. + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION (int): Bidding strategy type does not support product type ad group criterion. + BID_TOO_SMALL (int): Bid amount is too small. + BID_TOO_BIG (int): Bid amount is too big. + BID_TOO_MANY_FRACTIONAL_DIGITS (int): Bid has too many fractional digit precision. + INVALID_DOMAIN_NAME (int): Invalid domain name specified. + NOT_COMPATIBLE_WITH_PAYMENT_MODE (int): The field is not compatible with the payment mode. + NOT_COMPATIBLE_WITH_BUDGET_TYPE (int): The field is not compatible with the budget type. + NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE (int): The field is not compatible with the bidding strategy type. + BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET (int): Bidding strategy type is incompatible with shared budget. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2 + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7 + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10 + INVALID_BIDDING_STRATEGY_TYPE = 14 + INVALID_BID = 17 + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18 + CONVERSION_TRACKING_NOT_ENABLED = 19 + NOT_ENOUGH_CONVERSIONS = 20 + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21 + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23 + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24 + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25 + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26 + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27 + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28 + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29 + BID_TOO_SMALL = 30 + BID_TOO_BIG = 31 + BID_TOO_MANY_FRACTIONAL_DIGITS = 32 + INVALID_DOMAIN_NAME = 33 + NOT_COMPATIBLE_WITH_PAYMENT_MODE = 34 + NOT_COMPATIBLE_WITH_BUDGET_TYPE = 35 + NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE = 36 + BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET = 37 +''' +BiddingErrorEnum = BiddingErrorEnum() # For __getattribute__ + + +class BiddingSourceEnum(_CreateEnumTypeUponFirstAccess): + BiddingSource = '''\ + class BiddingSource(enum.IntEnum): + """ + Indicates where a bid or target is defined. For example, an ad group + criterion may define a cpc bid directly, or it can inherit its cpc bid from + the ad group. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CAMPAIGN_BIDDING_STRATEGY (int): Effective bid or target is inherited from campaign bidding strategy. + AD_GROUP (int): The bid or target is defined on the ad group. + AD_GROUP_CRITERION (int): The bid or target is defined on the ad group criterion. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_BIDDING_STRATEGY = 5 + AD_GROUP = 6 + AD_GROUP_CRITERION = 7 +''' +BiddingSourceEnum = BiddingSourceEnum() # For __getattribute__ + + +class BiddingStrategyErrorEnum(_CreateEnumTypeUponFirstAccess): + BiddingStrategyError = '''\ + class BiddingStrategyError(enum.IntEnum): + """ + Enum describing possible bidding strategy errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_NAME (int): Each bidding strategy must have a unique name. + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE (int): Bidding strategy type is immutable. + CANNOT_REMOVE_ASSOCIATED_STRATEGY (int): Only bidding strategies not linked to campaigns, adgroups or adgroup + criteria can be removed. + BIDDING_STRATEGY_NOT_SUPPORTED (int): The specified bidding strategy is not supported. + INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE (int): The bidding strategy is incompatible with the campaign's bidding + strategy goal type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_NAME = 2 + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3 + CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4 + BIDDING_STRATEGY_NOT_SUPPORTED = 5 + INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE = 6 +''' +BiddingStrategyErrorEnum = BiddingStrategyErrorEnum() # For __getattribute__ + + +class BiddingStrategyStatusEnum(_CreateEnumTypeUponFirstAccess): + BiddingStrategyStatus = '''\ + class BiddingStrategyStatus(enum.IntEnum): + """ + The possible statuses of a BiddingStrategy. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The bidding strategy is enabled. + REMOVED (int): The bidding strategy is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 4 +''' +BiddingStrategyStatusEnum = BiddingStrategyStatusEnum() # For __getattribute__ + + +class BiddingStrategyTypeEnum(_CreateEnumTypeUponFirstAccess): + BiddingStrategyType = '''\ + class BiddingStrategyType(enum.IntEnum): + """ + Enum describing possible bidding strategy types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + COMMISSION (int): Commission is an automatic bidding strategy in which the advertiser pays + a certain portion of the conversion value. + ENHANCED_CPC (int): Enhanced CPC is a bidding strategy that raises bids for clicks + that seem more likely to lead to a conversion and lowers + them for clicks where they seem less likely. + MANUAL_CPC (int): Manual click based bidding where user pays per click. + MANUAL_CPM (int): Manual impression based bidding + where user pays per thousand impressions. + MANUAL_CPV (int): A bidding strategy that pays a configurable amount per video view. + MAXIMIZE_CONVERSIONS (int): A bidding strategy that automatically maximizes number of conversions + given a daily budget. + MAXIMIZE_CONVERSION_VALUE (int): An automated bidding strategy that automatically sets bids to maximize + revenue while spending your budget. + PAGE_ONE_PROMOTED (int): Page-One Promoted bidding scheme, which sets max cpc bids to + target impressions on page one or page one promoted slots on google.com. + This enum value is deprecated. + PERCENT_CPC (int): Percent Cpc is bidding strategy where bids are a fraction of the + advertised price for some good or service. + TARGET_CPA (int): Target CPA is an automated bid strategy that sets bids + to help get as many conversions as possible + at the target cost-per-acquisition (CPA) you set. + TARGET_CPM (int): Target CPM is an automated bid strategy that sets bids to help get + as many impressions as possible at the target cost per one thousand + impressions (CPM) you set. + TARGET_IMPRESSION_SHARE (int): An automated bidding strategy that sets bids so that a certain percentage + of search ads are shown at the top of the first page (or other targeted + location). + TARGET_OUTRANK_SHARE (int): Target Outrank Share is an automated bidding strategy that sets bids + based on the target fraction of auctions where the advertiser + should outrank a specific competitor. + This enum value is deprecated. + TARGET_ROAS (int): Target ROAS is an automated bidding strategy + that helps you maximize revenue while averaging + a specific target Return On Average Spend (ROAS). + TARGET_SPEND (int): Target Spend is an automated bid strategy that sets your bids + to help get as many clicks as possible within your budget. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + COMMISSION = 16 + ENHANCED_CPC = 2 + MANUAL_CPC = 3 + MANUAL_CPM = 4 + MANUAL_CPV = 13 + MAXIMIZE_CONVERSIONS = 10 + MAXIMIZE_CONVERSION_VALUE = 11 + PAGE_ONE_PROMOTED = 5 + PERCENT_CPC = 12 + TARGET_CPA = 6 + TARGET_CPM = 14 + TARGET_IMPRESSION_SHARE = 15 + TARGET_OUTRANK_SHARE = 7 + TARGET_ROAS = 8 + TARGET_SPEND = 9 +''' +BiddingStrategyTypeEnum = BiddingStrategyTypeEnum() # For __getattribute__ + + +class BillingSetupErrorEnum(_CreateEnumTypeUponFirstAccess): + BillingSetupError = '''\ + class BillingSetupError(enum.IntEnum): + """ + Enum describing possible billing setup errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_USE_EXISTING_AND_NEW_ACCOUNT (int): Cannot specify both an existing payments account and a new payments + account when setting up billing. + CANNOT_REMOVE_STARTED_BILLING_SETUP (int): Cannot cancel an approved billing setup whose start time has passed. + CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT (int): Cannot perform a Change of Bill-To (CBT) to the same payments account. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS (int): Billing setups can only be used by customers with ENABLED or DRAFT + status. + INVALID_PAYMENTS_ACCOUNT (int): Billing setups must either include a correctly formatted existing + payments account id, or a non-empty new payments account name. + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY (int): Only billable and third-party customers can create billing setups. + INVALID_START_TIME_TYPE (int): Billing setup creations can only use NOW for start time type. + THIRD_PARTY_ALREADY_HAS_BILLING (int): Billing setups can only be created for a third-party customer if they do + not already have a setup. + BILLING_SETUP_IN_PROGRESS (int): Billing setups cannot be created if there is already a pending billing in + progress. + NO_SIGNUP_PERMISSION (int): Billing setups can only be created by customers who have permission to + setup billings. Users can contact a representative for help setting up + permissions. + CHANGE_OF_BILL_TO_IN_PROGRESS (int): Billing setups cannot be created if there is already a future-approved + billing. + PAYMENTS_PROFILE_NOT_FOUND (int): Requested payments profile not found. + PAYMENTS_ACCOUNT_NOT_FOUND (int): Requested payments account not found. + PAYMENTS_PROFILE_INELIGIBLE (int): Billing setup creation failed because the payments profile is ineligible. + PAYMENTS_ACCOUNT_INELIGIBLE (int): Billing setup creation failed because the payments account is ineligible. + CUSTOMER_NEEDS_INTERNAL_APPROVAL (int): Billing setup creation failed because the payments profile needs internal + approval. + PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH (int): Payments account has different currency code than the current customer + and hence cannot be used to setup billing. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_USE_EXISTING_AND_NEW_ACCOUNT = 2 + CANNOT_REMOVE_STARTED_BILLING_SETUP = 3 + CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT = 4 + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS = 5 + INVALID_PAYMENTS_ACCOUNT = 6 + BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY = 7 + INVALID_START_TIME_TYPE = 8 + THIRD_PARTY_ALREADY_HAS_BILLING = 9 + BILLING_SETUP_IN_PROGRESS = 10 + NO_SIGNUP_PERMISSION = 11 + CHANGE_OF_BILL_TO_IN_PROGRESS = 12 + PAYMENTS_PROFILE_NOT_FOUND = 13 + PAYMENTS_ACCOUNT_NOT_FOUND = 14 + PAYMENTS_PROFILE_INELIGIBLE = 15 + PAYMENTS_ACCOUNT_INELIGIBLE = 16 + CUSTOMER_NEEDS_INTERNAL_APPROVAL = 17 + PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH = 19 +''' +BillingSetupErrorEnum = BillingSetupErrorEnum() # For __getattribute__ + + +class BillingSetupStatusEnum(_CreateEnumTypeUponFirstAccess): + BillingSetupStatus = '''\ + class BillingSetupStatus(enum.IntEnum): + """ + The possible statuses of a BillingSetup. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The billing setup is pending approval. + APPROVED_HELD (int): The billing setup has been approved but the corresponding first budget + has not. This can only occur for billing setups configured for monthly + invoicing. + APPROVED (int): The billing setup has been approved. + CANCELLED (int): The billing setup was cancelled by the user prior to approval. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + APPROVED_HELD = 3 + APPROVED = 4 + CANCELLED = 5 +''' +BillingSetupStatusEnum = BillingSetupStatusEnum() # For __getattribute__ + + +class BrandSafetySuitabilityEnum(_CreateEnumTypeUponFirstAccess): + BrandSafetySuitability = '''\ + class BrandSafetySuitability(enum.IntEnum): + """ + 3-Tier brand safety suitability control. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EXPANDED_INVENTORY (int): This option lets you show ads across all inventory on YouTube and video + partners that meet our standards for monetization. This option may be an + appropriate choice for brands that want maximum access to the full + breadth of videos eligible for ads, including, for example, videos that + have strong profanity in the context of comedy or a documentary, or + excessive violence as featured in video games. + STANDARD_INVENTORY (int): This option lets you show ads across a wide range of content that's + appropriate for most brands, such as popular music videos, documentaries, + and movie trailers. The content you can show ads on is based on YouTube's + advertiser-friendly content guidelines that take into account, for + example, the strength or frequency of profanity, or the appropriateness + of subject matter like sensitive events. Ads won't show, for example, on + content with repeated strong profanity, strong sexual content, or graphic + violence. + LIMITED_INVENTORY (int): This option lets you show ads on a reduced range of content that's + appropriate for brands with particularly strict guidelines around + inappropriate language and sexual suggestiveness; above and beyond what + YouTube's advertiser-friendly content guidelines address. The videos + accessible in this sensitive category meet heightened requirements, + especially for inappropriate language and sexual suggestiveness. For + example, your ads will be excluded from showing on some of YouTube's most + popular music videos and other pop culture content across YouTube and + Google video partners. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXPANDED_INVENTORY = 2 + STANDARD_INVENTORY = 3 + LIMITED_INVENTORY = 4 +''' +BrandSafetySuitabilityEnum = BrandSafetySuitabilityEnum() # For __getattribute__ + + +class BudgetCampaignAssociationStatusEnum(_CreateEnumTypeUponFirstAccess): + BudgetCampaignAssociationStatus = '''\ + class BudgetCampaignAssociationStatus(enum.IntEnum): + """ + Possible statuses of the association between the Budget and the Campaign. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The campaign is currently using the budget. + REMOVED (int): The campaign is no longer using the budget. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +BudgetCampaignAssociationStatusEnum = BudgetCampaignAssociationStatusEnum() # For __getattribute__ + + +class BudgetDeliveryMethodEnum(_CreateEnumTypeUponFirstAccess): + BudgetDeliveryMethod = '''\ + class BudgetDeliveryMethod(enum.IntEnum): + """ + Possible delivery methods of a Budget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STANDARD (int): The budget server will throttle serving evenly across + the entire time period. + ACCELERATED (int): The budget server will not throttle serving, + and ads will serve as fast as possible. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STANDARD = 2 + ACCELERATED = 3 +''' +BudgetDeliveryMethodEnum = BudgetDeliveryMethodEnum() # For __getattribute__ + + +class BudgetPeriodEnum(_CreateEnumTypeUponFirstAccess): + BudgetPeriod = '''\ + class BudgetPeriod(enum.IntEnum): + """ + Possible period of a Budget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DAILY (int): Daily budget. + CUSTOM_PERIOD (int): Custom budget, added back in V5. Custom bugdet can be used with + total\_amount to specify lifetime budget limit. See: + https://support.google.com/google-ads/answer/6385083 for more info. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DAILY = 2 + CUSTOM_PERIOD = 5 +''' +BudgetPeriodEnum = BudgetPeriodEnum() # For __getattribute__ + + +class BudgetStatusEnum(_CreateEnumTypeUponFirstAccess): + BudgetStatus = '''\ + class BudgetStatus(enum.IntEnum): + """ + Possible statuses of a Budget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Budget is enabled. + REMOVED (int): Budget is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +BudgetStatusEnum = BudgetStatusEnum() # For __getattribute__ + + +class BudgetTypeEnum(_CreateEnumTypeUponFirstAccess): + BudgetType = '''\ + class BudgetType(enum.IntEnum): + """ + Possible Budget types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STANDARD (int): Budget type for standard Google Ads usage. + Caps daily spend at two times the specified budget amount. + Full details: https://support.google.com/google-ads/answer/6385083 + HOTEL_ADS_COMMISSION (int): Budget type for Hotels Ads commission program. Full details: + https://support.google.com/google-ads/answer/9243945 + This type is only supported by campaigns with + AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION and + PaymentMode.CONVERSION\_VALUE. + FIXED_CPA (int): Budget type with a fixed cost-per-acquisition (conversion). Full + details: https://support.google.com/google-ads/answer/7528254 + This type is only supported by campaigns with + AdvertisingChannelType.DISPLAY (excluding + AdvertisingChannelSubType.DISPLAY\_GMAIL), + BiddingStrategyType.TARGET\_CPA and PaymentMode.CONVERSIONS. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STANDARD = 2 + HOTEL_ADS_COMMISSION = 3 + FIXED_CPA = 4 +''' +BudgetTypeEnum = BudgetTypeEnum() # For __getattribute__ + + +class CallConversionReportingStateEnum(_CreateEnumTypeUponFirstAccess): + CallConversionReportingState = '''\ + class CallConversionReportingState(enum.IntEnum): + """ + Possible data types for a call conversion action state. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DISABLED (int): Call conversion action is disabled. + USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION (int): Call conversion action will use call conversion type set at the + account level. + USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION (int): Call conversion action will use call conversion type set at the resource + (call only ads/call extensions) level. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DISABLED = 2 + USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION = 3 + USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION = 4 +''' +CallConversionReportingStateEnum = CallConversionReportingStateEnum() # For __getattribute__ + + +class CallPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + CallPlaceholderField = '''\ + class CallPlaceholderField(enum.IntEnum): + """ + Possible values for Call placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PHONE_NUMBER (int): Data Type: STRING. The advertiser's phone number to append to the ad. + COUNTRY_CODE (int): Data Type: STRING. Uppercase two-letter country code of the advertiser's + phone number. + TRACKED (int): Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: + true. + CONVERSION_TYPE_ID (int): Data Type: INT64. The ID of an AdCallMetricsConversion object. This + object contains the phoneCallDurationfield which is the minimum duration + (in seconds) of a call to be considered a conversion. + CONVERSION_REPORTING_STATE (int): Data Type: STRING. Indicates whether this call extension uses its own + call conversion setting or follows the account level setting. Valid + values are: USE\_ACCOUNT\_LEVEL\_CALL\_CONVERSION\_ACTION and + USE\_RESOURCE\_LEVEL\_CALL\_CONVERSION\_ACTION. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PHONE_NUMBER = 2 + COUNTRY_CODE = 3 + TRACKED = 4 + CONVERSION_TYPE_ID = 5 + CONVERSION_REPORTING_STATE = 6 +''' +CallPlaceholderFieldEnum = CallPlaceholderFieldEnum() # For __getattribute__ + + +class CalloutPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + CalloutPlaceholderField = '''\ + class CalloutPlaceholderField(enum.IntEnum): + """ + Possible values for Callout placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CALLOUT_TEXT (int): Data Type: STRING. Callout text. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CALLOUT_TEXT = 2 +''' +CalloutPlaceholderFieldEnum = CalloutPlaceholderFieldEnum() # For __getattribute__ + + +class CampaignBudgetErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignBudgetError = '''\ + class CampaignBudgetError(enum.IntEnum): + """ + Enum describing possible campaign budget errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CAMPAIGN_BUDGET_CANNOT_BE_SHARED (int): The campaign budget cannot be shared. + CAMPAIGN_BUDGET_REMOVED (int): The requested campaign budget no longer exists. + CAMPAIGN_BUDGET_IN_USE (int): The campaign budget is associated with at least one campaign, and so the + campaign budget cannot be removed. + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE (int): Customer is not on the allow-list for this campaign budget period. + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET (int): This field is not mutable on implicitly shared campaign budgets + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED (int): Cannot change explicitly shared campaign budgets back to implicitly + shared ones. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME (int): An implicit campaign budget without a name cannot be changed to + explicitly shared campaign budget. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED (int): Cannot change an implicitly shared campaign budget to an explicitly + shared one. + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS (int): Only explicitly shared campaign budgets can be used with multiple + campaigns. + DUPLICATE_NAME (int): A campaign budget with this name already exists. + MONEY_AMOUNT_IN_WRONG_CURRENCY (int): A money amount was not in the expected currency. + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC (int): A money amount was less than the minimum CPC for currency. + MONEY_AMOUNT_TOO_LARGE (int): A money amount was greater than the maximum allowed. + NEGATIVE_MONEY_AMOUNT (int): A money amount was negative. + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT (int): A money amount was not a multiple of a minimum unit. + TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY (int): Total budget amount must be unset when BudgetPeriod is DAILY. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_BUDGET_CANNOT_BE_SHARED = 17 + CAMPAIGN_BUDGET_REMOVED = 2 + CAMPAIGN_BUDGET_IN_USE = 3 + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4 + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9 + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10 + DUPLICATE_NAME = 11 + MONEY_AMOUNT_IN_WRONG_CURRENCY = 12 + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13 + MONEY_AMOUNT_TOO_LARGE = 14 + NEGATIVE_MONEY_AMOUNT = 15 + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16 + TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY = 18 +''' +CampaignBudgetErrorEnum = CampaignBudgetErrorEnum() # For __getattribute__ + + +class CampaignCriterionErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignCriterionError = '''\ + class CampaignCriterionError(enum.IntEnum): + """ + Enum describing possible campaign criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion (keyword v.s. placement) is required for + CREATE and UPDATE operations. + INVALID_PLACEMENT_URL (int): Invalid placement URL. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type can not be excluded for the campaign by the customer. like + AOL account type cannot target site type criteria + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE (int): Cannot set the campaign criterion status for this criteria type. + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA (int): Cannot set the campaign criterion status for an excluded criteria. + CANNOT_TARGET_AND_EXCLUDE (int): Cannot target and exclude the same criterion. + TOO_MANY_OPERATIONS (int): The mutate contained too many operations. + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): This operator cannot be applied to a criterion of this type. + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL (int): The Shopping campaign sales country is not supported for + ProductSalesChannel targeting. + CANNOT_ADD_EXISTING_FIELD (int): The existing field can't be updated with CREATE operation. It can be + updated with UPDATE operation only. + CANNOT_UPDATE_NEGATIVE_CRITERION (int): Negative criteria are immutable, so updates are not allowed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONCRETE_TYPE_REQUIRED = 2 + INVALID_PLACEMENT_URL = 3 + CANNOT_EXCLUDE_CRITERIA_TYPE = 4 + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5 + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6 + CANNOT_TARGET_AND_EXCLUDE = 7 + TOO_MANY_OPERATIONS = 8 + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9 + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10 + CANNOT_ADD_EXISTING_FIELD = 11 + CANNOT_UPDATE_NEGATIVE_CRITERION = 12 +''' +CampaignCriterionErrorEnum = CampaignCriterionErrorEnum() # For __getattribute__ + + +class CampaignCriterionStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignCriterionStatus = '''\ + class CampaignCriterionStatus(enum.IntEnum): + """ + The possible statuses of a CampaignCriterion. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The campaign criterion is enabled. + PAUSED (int): The campaign criterion is paused. + REMOVED (int): The campaign criterion is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 +''' +CampaignCriterionStatusEnum = CampaignCriterionStatusEnum() # For __getattribute__ + + +class CampaignDraftErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignDraftError = '''\ + class CampaignDraftError(enum.IntEnum): + """ + Enum describing possible campaign draft errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_DRAFT_NAME (int): A draft with this name already exists for this campaign. + INVALID_STATUS_TRANSITION_FROM_REMOVED (int): The draft is removed and cannot be transitioned to another status. + INVALID_STATUS_TRANSITION_FROM_PROMOTED (int): The draft has been promoted and cannot be transitioned to the specified + status. + INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED (int): The draft has failed to be promoted and cannot be transitioned to the + specified status. + CUSTOMER_CANNOT_CREATE_DRAFT (int): This customer is not allowed to create drafts. + CAMPAIGN_CANNOT_CREATE_DRAFT (int): This campaign is not allowed to create drafts. + INVALID_DRAFT_CHANGE (int): This modification cannot be made on a draft. + INVALID_STATUS_TRANSITION (int): The draft cannot be transitioned to the specified status from its + current status. + MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED (int): The campaign has reached the maximum number of drafts that can be created + for a campaign throughout its lifetime. No additional drafts can be + created for this campaign. Removed drafts also count towards this limit. + LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY (int): ListAsyncErrors was called without first promoting the draft. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_DRAFT_NAME = 2 + INVALID_STATUS_TRANSITION_FROM_REMOVED = 3 + INVALID_STATUS_TRANSITION_FROM_PROMOTED = 4 + INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED = 5 + CUSTOMER_CANNOT_CREATE_DRAFT = 6 + CAMPAIGN_CANNOT_CREATE_DRAFT = 7 + INVALID_DRAFT_CHANGE = 8 + INVALID_STATUS_TRANSITION = 9 + MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED = 10 + LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY = 11 +''' +CampaignDraftErrorEnum = CampaignDraftErrorEnum() # For __getattribute__ + + +class CampaignDraftStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignDraftStatus = '''\ + class CampaignDraftStatus(enum.IntEnum): + """ + Possible statuses of a campaign draft. + + Attributes: + UNSPECIFIED (int): The status has not been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PROPOSED (int): Initial state of the draft, the advertiser can start adding changes with + no effect on serving. + REMOVED (int): The campaign draft is removed. + PROMOTING (int): Advertiser requested to promote draft's changes back into the original + campaign. Advertiser can poll the long running operation returned by + the promote action to see the status of the promotion. + PROMOTED (int): The process to merge changes in the draft back to the original campaign + has completed successfully. + PROMOTE_FAILED (int): The promotion failed after it was partially applied. Promote cannot be + attempted again safely, so the issue must be corrected in the original + campaign. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PROPOSED = 2 + REMOVED = 3 + PROMOTING = 5 + PROMOTED = 4 + PROMOTE_FAILED = 6 +''' +CampaignDraftStatusEnum = CampaignDraftStatusEnum() # For __getattribute__ + + +class CampaignErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignError = '''\ + class CampaignError(enum.IntEnum): + """ + Enum describing possible campaign errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_TARGET_CONTENT_NETWORK (int): Cannot target content network. + CANNOT_TARGET_SEARCH_NETWORK (int): Cannot target search network. + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH (int): Cannot cover search network without google search network. + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN (int): Cannot target Google Search network for a CPM campaign. + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK (int): Must target at least one network. + CANNOT_TARGET_PARTNER_SEARCH_NETWORK (int): Only some Google partners are allowed to target partner search network. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY (int): Cannot target content network only as campaign has criteria-level bidding + strategy. + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS (int): Cannot modify the start or end date such that the campaign duration would + not contain the durations of all runnable trials. + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN (int): Cannot modify dates, budget or campaign name of a trial campaign. + DUPLICATE_CAMPAIGN_NAME (int): Trying to modify the name of an active or paused campaign, where the name + is already assigned to another active or paused campaign. + INCOMPATIBLE_CAMPAIGN_FIELD (int): Two fields are in conflicting modes. + INVALID_CAMPAIGN_NAME (int): Campaign name cannot be used. + INVALID_AD_SERVING_OPTIMIZATION_STATUS (int): Given status is invalid. + INVALID_TRACKING_URL (int): Error in the campaign level tracking URL. + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING (int): Cannot set both tracking URL template and tracking setting. A user has + to clear legacy tracking setting in order to add tracking URL template. + MAX_IMPRESSIONS_NOT_IN_RANGE (int): The maximum number of impressions for Frequency Cap should be an integer + greater than 0. + TIME_UNIT_NOT_SUPPORTED (int): Only the Day, Week and Month time units are supported. + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED (int): Operation not allowed on a campaign whose serving status has ended + BUDGET_CANNOT_BE_SHARED (int): This budget is exclusively linked to a Campaign that is using experiments + so it cannot be shared. + CAMPAIGN_CANNOT_USE_SHARED_BUDGET (int): Campaigns using experiments cannot use a shared budget. + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS (int): A different budget cannot be assigned to a campaign when there are + running or scheduled trials. + CAMPAIGN_LABEL_DOES_NOT_EXIST (int): No link found between the campaign and the label. + CAMPAIGN_LABEL_ALREADY_EXISTS (int): The label has already been attached to the campaign. + MISSING_SHOPPING_SETTING (int): A ShoppingSetting was not found when creating a shopping campaign. + INVALID_SHOPPING_SALES_COUNTRY (int): The country in shopping setting is not an allowed country. + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE (int): The requested channel type is not available according to the customer's + account setting. + INVALID_ADVERTISING_CHANNEL_SUB_TYPE (int): The AdvertisingChannelSubType is not a valid subtype of the primary + channel type. + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED (int): At least one conversion must be selected. + CANNOT_SET_AD_ROTATION_MODE (int): Setting ad rotation mode for a campaign is not allowed. Ad rotation mode + at campaign is deprecated. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED (int): Trying to change start date on a campaign that has started. + CANNOT_SET_DATE_TO_PAST (int): Trying to modify a date into the past. + MISSING_HOTEL_CUSTOMER_LINK (int): Hotel center id in the hotel setting does not match any customer links. + INVALID_HOTEL_CUSTOMER_LINK (int): Hotel center id in the hotel setting must match an active customer link. + MISSING_HOTEL_SETTING (int): Hotel setting was not found when creating a hotel ads campaign. + CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP (int): A Campaign cannot use shared campaign budgets and be part of a campaign + group. + APP_NOT_FOUND (int): The app ID was not found. + SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE (int): Campaign.shopping\_setting.enable\_local is not supported for the + specified campaign type. + MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS (int): The merchant does not support the creation of campaigns for Shopping + Comparison Listing Ads. + INSUFFICIENT_APP_INSTALLS_COUNT (int): The App campaign for engagement cannot be created because there aren't + enough installs. + SENSITIVE_CATEGORY_APP (int): The App campaign for engagement cannot be created because the app is + sensitive. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_TARGET_CONTENT_NETWORK = 3 + CANNOT_TARGET_SEARCH_NETWORK = 4 + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5 + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6 + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7 + CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8 + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9 + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10 + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11 + DUPLICATE_CAMPAIGN_NAME = 12 + INCOMPATIBLE_CAMPAIGN_FIELD = 13 + INVALID_CAMPAIGN_NAME = 14 + INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15 + INVALID_TRACKING_URL = 16 + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17 + MAX_IMPRESSIONS_NOT_IN_RANGE = 18 + TIME_UNIT_NOT_SUPPORTED = 19 + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20 + BUDGET_CANNOT_BE_SHARED = 21 + CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22 + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23 + CAMPAIGN_LABEL_DOES_NOT_EXIST = 24 + CAMPAIGN_LABEL_ALREADY_EXISTS = 25 + MISSING_SHOPPING_SETTING = 26 + INVALID_SHOPPING_SALES_COUNTRY = 27 + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31 + INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32 + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33 + CANNOT_SET_AD_ROTATION_MODE = 34 + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35 + CANNOT_SET_DATE_TO_PAST = 36 + MISSING_HOTEL_CUSTOMER_LINK = 37 + INVALID_HOTEL_CUSTOMER_LINK = 38 + MISSING_HOTEL_SETTING = 39 + CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40 + APP_NOT_FOUND = 41 + SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42 + MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43 + INSUFFICIENT_APP_INSTALLS_COUNT = 44 + SENSITIVE_CATEGORY_APP = 45 +''' +CampaignErrorEnum = CampaignErrorEnum() # For __getattribute__ + + +class CampaignExperimentErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignExperimentError = '''\ + class CampaignExperimentError(enum.IntEnum): + """ + Enum describing possible campaign experiment errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_NAME (int): An active campaign or experiment with this name already exists. + INVALID_TRANSITION (int): Experiment cannot be updated from the current state to the + requested target state. For example, an experiment can only graduate + if its status is ENABLED. + CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET (int): Cannot create an experiment from a campaign using an explicitly shared + budget. + CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN (int): Cannot create an experiment for a removed base campaign. + CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT (int): Cannot create an experiment from a draft, which has a status other than + proposed. + CUSTOMER_CANNOT_CREATE_EXPERIMENT (int): This customer is not allowed to create an experiment. + CAMPAIGN_CANNOT_CREATE_EXPERIMENT (int): This campaign is not allowed to create an experiment. + EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP (int): Trying to set an experiment duration which overlaps with another + experiment. + EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION (int): All non-removed experiments must start and end within their campaign's + duration. + CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS (int): The experiment cannot be modified because its status is in a terminal + state, such as REMOVED. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_NAME = 2 + INVALID_TRANSITION = 3 + CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET = 4 + CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN = 5 + CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT = 6 + CUSTOMER_CANNOT_CREATE_EXPERIMENT = 7 + CAMPAIGN_CANNOT_CREATE_EXPERIMENT = 8 + EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP = 9 + EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION = 10 + CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS = 11 +''' +CampaignExperimentErrorEnum = CampaignExperimentErrorEnum() # For __getattribute__ + + +class CampaignExperimentStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignExperimentStatus = '''\ + class CampaignExperimentStatus(enum.IntEnum): + """ + Possible statuses of a campaign experiment. + + Attributes: + UNSPECIFIED (int): The status has not been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INITIALIZING (int): The experiment campaign is being initialized. + INITIALIZATION_FAILED (int): Initialization of the experiment campaign failed. + ENABLED (int): The experiment campaign is fully initialized. The experiment is currently + running, scheduled to run in the future or has ended based on its + end date. An experiment with the status INITIALIZING will be updated to + ENABLED when it is fully created. + GRADUATED (int): The experiment campaign was graduated to a stand-alone + campaign, existing independently of the experiment. + REMOVED (int): The experiment is removed. + PROMOTING (int): The experiment's changes are being applied to the original campaign. + The long running operation returned by the promote method can be polled + to see the status of the promotion. + PROMOTION_FAILED (int): Promote of the experiment campaign failed. + PROMOTED (int): The changes of the experiment are promoted to their original campaign. + ENDED_MANUALLY (int): The experiment was ended manually. It did not end based on its end date. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INITIALIZING = 2 + INITIALIZATION_FAILED = 8 + ENABLED = 3 + GRADUATED = 4 + REMOVED = 5 + PROMOTING = 6 + PROMOTION_FAILED = 9 + PROMOTED = 7 + ENDED_MANUALLY = 10 +''' +CampaignExperimentStatusEnum = CampaignExperimentStatusEnum() # For __getattribute__ + + +class CampaignExperimentTrafficSplitTypeEnum(_CreateEnumTypeUponFirstAccess): + CampaignExperimentTrafficSplitType = '''\ + class CampaignExperimentTrafficSplitType(enum.IntEnum): + """ + Enum of strategies for splitting traffic between base and experiment + campaigns in campaign experiment. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + RANDOM_QUERY (int): Traffic is randomly assigned to the base or experiment arm for each + query, independent of previous assignments for the same user. + COOKIE (int): Traffic is split using cookies to keep users in the same arm (base or + experiment) of the experiment. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RANDOM_QUERY = 2 + COOKIE = 3 +''' +CampaignExperimentTrafficSplitTypeEnum = CampaignExperimentTrafficSplitTypeEnum() # For __getattribute__ + + +class CampaignExperimentTypeEnum(_CreateEnumTypeUponFirstAccess): + CampaignExperimentType = '''\ + class CampaignExperimentType(enum.IntEnum): + """ + Indicates if this campaign is a normal campaign, + a draft campaign, or an experiment campaign. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BASE (int): This is a regular campaign. + DRAFT (int): This is a draft version of a campaign. + It has some modifications from a base campaign, + but it does not serve or accrue metrics. + EXPERIMENT (int): This is an experiment version of a campaign. + It has some modifications from a base campaign, + and a percentage of traffic is being diverted + from the BASE campaign to this experiment campaign. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BASE = 2 + DRAFT = 3 + EXPERIMENT = 4 +''' +CampaignExperimentTypeEnum = CampaignExperimentTypeEnum() # For __getattribute__ + + +class CampaignFeedErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignFeedError = '''\ + class CampaignFeedError(enum.IntEnum): + """ + Enum describing possible campaign feed errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active feed already exists for this campaign and placeholder type. + CANNOT_CREATE_FOR_REMOVED_FEED (int): The specified feed is removed. + CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED (int): The CampaignFeed already exists. UPDATE should be used to modify the + existing CampaignFeed. + CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED (int): Cannot update removed campaign feed. + INVALID_PLACEHOLDER_TYPE (int): Invalid placeholder type. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE (int): Feed mapping for this placeholder type does not exist. + NO_EXISTING_LOCATION_CUSTOMER_FEED (int): Location CampaignFeeds cannot be created unless there is a location + CustomerFeed for the specified feed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2 + CANNOT_CREATE_FOR_REMOVED_FEED = 4 + CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED = 5 + CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED = 6 + INVALID_PLACEHOLDER_TYPE = 7 + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 8 + NO_EXISTING_LOCATION_CUSTOMER_FEED = 9 +''' +CampaignFeedErrorEnum = CampaignFeedErrorEnum() # For __getattribute__ + + +class CampaignServingStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignServingStatus = '''\ + class CampaignServingStatus(enum.IntEnum): + """ + Possible serving statuses of a campaign. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + SERVING (int): Serving. + NONE (int): None. + ENDED (int): Ended. + PENDING (int): Pending. + SUSPENDED (int): Suspended. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SERVING = 2 + NONE = 3 + ENDED = 4 + PENDING = 5 + SUSPENDED = 6 +''' +CampaignServingStatusEnum = CampaignServingStatusEnum() # For __getattribute__ + + +class CampaignSharedSetErrorEnum(_CreateEnumTypeUponFirstAccess): + CampaignSharedSetError = '''\ + class CampaignSharedSetError(enum.IntEnum): + """ + Enum describing possible campaign shared set errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + SHARED_SET_ACCESS_DENIED (int): The shared set belongs to another customer and permission isn't granted. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SHARED_SET_ACCESS_DENIED = 2 +''' +CampaignSharedSetErrorEnum = CampaignSharedSetErrorEnum() # For __getattribute__ + + +class CampaignSharedSetStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignSharedSetStatus = '''\ + class CampaignSharedSetStatus(enum.IntEnum): + """ + Enum listing the possible campaign shared set statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The campaign shared set is enabled. + REMOVED (int): The campaign shared set is removed and can no longer be used. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +CampaignSharedSetStatusEnum = CampaignSharedSetStatusEnum() # For __getattribute__ + + +class CampaignStatusEnum(_CreateEnumTypeUponFirstAccess): + CampaignStatus = '''\ + class CampaignStatus(enum.IntEnum): + """ + Possible statuses of a campaign. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Campaign is currently serving ads depending on budget information. + PAUSED (int): Campaign has been paused by the user. + REMOVED (int): Campaign has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 +''' +CampaignStatusEnum = CampaignStatusEnum() # For __getattribute__ + + +class ChangeStatusErrorEnum(_CreateEnumTypeUponFirstAccess): + ChangeStatusError = '''\ + class ChangeStatusError(enum.IntEnum): + """ + Enum describing possible change status errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + START_DATE_TOO_OLD (int): The requested start date is too old. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + START_DATE_TOO_OLD = 3 +''' +ChangeStatusErrorEnum = ChangeStatusErrorEnum() # For __getattribute__ + + +class ChangeStatusOperationEnum(_CreateEnumTypeUponFirstAccess): + ChangeStatusOperation = '''\ + class ChangeStatusOperation(enum.IntEnum): + """ + Status of the changed resource + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents an unclassified resource unknown + in this version. + ADDED (int): The resource was created. + CHANGED (int): The resource was modified. + REMOVED (int): The resource was removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADDED = 2 + CHANGED = 3 + REMOVED = 4 +''' +ChangeStatusOperationEnum = ChangeStatusOperationEnum() # For __getattribute__ + + +class ChangeStatusResourceTypeEnum(_CreateEnumTypeUponFirstAccess): + ChangeStatusResourceType = '''\ + class ChangeStatusResourceType(enum.IntEnum): + """ + Enum listing the resource types support by the ChangeStatus resource. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents an unclassified resource unknown + in this version. + AD_GROUP (int): An AdGroup resource change. + AD_GROUP_AD (int): An AdGroupAd resource change. + AD_GROUP_CRITERION (int): An AdGroupCriterion resource change. + CAMPAIGN (int): A Campaign resource change. + CAMPAIGN_CRITERION (int): A CampaignCriterion resource change. + FEED (int): A Feed resource change. + FEED_ITEM (int): A FeedItem resource change. + AD_GROUP_FEED (int): An AdGroupFeed resource change. + CAMPAIGN_FEED (int): A CampaignFeed resource change. + AD_GROUP_BID_MODIFIER (int): An AdGroupBidModifier resource change. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP = 3 + AD_GROUP_AD = 4 + AD_GROUP_CRITERION = 5 + CAMPAIGN = 6 + CAMPAIGN_CRITERION = 7 + FEED = 9 + FEED_ITEM = 10 + AD_GROUP_FEED = 11 + CAMPAIGN_FEED = 12 + AD_GROUP_BID_MODIFIER = 13 +''' +ChangeStatusResourceTypeEnum = ChangeStatusResourceTypeEnum() # For __getattribute__ + + +class ClickTypeEnum(_CreateEnumTypeUponFirstAccess): + ClickType = '''\ + class ClickType(enum.IntEnum): + """ + Enumerates Google Ads click types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + APP_DEEPLINK (int): App engagement ad deep link. + BREADCRUMBS (int): Breadcrumbs. + BROADBAND_PLAN (int): Broadband Plan. + CALL_TRACKING (int): Manually dialed phone calls. + CALLS (int): Phone calls. + CLICK_ON_ENGAGEMENT_AD (int): Click on engagement ad. + GET_DIRECTIONS (int): Driving direction. + LOCATION_EXPANSION (int): Get location details. + LOCATION_FORMAT_CALL (int): Call. + LOCATION_FORMAT_DIRECTIONS (int): Directions. + LOCATION_FORMAT_IMAGE (int): Image(s). + LOCATION_FORMAT_LANDING_PAGE (int): Go to landing page. + LOCATION_FORMAT_MAP (int): Map. + LOCATION_FORMAT_STORE_INFO (int): Go to store info. + LOCATION_FORMAT_TEXT (int): Text. + MOBILE_CALL_TRACKING (int): Mobile phone calls. + OFFER_PRINTS (int): Print offer. + OTHER (int): Other. + PRODUCT_EXTENSION_CLICKS (int): Product plusbox offer. + PRODUCT_LISTING_AD_CLICKS (int): Shopping - Product - Online. + SITELINKS (int): Sitelink. + STORE_LOCATOR (int): Show nearby locations. + URL_CLICKS (int): Headline. + VIDEO_APP_STORE_CLICKS (int): App store. + VIDEO_CALL_TO_ACTION_CLICKS (int): Call-to-Action overlay. + VIDEO_CARD_ACTION_HEADLINE_CLICKS (int): Cards. + VIDEO_END_CAP_CLICKS (int): End cap. + VIDEO_WEBSITE_CLICKS (int): Website. + VISUAL_SITELINKS (int): Visual Sitelinks. + WIRELESS_PLAN (int): Wireless Plan. + PRODUCT_LISTING_AD_LOCAL (int): Shopping - Product - Local. + PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL (int): Shopping - Product - MultiChannel Local. + PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE (int): Shopping - Product - MultiChannel Online. + PRODUCT_LISTING_ADS_COUPON (int): Shopping - Product - Coupon. + PRODUCT_LISTING_AD_TRANSACTABLE (int): Shopping - Product - Sell on Google. + PRODUCT_AD_APP_DEEPLINK (int): Shopping - Product - App engagement ad deep link. + SHOWCASE_AD_CATEGORY_LINK (int): Shopping - Showcase - Category. + SHOWCASE_AD_LOCAL_STOREFRONT_LINK (int): Shopping - Showcase - Local storefront. + SHOWCASE_AD_ONLINE_PRODUCT_LINK (int): Shopping - Showcase - Online product. + SHOWCASE_AD_LOCAL_PRODUCT_LINK (int): Shopping - Showcase - Local product. + PROMOTION_EXTENSION (int): Promotion Extension. + SWIPEABLE_GALLERY_AD_HEADLINE (int): Ad Headline. + SWIPEABLE_GALLERY_AD_SWIPES (int): Swipes. + SWIPEABLE_GALLERY_AD_SEE_MORE (int): See More. + SWIPEABLE_GALLERY_AD_SITELINK_ONE (int): Sitelink 1. + SWIPEABLE_GALLERY_AD_SITELINK_TWO (int): Sitelink 2. + SWIPEABLE_GALLERY_AD_SITELINK_THREE (int): Sitelink 3. + SWIPEABLE_GALLERY_AD_SITELINK_FOUR (int): Sitelink 4. + SWIPEABLE_GALLERY_AD_SITELINK_FIVE (int): Sitelink 5. + HOTEL_PRICE (int): Hotel price. + PRICE_EXTENSION (int): Price Extension. + HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION (int): Book on Google hotel room selection. + SHOPPING_COMPARISON_LISTING (int): Shopping - Comparison Listing. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APP_DEEPLINK = 2 + BREADCRUMBS = 3 + BROADBAND_PLAN = 4 + CALL_TRACKING = 5 + CALLS = 6 + CLICK_ON_ENGAGEMENT_AD = 7 + GET_DIRECTIONS = 8 + LOCATION_EXPANSION = 9 + LOCATION_FORMAT_CALL = 10 + LOCATION_FORMAT_DIRECTIONS = 11 + LOCATION_FORMAT_IMAGE = 12 + LOCATION_FORMAT_LANDING_PAGE = 13 + LOCATION_FORMAT_MAP = 14 + LOCATION_FORMAT_STORE_INFO = 15 + LOCATION_FORMAT_TEXT = 16 + MOBILE_CALL_TRACKING = 17 + OFFER_PRINTS = 18 + OTHER = 19 + PRODUCT_EXTENSION_CLICKS = 20 + PRODUCT_LISTING_AD_CLICKS = 21 + SITELINKS = 22 + STORE_LOCATOR = 23 + URL_CLICKS = 25 + VIDEO_APP_STORE_CLICKS = 26 + VIDEO_CALL_TO_ACTION_CLICKS = 27 + VIDEO_CARD_ACTION_HEADLINE_CLICKS = 28 + VIDEO_END_CAP_CLICKS = 29 + VIDEO_WEBSITE_CLICKS = 30 + VISUAL_SITELINKS = 31 + WIRELESS_PLAN = 32 + PRODUCT_LISTING_AD_LOCAL = 33 + PRODUCT_LISTING_AD_MULTICHANNEL_LOCAL = 34 + PRODUCT_LISTING_AD_MULTICHANNEL_ONLINE = 35 + PRODUCT_LISTING_ADS_COUPON = 36 + PRODUCT_LISTING_AD_TRANSACTABLE = 37 + PRODUCT_AD_APP_DEEPLINK = 38 + SHOWCASE_AD_CATEGORY_LINK = 39 + SHOWCASE_AD_LOCAL_STOREFRONT_LINK = 40 + SHOWCASE_AD_ONLINE_PRODUCT_LINK = 42 + SHOWCASE_AD_LOCAL_PRODUCT_LINK = 43 + PROMOTION_EXTENSION = 44 + SWIPEABLE_GALLERY_AD_HEADLINE = 45 + SWIPEABLE_GALLERY_AD_SWIPES = 46 + SWIPEABLE_GALLERY_AD_SEE_MORE = 47 + SWIPEABLE_GALLERY_AD_SITELINK_ONE = 48 + SWIPEABLE_GALLERY_AD_SITELINK_TWO = 49 + SWIPEABLE_GALLERY_AD_SITELINK_THREE = 50 + SWIPEABLE_GALLERY_AD_SITELINK_FOUR = 51 + SWIPEABLE_GALLERY_AD_SITELINK_FIVE = 52 + HOTEL_PRICE = 53 + PRICE_EXTENSION = 54 + HOTEL_BOOK_ON_GOOGLE_ROOM_SELECTION = 55 + SHOPPING_COMPARISON_LISTING = 56 +''' +ClickTypeEnum = ClickTypeEnum() # For __getattribute__ + + +class CollectionSizeErrorEnum(_CreateEnumTypeUponFirstAccess): + CollectionSizeError = '''\ + class CollectionSizeError(enum.IntEnum): + """ + Enum describing possible collection size errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_FEW (int): Too few. + TOO_MANY (int): Too many. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_FEW = 2 + TOO_MANY = 3 +''' +CollectionSizeErrorEnum = CollectionSizeErrorEnum() # For __getattribute__ + + +class ContentLabelTypeEnum(_CreateEnumTypeUponFirstAccess): + ContentLabelType = '''\ + class ContentLabelType(enum.IntEnum): + """ + Enum listing the content label types supported by ContentLabel criterion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SEXUALLY_SUGGESTIVE (int): Sexually suggestive content. + BELOW_THE_FOLD (int): Below the fold placement. + PARKED_DOMAIN (int): Parked domain. + JUVENILE (int): Juvenile, gross & bizarre content. + PROFANITY (int): Profanity & rough language. + TRAGEDY (int): Death & tragedy. + VIDEO (int): Video. + VIDEO_RATING_DV_G (int): Content rating: G. + VIDEO_RATING_DV_PG (int): Content rating: PG. + VIDEO_RATING_DV_T (int): Content rating: T. + VIDEO_RATING_DV_MA (int): Content rating: MA. + VIDEO_NOT_YET_RATED (int): Content rating: not yet rated. + EMBEDDED_VIDEO (int): Embedded video. + LIVE_STREAMING_VIDEO (int): Live streaming video. + SOCIAL_ISSUES (int): Sensitive social issues. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEXUALLY_SUGGESTIVE = 2 + BELOW_THE_FOLD = 3 + PARKED_DOMAIN = 4 + JUVENILE = 6 + PROFANITY = 7 + TRAGEDY = 8 + VIDEO = 9 + VIDEO_RATING_DV_G = 10 + VIDEO_RATING_DV_PG = 11 + VIDEO_RATING_DV_T = 12 + VIDEO_RATING_DV_MA = 13 + VIDEO_NOT_YET_RATED = 14 + EMBEDDED_VIDEO = 15 + LIVE_STREAMING_VIDEO = 16 + SOCIAL_ISSUES = 17 +''' +ContentLabelTypeEnum = ContentLabelTypeEnum() # For __getattribute__ + + +class ContextErrorEnum(_CreateEnumTypeUponFirstAccess): + ContextError = '''\ + class ContextError(enum.IntEnum): + """ + Enum describing possible context errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + OPERATION_NOT_PERMITTED_FOR_CONTEXT (int): The operation is not allowed for the given context. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE (int): The operation is not allowed for removed resources. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2 + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 3 +''' +ContextErrorEnum = ContextErrorEnum() # For __getattribute__ + + +class ConversionActionCategoryEnum(_CreateEnumTypeUponFirstAccess): + ConversionActionCategory = '''\ + class ConversionActionCategory(enum.IntEnum): + """ + The category of conversions that are associated with a ConversionAction. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DEFAULT (int): Default category. + PAGE_VIEW (int): User visiting a page. + PURCHASE (int): Purchase, sales, or "order placed" event. + SIGNUP (int): Signup user action. + LEAD (int): Lead-generating action. + DOWNLOAD (int): Software download action (as for an app). + ADD_TO_CART (int): The addition of items to a shopping cart or bag on an advertiser site. + BEGIN_CHECKOUT (int): When someone enters the checkout flow on an advertiser site. + SUBSCRIBE_PAID (int): The start of a paid subscription for a product or service. + PHONE_CALL_LEAD (int): A call to indicate interest in an advertiser's offering. + IMPORTED_LEAD (int): A lead conversion imported from an external source into Google Ads. + SUBMIT_LEAD_FORM (int): A submission of a form on an advertiser site indicating business + interest. + BOOK_APPOINTMENT (int): A booking of an appointment with an advertiser's business. + REQUEST_QUOTE (int): A quote or price estimate request. + GET_DIRECTIONS (int): A search for an advertiser's business location with intention to visit. + OUTBOUND_CLICK (int): A click to an advertiser's partner's site. + CONTACT (int): A call, SMS, email, chat or other type of contact to an advertiser. + ENGAGEMENT (int): A website engagement event such as long site time or a Google Analytics + (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal + imports. + STORE_VISIT (int): A visit to a physical store location. + STORE_SALE (int): A sale occurring in a physical store. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DEFAULT = 2 + PAGE_VIEW = 3 + PURCHASE = 4 + SIGNUP = 5 + LEAD = 6 + DOWNLOAD = 7 + ADD_TO_CART = 8 + BEGIN_CHECKOUT = 9 + SUBSCRIBE_PAID = 10 + PHONE_CALL_LEAD = 11 + IMPORTED_LEAD = 12 + SUBMIT_LEAD_FORM = 13 + BOOK_APPOINTMENT = 14 + REQUEST_QUOTE = 15 + GET_DIRECTIONS = 16 + OUTBOUND_CLICK = 17 + CONTACT = 18 + ENGAGEMENT = 19 + STORE_VISIT = 20 + STORE_SALE = 21 +''' +ConversionActionCategoryEnum = ConversionActionCategoryEnum() # For __getattribute__ + + +class ConversionActionCountingTypeEnum(_CreateEnumTypeUponFirstAccess): + ConversionActionCountingType = '''\ + class ConversionActionCountingType(enum.IntEnum): + """ + Indicates how conversions for this action will be counted. For more + information, see https://support.google.com/google-ads/answer/3438531. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ONE_PER_CLICK (int): Count only one conversion per click. + MANY_PER_CLICK (int): Count all conversions per click. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ONE_PER_CLICK = 2 + MANY_PER_CLICK = 3 +''' +ConversionActionCountingTypeEnum = ConversionActionCountingTypeEnum() # For __getattribute__ + + +class ConversionActionErrorEnum(_CreateEnumTypeUponFirstAccess): + ConversionActionError = '''\ + class ConversionActionError(enum.IntEnum): + """ + Enum describing possible conversion action errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_NAME (int): The specified conversion action name already exists. + DUPLICATE_APP_ID (int): Another conversion action with the specified app id already exists. + TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD (int): Android first open action conflicts with Google play codeless download + action tracking the same app. + BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION (int): Android first open action conflicts with Google play codeless download + action tracking the same app. + DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED (int): The attribution model cannot be set to DATA\_DRIVEN because a + data-driven model has never been generated. + DATA_DRIVEN_MODEL_EXPIRED (int): The attribution model cannot be set to DATA\_DRIVEN because the + data-driven model is expired. + DATA_DRIVEN_MODEL_STALE (int): The attribution model cannot be set to DATA\_DRIVEN because the + data-driven model is stale. + DATA_DRIVEN_MODEL_UNKNOWN (int): The attribution model cannot be set to DATA\_DRIVEN because the + data-driven model is unavailable or the conversion action was newly + added. + CREATION_NOT_SUPPORTED (int): Creation of this conversion action type isn't supported by Google + Ads API. + UPDATE_NOT_SUPPORTED (int): Update of this conversion action isn't supported by Google Ads API. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_NAME = 2 + DUPLICATE_APP_ID = 3 + TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD = 4 + BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION = 5 + DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED = 6 + DATA_DRIVEN_MODEL_EXPIRED = 7 + DATA_DRIVEN_MODEL_STALE = 8 + DATA_DRIVEN_MODEL_UNKNOWN = 9 + CREATION_NOT_SUPPORTED = 10 + UPDATE_NOT_SUPPORTED = 11 +''' +ConversionActionErrorEnum = ConversionActionErrorEnum() # For __getattribute__ + + +class ConversionActionStatusEnum(_CreateEnumTypeUponFirstAccess): + ConversionActionStatus = '''\ + class ConversionActionStatus(enum.IntEnum): + """ + Possible statuses of a conversion action. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Conversions will be recorded. + REMOVED (int): Conversions will not be recorded. + HIDDEN (int): Conversions will not be recorded and the conversion action will not + appear in the UI. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 + HIDDEN = 4 +''' +ConversionActionStatusEnum = ConversionActionStatusEnum() # For __getattribute__ + + +class ConversionActionTypeEnum(_CreateEnumTypeUponFirstAccess): + ConversionActionType = '''\ + class ConversionActionType(enum.IntEnum): + """ + Possible types of a conversion action. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AD_CALL (int): Conversions that occur when a user clicks on an ad's call extension. + CLICK_TO_CALL (int): Conversions that occur when a user on a mobile device clicks a phone + number. + GOOGLE_PLAY_DOWNLOAD (int): Conversions that occur when a user downloads a mobile app from the Google + Play Store. + GOOGLE_PLAY_IN_APP_PURCHASE (int): Conversions that occur when a user makes a purchase in an app through + Android billing. + UPLOAD_CALLS (int): Call conversions that are tracked by the advertiser and uploaded. + UPLOAD_CLICKS (int): Conversions that are tracked by the advertiser and uploaded with + attributed clicks. + WEBPAGE (int): Conversions that occur on a webpage. + WEBSITE_CALL (int): Conversions that occur when a user calls a dynamically-generated phone + number from an advertiser's website. + STORE_SALES_DIRECT_UPLOAD (int): Store Sales conversion based on first-party or third-party merchant + data uploads. + Only customers on the allowlist can use store sales direct upload types. + STORE_SALES (int): Store Sales conversion based on first-party or third-party merchant + data uploads and/or from in-store purchases using cards from payment + networks. + Only customers on the allowlist can use store sales types. + FIREBASE_ANDROID_FIRST_OPEN (int): Android app first open conversions tracked via Firebase. + FIREBASE_ANDROID_IN_APP_PURCHASE (int): Android app in app purchase conversions tracked via Firebase. + FIREBASE_ANDROID_CUSTOM (int): Android app custom conversions tracked via Firebase. + FIREBASE_IOS_FIRST_OPEN (int): iOS app first open conversions tracked via Firebase. + FIREBASE_IOS_IN_APP_PURCHASE (int): iOS app in app purchase conversions tracked via Firebase. + FIREBASE_IOS_CUSTOM (int): iOS app custom conversions tracked via Firebase. + THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN (int): Android app first open conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE (int): Android app in app purchase conversions tracked via Third Party App + Analytics. + THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM (int): Android app custom conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN (int): iOS app first open conversions tracked via Third Party App Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE (int): iOS app in app purchase conversions tracked via Third Party App + Analytics. + THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM (int): iOS app custom conversions tracked via Third Party App Analytics. + ANDROID_APP_PRE_REGISTRATION (int): Conversions that occur when a user pre-registers a mobile app from the + Google Play Store. Read only. + ANDROID_INSTALLS_ALL_OTHER_APPS (int): Conversions that track all Google Play downloads which aren't tracked + by an app-specific type. Read only. + FLOODLIGHT_ACTION (int): Floodlight activity that counts the number of times that users have + visited a particular webpage after seeing or clicking on one of + an advertiser's ads. Read only. + FLOODLIGHT_TRANSACTION (int): Floodlight activity that tracks the number of sales made or the number + of items purchased. Can also capture the total value of each sale. + Read only. + GOOGLE_HOSTED (int): Conversions that track local actions from Google's products and + services after interacting with an ad. Read only. + LEAD_FORM_SUBMIT (int): Conversions reported when a user submits a lead form. Read only. + SALESFORCE (int): Conversions that come from Salesforce. Read only. + SEARCH_ADS_360 (int): Conversions imported from Search Ads 360 Floodlight data. Read only. + SMART_CAMPAIGN_AD_CLICKS_TO_CALL (int): Call conversions that occur on Smart campaign Ads without call tracking + setup, using Smart campaign custom criteria. Read only. + SMART_CAMPAIGN_MAP_CLICKS_TO_CALL (int): The user clicks on a call element within Google Maps. Smart campaign + only. Read only. + SMART_CAMPAIGN_MAP_DIRECTIONS (int): The user requests directions to a business location within Google Maps. + Smart campaign only. Read only. + SMART_CAMPAIGN_TRACKED_CALLS (int): Call conversions that occur on Smart campaign Ads with call tracking + setup, using Smart campaign custom criteria. Read only. + STORE_VISITS (int): Conversions that occur when a user visits an advertiser's retail store. + Read only. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_CALL = 2 + CLICK_TO_CALL = 3 + GOOGLE_PLAY_DOWNLOAD = 4 + GOOGLE_PLAY_IN_APP_PURCHASE = 5 + UPLOAD_CALLS = 6 + UPLOAD_CLICKS = 7 + WEBPAGE = 8 + WEBSITE_CALL = 9 + STORE_SALES_DIRECT_UPLOAD = 10 + STORE_SALES = 11 + FIREBASE_ANDROID_FIRST_OPEN = 12 + FIREBASE_ANDROID_IN_APP_PURCHASE = 13 + FIREBASE_ANDROID_CUSTOM = 14 + FIREBASE_IOS_FIRST_OPEN = 15 + FIREBASE_IOS_IN_APP_PURCHASE = 16 + FIREBASE_IOS_CUSTOM = 17 + THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN = 18 + THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE = 19 + THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM = 20 + THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN = 21 + THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE = 22 + THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM = 23 + ANDROID_APP_PRE_REGISTRATION = 24 + ANDROID_INSTALLS_ALL_OTHER_APPS = 25 + FLOODLIGHT_ACTION = 26 + FLOODLIGHT_TRANSACTION = 27 + GOOGLE_HOSTED = 28 + LEAD_FORM_SUBMIT = 29 + SALESFORCE = 30 + SEARCH_ADS_360 = 31 + SMART_CAMPAIGN_AD_CLICKS_TO_CALL = 32 + SMART_CAMPAIGN_MAP_CLICKS_TO_CALL = 33 + SMART_CAMPAIGN_MAP_DIRECTIONS = 34 + SMART_CAMPAIGN_TRACKED_CALLS = 35 + STORE_VISITS = 36 +''' +ConversionActionTypeEnum = ConversionActionTypeEnum() # For __getattribute__ + + +class ConversionAdjustmentTypeEnum(_CreateEnumTypeUponFirstAccess): + ConversionAdjustmentType = '''\ + class ConversionAdjustmentType(enum.IntEnum): + """ + The different actions advertisers can take to adjust the conversions that + they already reported. Retractions negate a conversion. Restatements change + the value of a conversion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Represents value unknown in this version. + RETRACTION (int): Negates a conversion so that its total value and count are both zero. + RESTATEMENT (int): Changes the value of a conversion. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RETRACTION = 2 + RESTATEMENT = 3 +''' +ConversionAdjustmentTypeEnum = ConversionAdjustmentTypeEnum() # For __getattribute__ + + +class ConversionAdjustmentUploadErrorEnum(_CreateEnumTypeUponFirstAccess): + ConversionAdjustmentUploadError = '''\ + class ConversionAdjustmentUploadError(enum.IntEnum): + """ + Enum describing possible conversion adjustment upload errors. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The received error code is not known in this version. + TOO_RECENT_CONVERSION_ACTION (int): The specified conversion action was created too recently. + Please try the upload again after 4-6 hours have passed since the + conversion action was created. + INVALID_CONVERSION_ACTION (int): No conversion action of a supported ConversionActionType that matches the + provided information can be found for the customer. + CONVERSION_ALREADY_RETRACTED (int): A retraction was already reported for this conversion. + CONVERSION_NOT_FOUND (int): A conversion for the supplied combination of conversion + action and conversion identifier could not be found. + CONVERSION_EXPIRED (int): The specified conversion has already expired. Conversions expire after 55 + days, after which adjustments cannot be reported against them. + ADJUSTMENT_PRECEDES_CONVERSION (int): The supplied adjustment date time precedes that of the original + conversion. + MORE_RECENT_RESTATEMENT_FOUND (int): A restatement with a more recent adjustment date time was already + reported for this conversion. + TOO_RECENT_CONVERSION (int): The conversion was created too recently. + CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE (int): Restatements cannot be reported for a conversion action that always uses + the default value. + TOO_MANY_ADJUSTMENTS_IN_REQUEST (int): The request contained more than 2000 adjustments. + TOO_MANY_ADJUSTMENTS (int): The conversion has been adjusted too many times. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_RECENT_CONVERSION_ACTION = 2 + INVALID_CONVERSION_ACTION = 3 + CONVERSION_ALREADY_RETRACTED = 4 + CONVERSION_NOT_FOUND = 5 + CONVERSION_EXPIRED = 6 + ADJUSTMENT_PRECEDES_CONVERSION = 7 + MORE_RECENT_RESTATEMENT_FOUND = 8 + TOO_RECENT_CONVERSION = 9 + CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE = 10 + TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11 + TOO_MANY_ADJUSTMENTS = 12 +''' +ConversionAdjustmentUploadErrorEnum = ConversionAdjustmentUploadErrorEnum() # For __getattribute__ + + +class ConversionAttributionEventTypeEnum(_CreateEnumTypeUponFirstAccess): + ConversionAttributionEventType = '''\ + class ConversionAttributionEventType(enum.IntEnum): + """ + The event type of conversions that are attributed to. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Represents value unknown in this version. + IMPRESSION (int): The conversion is attributed to an impression. + INTERACTION (int): The conversion is attributed to an interaction. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IMPRESSION = 2 + INTERACTION = 3 +''' +ConversionAttributionEventTypeEnum = ConversionAttributionEventTypeEnum() # For __getattribute__ + + +class ConversionLagBucketEnum(_CreateEnumTypeUponFirstAccess): + ConversionLagBucket = '''\ + class ConversionLagBucket(enum.IntEnum): + """ + Enum representing the number of days between impression and conversion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LESS_THAN_ONE_DAY (int): Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + ONE_TO_TWO_DAYS (int): Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + TWO_TO_THREE_DAYS (int): Conversion lag bucket from 2 to 3 days. 2 days is included, + 3 days is not. + THREE_TO_FOUR_DAYS (int): Conversion lag bucket from 3 to 4 days. 3 days is included, + 4 days is not. + FOUR_TO_FIVE_DAYS (int): Conversion lag bucket from 4 to 5 days. 4 days is included, + 5 days is not. + FIVE_TO_SIX_DAYS (int): Conversion lag bucket from 5 to 6 days. 5 days is included, + 6 days is not. + SIX_TO_SEVEN_DAYS (int): Conversion lag bucket from 6 to 7 days. 6 days is included, + 7 days is not. + SEVEN_TO_EIGHT_DAYS (int): Conversion lag bucket from 7 to 8 days. 7 days is included, + 8 days is not. + EIGHT_TO_NINE_DAYS (int): Conversion lag bucket from 8 to 9 days. 8 days is included, + 9 days is not. + NINE_TO_TEN_DAYS (int): Conversion lag bucket from 9 to 10 days. 9 days is included, + 10 days is not. + TEN_TO_ELEVEN_DAYS (int): Conversion lag bucket from 10 to 11 days. 10 days is included, + 11 days is not. + ELEVEN_TO_TWELVE_DAYS (int): Conversion lag bucket from 11 to 12 days. 11 days is included, + 12 days is not. + TWELVE_TO_THIRTEEN_DAYS (int): Conversion lag bucket from 12 to 13 days. 12 days is included, + 13 days is not. + THIRTEEN_TO_FOURTEEN_DAYS (int): Conversion lag bucket from 13 to 14 days. 13 days is included, + 14 days is not. + FOURTEEN_TO_TWENTY_ONE_DAYS (int): Conversion lag bucket from 14 to 21 days. 14 days is included, + 21 days is not. + TWENTY_ONE_TO_THIRTY_DAYS (int): Conversion lag bucket from 21 to 30 days. 21 days is included, + 30 days is not. + THIRTY_TO_FORTY_FIVE_DAYS (int): Conversion lag bucket from 30 to 45 days. 30 days is included, + 45 days is not. + FORTY_FIVE_TO_SIXTY_DAYS (int): Conversion lag bucket from 45 to 60 days. 45 days is included, + 60 days is not. + SIXTY_TO_NINETY_DAYS (int): Conversion lag bucket from 60 to 90 days. 60 days is included, + 90 days is not. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LESS_THAN_ONE_DAY = 2 + ONE_TO_TWO_DAYS = 3 + TWO_TO_THREE_DAYS = 4 + THREE_TO_FOUR_DAYS = 5 + FOUR_TO_FIVE_DAYS = 6 + FIVE_TO_SIX_DAYS = 7 + SIX_TO_SEVEN_DAYS = 8 + SEVEN_TO_EIGHT_DAYS = 9 + EIGHT_TO_NINE_DAYS = 10 + NINE_TO_TEN_DAYS = 11 + TEN_TO_ELEVEN_DAYS = 12 + ELEVEN_TO_TWELVE_DAYS = 13 + TWELVE_TO_THIRTEEN_DAYS = 14 + THIRTEEN_TO_FOURTEEN_DAYS = 15 + FOURTEEN_TO_TWENTY_ONE_DAYS = 16 + TWENTY_ONE_TO_THIRTY_DAYS = 17 + THIRTY_TO_FORTY_FIVE_DAYS = 18 + FORTY_FIVE_TO_SIXTY_DAYS = 19 + SIXTY_TO_NINETY_DAYS = 20 +''' +ConversionLagBucketEnum = ConversionLagBucketEnum() # For __getattribute__ + + +class ConversionOrAdjustmentLagBucketEnum(_CreateEnumTypeUponFirstAccess): + ConversionOrAdjustmentLagBucket = '''\ + class ConversionOrAdjustmentLagBucket(enum.IntEnum): + """ + Enum representing the number of days between the impression and the + conversion or between the impression and adjustments to the conversion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CONVERSION_LESS_THAN_ONE_DAY (int): Conversion lag bucket from 0 to 1 day. 0 day is included, 1 day is not. + CONVERSION_ONE_TO_TWO_DAYS (int): Conversion lag bucket from 1 to 2 days. 1 day is included, 2 days is not. + CONVERSION_TWO_TO_THREE_DAYS (int): Conversion lag bucket from 2 to 3 days. 2 days is included, + 3 days is not. + CONVERSION_THREE_TO_FOUR_DAYS (int): Conversion lag bucket from 3 to 4 days. 3 days is included, + 4 days is not. + CONVERSION_FOUR_TO_FIVE_DAYS (int): Conversion lag bucket from 4 to 5 days. 4 days is included, + 5 days is not. + CONVERSION_FIVE_TO_SIX_DAYS (int): Conversion lag bucket from 5 to 6 days. 5 days is included, + 6 days is not. + CONVERSION_SIX_TO_SEVEN_DAYS (int): Conversion lag bucket from 6 to 7 days. 6 days is included, + 7 days is not. + CONVERSION_SEVEN_TO_EIGHT_DAYS (int): Conversion lag bucket from 7 to 8 days. 7 days is included, + 8 days is not. + CONVERSION_EIGHT_TO_NINE_DAYS (int): Conversion lag bucket from 8 to 9 days. 8 days is included, + 9 days is not. + CONVERSION_NINE_TO_TEN_DAYS (int): Conversion lag bucket from 9 to 10 days. 9 days is included, + 10 days is not. + CONVERSION_TEN_TO_ELEVEN_DAYS (int): Conversion lag bucket from 10 to 11 days. 10 days is included, + 11 days is not. + CONVERSION_ELEVEN_TO_TWELVE_DAYS (int): Conversion lag bucket from 11 to 12 days. 11 days is included, + 12 days is not. + CONVERSION_TWELVE_TO_THIRTEEN_DAYS (int): Conversion lag bucket from 12 to 13 days. 12 days is included, + 13 days is not. + CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS (int): Conversion lag bucket from 13 to 14 days. 13 days is included, + 14 days is not. + CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS (int): Conversion lag bucket from 14 to 21 days. 14 days is included, + 21 days is not. + CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS (int): Conversion lag bucket from 21 to 30 days. 21 days is included, + 30 days is not. + CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS (int): Conversion lag bucket from 30 to 45 days. 30 days is included, + 45 days is not. + CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS (int): Conversion lag bucket from 45 to 60 days. 45 days is included, + 60 days is not. + CONVERSION_SIXTY_TO_NINETY_DAYS (int): Conversion lag bucket from 60 to 90 days. 60 days is included, + 90 days is not. + ADJUSTMENT_LESS_THAN_ONE_DAY (int): Conversion adjustment lag bucket from 0 to 1 day. 0 day is included, + 1 day is not. + ADJUSTMENT_ONE_TO_TWO_DAYS (int): Conversion adjustment lag bucket from 1 to 2 days. 1 day is included, + 2 days is not. + ADJUSTMENT_TWO_TO_THREE_DAYS (int): Conversion adjustment lag bucket from 2 to 3 days. 2 days is included, + 3 days is not. + ADJUSTMENT_THREE_TO_FOUR_DAYS (int): Conversion adjustment lag bucket from 3 to 4 days. 3 days is included, + 4 days is not. + ADJUSTMENT_FOUR_TO_FIVE_DAYS (int): Conversion adjustment lag bucket from 4 to 5 days. 4 days is included, + 5 days is not. + ADJUSTMENT_FIVE_TO_SIX_DAYS (int): Conversion adjustment lag bucket from 5 to 6 days. 5 days is included, + 6 days is not. + ADJUSTMENT_SIX_TO_SEVEN_DAYS (int): Conversion adjustment lag bucket from 6 to 7 days. 6 days is included, + 7 days is not. + ADJUSTMENT_SEVEN_TO_EIGHT_DAYS (int): Conversion adjustment lag bucket from 7 to 8 days. 7 days is included, + 8 days is not. + ADJUSTMENT_EIGHT_TO_NINE_DAYS (int): Conversion adjustment lag bucket from 8 to 9 days. 8 days is included, + 9 days is not. + ADJUSTMENT_NINE_TO_TEN_DAYS (int): Conversion adjustment lag bucket from 9 to 10 days. 9 days is included, + 10 days is not. + ADJUSTMENT_TEN_TO_ELEVEN_DAYS (int): Conversion adjustment lag bucket from 10 to 11 days. 10 days is included, + 11 days is not. + ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS (int): Conversion adjustment lag bucket from 11 to 12 days. 11 days is included, + 12 days is not. + ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS (int): Conversion adjustment lag bucket from 12 to 13 days. 12 days is included, + 13 days is not. + ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS (int): Conversion adjustment lag bucket from 13 to 14 days. 13 days is included, + 14 days is not. + ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS (int): Conversion adjustment lag bucket from 14 to 21 days. 14 days is included, + 21 days is not. + ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS (int): Conversion adjustment lag bucket from 21 to 30 days. 21 days is included, + 30 days is not. + ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS (int): Conversion adjustment lag bucket from 30 to 45 days. 30 days is included, + 45 days is not. + ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS (int): Conversion adjustment lag bucket from 45 to 60 days. 45 days is included, + 60 days is not. + ADJUSTMENT_SIXTY_TO_NINETY_DAYS (int): Conversion adjustment lag bucket from 60 to 90 days. 60 days is included, + 90 days is not. + ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS (int): Conversion adjustment lag bucket from 90 to 145 days. 90 days is + included, 145 days is not. + CONVERSION_UNKNOWN (int): Conversion lag bucket UNKNOWN. This is for dates before conversion lag + bucket was available in Google Ads. + ADJUSTMENT_UNKNOWN (int): Conversion adjustment lag bucket UNKNOWN. This is for dates before + conversion adjustment lag bucket was available in Google Ads. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONVERSION_LESS_THAN_ONE_DAY = 2 + CONVERSION_ONE_TO_TWO_DAYS = 3 + CONVERSION_TWO_TO_THREE_DAYS = 4 + CONVERSION_THREE_TO_FOUR_DAYS = 5 + CONVERSION_FOUR_TO_FIVE_DAYS = 6 + CONVERSION_FIVE_TO_SIX_DAYS = 7 + CONVERSION_SIX_TO_SEVEN_DAYS = 8 + CONVERSION_SEVEN_TO_EIGHT_DAYS = 9 + CONVERSION_EIGHT_TO_NINE_DAYS = 10 + CONVERSION_NINE_TO_TEN_DAYS = 11 + CONVERSION_TEN_TO_ELEVEN_DAYS = 12 + CONVERSION_ELEVEN_TO_TWELVE_DAYS = 13 + CONVERSION_TWELVE_TO_THIRTEEN_DAYS = 14 + CONVERSION_THIRTEEN_TO_FOURTEEN_DAYS = 15 + CONVERSION_FOURTEEN_TO_TWENTY_ONE_DAYS = 16 + CONVERSION_TWENTY_ONE_TO_THIRTY_DAYS = 17 + CONVERSION_THIRTY_TO_FORTY_FIVE_DAYS = 18 + CONVERSION_FORTY_FIVE_TO_SIXTY_DAYS = 19 + CONVERSION_SIXTY_TO_NINETY_DAYS = 20 + ADJUSTMENT_LESS_THAN_ONE_DAY = 21 + ADJUSTMENT_ONE_TO_TWO_DAYS = 22 + ADJUSTMENT_TWO_TO_THREE_DAYS = 23 + ADJUSTMENT_THREE_TO_FOUR_DAYS = 24 + ADJUSTMENT_FOUR_TO_FIVE_DAYS = 25 + ADJUSTMENT_FIVE_TO_SIX_DAYS = 26 + ADJUSTMENT_SIX_TO_SEVEN_DAYS = 27 + ADJUSTMENT_SEVEN_TO_EIGHT_DAYS = 28 + ADJUSTMENT_EIGHT_TO_NINE_DAYS = 29 + ADJUSTMENT_NINE_TO_TEN_DAYS = 30 + ADJUSTMENT_TEN_TO_ELEVEN_DAYS = 31 + ADJUSTMENT_ELEVEN_TO_TWELVE_DAYS = 32 + ADJUSTMENT_TWELVE_TO_THIRTEEN_DAYS = 33 + ADJUSTMENT_THIRTEEN_TO_FOURTEEN_DAYS = 34 + ADJUSTMENT_FOURTEEN_TO_TWENTY_ONE_DAYS = 35 + ADJUSTMENT_TWENTY_ONE_TO_THIRTY_DAYS = 36 + ADJUSTMENT_THIRTY_TO_FORTY_FIVE_DAYS = 37 + ADJUSTMENT_FORTY_FIVE_TO_SIXTY_DAYS = 38 + ADJUSTMENT_SIXTY_TO_NINETY_DAYS = 39 + ADJUSTMENT_NINETY_TO_ONE_HUNDRED_AND_FORTY_FIVE_DAYS = 40 + CONVERSION_UNKNOWN = 41 + ADJUSTMENT_UNKNOWN = 42 +''' +ConversionOrAdjustmentLagBucketEnum = ConversionOrAdjustmentLagBucketEnum() # For __getattribute__ + + +class ConversionUploadErrorEnum(_CreateEnumTypeUponFirstAccess): + ConversionUploadError = '''\ + class ConversionUploadError(enum.IntEnum): + """ + Enum describing possible conversion upload errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_MANY_CONVERSIONS_IN_REQUEST (int): The request contained more than 2000 conversions. + UNPARSEABLE_GCLID (int): The specified gclid could not be decoded. + CONVERSION_PRECEDES_GCLID (int): The specified conversion\_date\_time is before the event time associated + with the given gclid. + EXPIRED_GCLID (int): The click associated with the given gclid is either too old to be + imported or occurred outside of the click through lookback window for the + specified conversion action. + TOO_RECENT_GCLID (int): The click associated with the given gclid occurred too recently. Please + try uploading again after 6 hours have passed since the click occurred. + GCLID_NOT_FOUND (int): The click associated with the given gclid could not be found in the + system. This can happen if Google Click IDs are collected for non Google + Ads clicks. + UNAUTHORIZED_CUSTOMER (int): The click associated with the given gclid is owned by a customer + account that the uploading customer does not manage. + INVALID_CONVERSION_ACTION (int): No upload eligible conversion action that matches the provided + information can be found for the customer. + TOO_RECENT_CONVERSION_ACTION (int): The specified conversion action was created too recently. + Please try the upload again after 4-6 hours have passed since the + conversion action was created. + CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME (int): The click associated with the given gclid does not contain conversion + tracking information. + EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION (int): The specified conversion action does not use an external attribution + model, but external\_attribution\_data was set. + EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION (int): The specified conversion action uses an external attribution model, but + external\_attribution\_data or one of its contained fields was not set. + Both external\_attribution\_credit and external\_attribution\_model must + be set for externally attributed conversion actions. + ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION (int): Order IDs are not supported for conversion actions which use an external + attribution model. + ORDER_ID_ALREADY_IN_USE (int): A conversion with the same order id and conversion action combination + already exists in our system. + DUPLICATE_ORDER_ID (int): The request contained two or more conversions with the same order id and + conversion action combination. + TOO_RECENT_CALL (int): The call occurred too recently. Please try uploading again after 6 hours + have passed since the call occurred. + EXPIRED_CALL (int): The click that initiated the call is too old for this conversion to be + imported. + CALL_NOT_FOUND (int): The call or the click leading to the call was not found. + CONVERSION_PRECEDES_CALL (int): The specified conversion\_date\_time is before the + call\_start\_date\_time. + CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME (int): The click associated with the call does not contain conversion tracking + information. + UNPARSEABLE_CALLERS_PHONE_NUMBER (int): The caller’s phone number cannot be parsed. It should be formatted either + as E.164 "+16502531234", International "+64 3-331 6005" or US national + number "6502531234". + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_MANY_CONVERSIONS_IN_REQUEST = 2 + UNPARSEABLE_GCLID = 3 + CONVERSION_PRECEDES_GCLID = 4 + EXPIRED_GCLID = 5 + TOO_RECENT_GCLID = 6 + GCLID_NOT_FOUND = 7 + UNAUTHORIZED_CUSTOMER = 8 + INVALID_CONVERSION_ACTION = 9 + TOO_RECENT_CONVERSION_ACTION = 10 + CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME = 11 + EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 12 + EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 13 + ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION = 14 + ORDER_ID_ALREADY_IN_USE = 15 + DUPLICATE_ORDER_ID = 16 + TOO_RECENT_CALL = 17 + EXPIRED_CALL = 18 + CALL_NOT_FOUND = 19 + CONVERSION_PRECEDES_CALL = 20 + CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME = 21 + UNPARSEABLE_CALLERS_PHONE_NUMBER = 22 +''' +ConversionUploadErrorEnum = ConversionUploadErrorEnum() # For __getattribute__ + + +class CountryCodeErrorEnum(_CreateEnumTypeUponFirstAccess): + CountryCodeError = '''\ + class CountryCodeError(enum.IntEnum): + """ + Enum describing country code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_COUNTRY_CODE (int): The country code is invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_COUNTRY_CODE = 2 +''' +CountryCodeErrorEnum = CountryCodeErrorEnum() # For __getattribute__ + + +class CriterionCategoryChannelAvailabilityModeEnum(_CreateEnumTypeUponFirstAccess): + CriterionCategoryChannelAvailabilityMode = '''\ + class CriterionCategoryChannelAvailabilityMode(enum.IntEnum): + """ + Enum containing the possible CriterionCategoryChannelAvailabilityMode. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ALL_CHANNELS (int): The category is available to campaigns of all channel types and subtypes. + CHANNEL_TYPE_AND_ALL_SUBTYPES (int): The category is available to campaigns of a specific channel type, + including all subtypes under it. + CHANNEL_TYPE_AND_SUBSET_SUBTYPES (int): The category is available to campaigns of a specific channel type and + subtype(s). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ALL_CHANNELS = 2 + CHANNEL_TYPE_AND_ALL_SUBTYPES = 3 + CHANNEL_TYPE_AND_SUBSET_SUBTYPES = 4 +''' +CriterionCategoryChannelAvailabilityModeEnum = CriterionCategoryChannelAvailabilityModeEnum() # For __getattribute__ + + +class CriterionCategoryLocaleAvailabilityModeEnum(_CreateEnumTypeUponFirstAccess): + CriterionCategoryLocaleAvailabilityMode = '''\ + class CriterionCategoryLocaleAvailabilityMode(enum.IntEnum): + """ + Enum containing the possible CriterionCategoryLocaleAvailabilityMode. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ALL_LOCALES (int): The category is available to campaigns of all locales. + COUNTRY_AND_ALL_LANGUAGES (int): The category is available to campaigns within a list of countries, + regardless of language. + LANGUAGE_AND_ALL_COUNTRIES (int): The category is available to campaigns within a list of languages, + regardless of country. + COUNTRY_AND_LANGUAGE (int): The category is available to campaigns within a list of country, language + pairs. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ALL_LOCALES = 2 + COUNTRY_AND_ALL_LANGUAGES = 3 + LANGUAGE_AND_ALL_COUNTRIES = 4 + COUNTRY_AND_LANGUAGE = 5 +''' +CriterionCategoryLocaleAvailabilityModeEnum = CriterionCategoryLocaleAvailabilityModeEnum() # For __getattribute__ + + +class CriterionErrorEnum(_CreateEnumTypeUponFirstAccess): + CriterionError = '''\ + class CriterionError(enum.IntEnum): + """ + Enum describing possible criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion is required for CREATE and UPDATE operations. + INVALID_EXCLUDED_CATEGORY (int): The category requested for exclusion is invalid. + INVALID_KEYWORD_TEXT (int): Invalid keyword criteria text. + KEYWORD_TEXT_TOO_LONG (int): Keyword text should be less than 80 chars. + KEYWORD_HAS_TOO_MANY_WORDS (int): Keyword text has too many words. + KEYWORD_HAS_INVALID_CHARS (int): Keyword text has invalid characters or symbols. + INVALID_PLACEMENT_URL (int): Invalid placement URL. + INVALID_USER_LIST (int): Invalid user list criterion. + INVALID_USER_INTEREST (int): Invalid user interest criterion. + INVALID_FORMAT_FOR_PLACEMENT_URL (int): Placement URL has wrong format. + PLACEMENT_URL_IS_TOO_LONG (int): Placement URL is too long. + PLACEMENT_URL_HAS_ILLEGAL_CHAR (int): Indicates the URL contains an illegal character. + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE (int): Indicates the URL contains multiple comma separated URLs. + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION (int): Indicates the domain is blocked. + INVALID_TOPIC_PATH (int): Invalid topic path. + INVALID_YOUTUBE_CHANNEL_ID (int): The YouTube Channel Id is invalid. + INVALID_YOUTUBE_VIDEO_ID (int): The YouTube Video Id is invalid. + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED (int): Indicates the placement is a YouTube vertical channel, which is no longer + supported. + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED (int): Indicates the placement is a YouTube demographic channel, which is no + longer supported. + YOUTUBE_URL_UNSUPPORTED (int): YouTube urls are not supported in Placement criterion. Use YouTubeChannel + and YouTubeVideo criterion instead. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type can not be excluded by the customer, like AOL account type + cannot target site type criteria. + CANNOT_ADD_CRITERIA_TYPE (int): Criteria type can not be targeted. + CANNOT_EXCLUDE_SIMILAR_USER_LIST (int): Not allowed to exclude similar user list. + CANNOT_ADD_CLOSED_USER_LIST (int): Not allowed to target a closed user list. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS (int): Not allowed to add display only UserLists to search only campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS (int): Not allowed to add display only UserLists to search plus campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS (int): Not allowed to add display only UserLists to shopping campaigns. + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS (int): Not allowed to add User interests to search only campaigns. + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS (int): Not allowed to set bids for this criterion type in search campaigns + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE (int): Final URLs, URL Templates and CustomParameters cannot be set for the + criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and + MobileAppCategory in search campaigns and shopping campaigns. + INVALID_CUSTOM_AFFINITY (int): Invalid custom affinity criterion. + INVALID_CUSTOM_INTENT (int): Invalid custom intent criterion. + INVALID_IP_ADDRESS (int): IP address is not valid. + INVALID_IP_FORMAT (int): IP format is not valid. + INVALID_MOBILE_APP (int): Mobile application is not valid. + INVALID_MOBILE_APP_CATEGORY (int): Mobile application category is not valid. + INVALID_CRITERION_ID (int): The CriterionId does not exist or is of the incorrect type. + CANNOT_TARGET_CRITERION (int): The Criterion is not allowed to be targeted. + CANNOT_TARGET_OBSOLETE_CRITERION (int): The criterion is not allowed to be targeted as it is deprecated. + CRITERION_ID_AND_TYPE_MISMATCH (int): The CriterionId is not valid for the type. + INVALID_PROXIMITY_RADIUS (int): Distance for the radius for the proximity criterion is invalid. + INVALID_PROXIMITY_RADIUS_UNITS (int): Units for the distance for the radius for the proximity criterion is + invalid. + INVALID_STREETADDRESS_LENGTH (int): Street address in the address is not valid. + INVALID_CITYNAME_LENGTH (int): City name in the address is not valid. + INVALID_REGIONCODE_LENGTH (int): Region code in the address is not valid. + INVALID_REGIONNAME_LENGTH (int): Region name in the address is not valid. + INVALID_POSTALCODE_LENGTH (int): Postal code in the address is not valid. + INVALID_COUNTRY_CODE (int): Country code in the address is not valid. + INVALID_LATITUDE (int): Latitude for the GeoPoint is not valid. + INVALID_LONGITUDE (int): Longitude for the GeoPoint is not valid. + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL (int): The Proximity input is not valid. Both address and geoPoint cannot be + null. + INVALID_PROXIMITY_ADDRESS (int): The Proximity address cannot be geocoded to a valid lat/long. + INVALID_USER_DOMAIN_NAME (int): User domain name is not valid. + CRITERION_PARAMETER_TOO_LONG (int): Length of serialized criterion parameter exceeded size limit. + AD_SCHEDULE_TIME_INTERVALS_OVERLAP (int): Time interval in the AdSchedule overlaps with another AdSchedule. + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS (int): AdSchedule time interval cannot span multiple days. + AD_SCHEDULE_INVALID_TIME_INTERVAL (int): AdSchedule time interval specified is invalid, endTime cannot be earlier + than startTime. + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT (int): The number of AdSchedule entries in a day exceeds the limit. + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS (int): CriteriaId does not match the interval of the AdSchedule specified. + CANNOT_BID_MODIFY_CRITERION_TYPE (int): Cannot set bid modifier for this criterion type. + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT (int): Cannot bid modify criterion, since it is opted out of the campaign. + CANNOT_BID_MODIFY_NEGATIVE_CRITERION (int): Cannot set bid modifier for a negative criterion. + BID_MODIFIER_ALREADY_EXISTS (int): Bid Modifier already exists. Use SET operation to update. + FEED_ID_NOT_ALLOWED (int): Feed Id is not allowed in these Location Groups. + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE (int): The account may not use the requested criteria type. For example, some + accounts are restricted to keywords only. + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY (int): The requested criteria type cannot be used with campaign or ad group + bidding strategy. + CANNOT_EXCLUDE_CRITERION (int): The Criterion is not allowed to be excluded. + CANNOT_REMOVE_CRITERION (int): The criterion is not allowed to be removed. For example, we cannot remove + any of the device criterion. + INVALID_PRODUCT_BIDDING_CATEGORY (int): Bidding categories do not form a valid path in the Shopping bidding + category taxonomy. + MISSING_SHOPPING_SETTING (int): ShoppingSetting must be added to the campaign before ProductScope + criteria can be added. + INVALID_MATCHING_FUNCTION (int): Matching function is invalid. + LOCATION_FILTER_NOT_ALLOWED (int): Filter parameters not allowed for location groups targeting. + INVALID_FEED_FOR_LOCATION_FILTER (int): Feed not found, or the feed is not an enabled location feed. + LOCATION_FILTER_INVALID (int): Given location filter parameter is invalid for location groups targeting. + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP (int): Criteria type cannot be associated with a campaign and its ad group(s) + simultaneously. + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION (int): Range represented by hotel length of stay's min nights and max nights + overlaps with an existing criterion. + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION (int): Range represented by hotel advance booking window's min days and max days + overlaps with an existing criterion. + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING (int): The field is not allowed to be set when the negative field is set to + true, e.g. we don't allow bids in negative ad group or campaign criteria. + INVALID_WEBPAGE_CONDITION (int): The combination of operand and operator in webpage condition is invalid. + INVALID_WEBPAGE_CONDITION_URL (int): The URL of webpage condition is invalid. + WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY (int): The URL of webpage condition cannot be empty or contain white space. + WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL (int): The URL of webpage condition contains an unsupported protocol. + WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS (int): The URL of webpage condition cannot be an IP address. + WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING (int): The domain of the URL is not consistent with the domain in campaign + setting. + WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX (int): The URL of webpage condition cannot be a public suffix itself. + WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX (int): The URL of webpage condition has an invalid public suffix. + WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED (int): Value track parameter is not supported in webpage condition URL. + WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION (int): Only one URL-EQUALS webpage condition is allowed in a webpage + criterion and it cannot be combined with other conditions. + WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP (int): A webpage criterion cannot be added to a non-DSA ad group. + CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS (int): Cannot add positive user list criteria in Smart Display campaigns. + LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES (int): Listing scope contains too many dimension types. + LISTING_SCOPE_TOO_MANY_IN_OPERATORS (int): Listing scope has too many IN operators. + LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED (int): Listing scope contains IN operator on an unsupported dimension type. + DUPLICATE_LISTING_DIMENSION_TYPE (int): There are dimensions with duplicate dimension type. + DUPLICATE_LISTING_DIMENSION_VALUE (int): There are dimensions with duplicate dimension value. + CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION (int): Listing group SUBDIVISION nodes cannot have bids. + INVALID_LISTING_GROUP_HIERARCHY (int): Ad group is invalid due to the listing groups it contains. + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN (int): Listing group unit cannot have children. + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE (int): Subdivided listing groups must have an "others" case. + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS (int): Dimension type of listing group must be the same as that of its siblings. + LISTING_GROUP_ALREADY_EXISTS (int): Listing group cannot be added to the ad group because it already exists. + LISTING_GROUP_DOES_NOT_EXIST (int): Listing group referenced in the operation was not found in the ad group. + LISTING_GROUP_CANNOT_BE_REMOVED (int): Recursive removal failed because listing group subdivision is being + created or modified in this request. + INVALID_LISTING_GROUP_TYPE (int): Listing group type is not allowed for specified ad group criterion type. + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID (int): Listing group in an ADD operation specifies a non temporary criterion id. + LISTING_SCOPE_TOO_LONG (int): The combined length of dimension values of the Listing scope criterion + is too long. + LISTING_SCOPE_TOO_MANY_DIMENSIONS (int): Listing scope contains too many dimensions. + LISTING_GROUP_TOO_LONG (int): The combined length of dimension values of the Listing group criterion is + too long. + LISTING_GROUP_TREE_TOO_DEEP (int): Listing group tree is too deep. + INVALID_LISTING_DIMENSION (int): Listing dimension is invalid (e.g. dimension contains illegal value, + dimension type is represented with wrong class, etc). Listing dimension + value can not contain "==" or "&+". + INVALID_LISTING_DIMENSION_TYPE (int): Listing dimension type is either invalid for campaigns of this type or + cannot be used in the current context. BIDDING\_CATEGORY\_Lx and + PRODUCT\_TYPE\_Lx dimensions must be used in ascending order of their + levels: L1, L2, L3, L4, L5... The levels must be specified sequentially + and start from L1. Furthermore, an "others" Listing group cannot be + subdivided with a dimension of the same type but of a higher level + ("others" BIDDING\_CATEGORY\_L3 can be subdivided with BRAND but not + with BIDDING\_CATEGORY\_L4). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONCRETE_TYPE_REQUIRED = 2 + INVALID_EXCLUDED_CATEGORY = 3 + INVALID_KEYWORD_TEXT = 4 + KEYWORD_TEXT_TOO_LONG = 5 + KEYWORD_HAS_TOO_MANY_WORDS = 6 + KEYWORD_HAS_INVALID_CHARS = 7 + INVALID_PLACEMENT_URL = 8 + INVALID_USER_LIST = 9 + INVALID_USER_INTEREST = 10 + INVALID_FORMAT_FOR_PLACEMENT_URL = 11 + PLACEMENT_URL_IS_TOO_LONG = 12 + PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13 + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14 + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15 + INVALID_TOPIC_PATH = 16 + INVALID_YOUTUBE_CHANNEL_ID = 17 + INVALID_YOUTUBE_VIDEO_ID = 18 + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19 + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20 + YOUTUBE_URL_UNSUPPORTED = 21 + CANNOT_EXCLUDE_CRITERIA_TYPE = 22 + CANNOT_ADD_CRITERIA_TYPE = 23 + CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26 + CANNOT_ADD_CLOSED_USER_LIST = 27 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30 + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31 + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32 + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33 + INVALID_CUSTOM_AFFINITY = 96 + INVALID_CUSTOM_INTENT = 97 + INVALID_IP_ADDRESS = 34 + INVALID_IP_FORMAT = 35 + INVALID_MOBILE_APP = 36 + INVALID_MOBILE_APP_CATEGORY = 37 + INVALID_CRITERION_ID = 38 + CANNOT_TARGET_CRITERION = 39 + CANNOT_TARGET_OBSOLETE_CRITERION = 40 + CRITERION_ID_AND_TYPE_MISMATCH = 41 + INVALID_PROXIMITY_RADIUS = 42 + INVALID_PROXIMITY_RADIUS_UNITS = 43 + INVALID_STREETADDRESS_LENGTH = 44 + INVALID_CITYNAME_LENGTH = 45 + INVALID_REGIONCODE_LENGTH = 46 + INVALID_REGIONNAME_LENGTH = 47 + INVALID_POSTALCODE_LENGTH = 48 + INVALID_COUNTRY_CODE = 49 + INVALID_LATITUDE = 50 + INVALID_LONGITUDE = 51 + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52 + INVALID_PROXIMITY_ADDRESS = 53 + INVALID_USER_DOMAIN_NAME = 54 + CRITERION_PARAMETER_TOO_LONG = 55 + AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56 + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57 + AD_SCHEDULE_INVALID_TIME_INTERVAL = 58 + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59 + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60 + CANNOT_BID_MODIFY_CRITERION_TYPE = 61 + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62 + CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63 + BID_MODIFIER_ALREADY_EXISTS = 64 + FEED_ID_NOT_ALLOWED = 65 + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66 + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67 + CANNOT_EXCLUDE_CRITERION = 68 + CANNOT_REMOVE_CRITERION = 69 + INVALID_PRODUCT_BIDDING_CATEGORY = 76 + MISSING_SHOPPING_SETTING = 77 + INVALID_MATCHING_FUNCTION = 78 + LOCATION_FILTER_NOT_ALLOWED = 79 + INVALID_FEED_FOR_LOCATION_FILTER = 98 + LOCATION_FILTER_INVALID = 80 + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81 + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82 + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83 + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84 + INVALID_WEBPAGE_CONDITION = 85 + INVALID_WEBPAGE_CONDITION_URL = 86 + WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY = 87 + WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL = 88 + WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS = 89 + WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING = 90 + WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX = 91 + WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX = 92 + WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED = 93 + WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION = 94 + WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP = 95 + CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS = 99 + LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES = 100 + LISTING_SCOPE_TOO_MANY_IN_OPERATORS = 101 + LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED = 102 + DUPLICATE_LISTING_DIMENSION_TYPE = 103 + DUPLICATE_LISTING_DIMENSION_VALUE = 104 + CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION = 105 + INVALID_LISTING_GROUP_HIERARCHY = 106 + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 107 + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 108 + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 109 + LISTING_GROUP_ALREADY_EXISTS = 110 + LISTING_GROUP_DOES_NOT_EXIST = 111 + LISTING_GROUP_CANNOT_BE_REMOVED = 112 + INVALID_LISTING_GROUP_TYPE = 113 + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 114 + LISTING_SCOPE_TOO_LONG = 115 + LISTING_SCOPE_TOO_MANY_DIMENSIONS = 116 + LISTING_GROUP_TOO_LONG = 117 + LISTING_GROUP_TREE_TOO_DEEP = 118 + INVALID_LISTING_DIMENSION = 119 + INVALID_LISTING_DIMENSION_TYPE = 120 +''' +CriterionErrorEnum = CriterionErrorEnum() # For __getattribute__ + + +class CriterionSystemServingStatusEnum(_CreateEnumTypeUponFirstAccess): + CriterionSystemServingStatus = '''\ + class CriterionSystemServingStatus(enum.IntEnum): + """ + Enumerates criterion system serving statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + ELIGIBLE (int): Eligible. + RARELY_SERVED (int): Low search volume. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ELIGIBLE = 2 + RARELY_SERVED = 3 +''' +CriterionSystemServingStatusEnum = CriterionSystemServingStatusEnum() # For __getattribute__ + + +class CriterionTypeEnum(_CreateEnumTypeUponFirstAccess): + CriterionType = '''\ + class CriterionType(enum.IntEnum): + """ + Enum describing possible criterion types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + KEYWORD (int): Keyword. e.g. 'mars cruise'. + PLACEMENT (int): Placement, aka Website. e.g. 'www.flowers4sale.com' + MOBILE_APP_CATEGORY (int): Mobile application categories to target. + MOBILE_APPLICATION (int): Mobile applications to target. + DEVICE (int): Devices to target. + LOCATION (int): Locations to target. + LISTING_GROUP (int): Listing groups to target. + AD_SCHEDULE (int): Ad Schedule. + AGE_RANGE (int): Age range. + GENDER (int): Gender. + INCOME_RANGE (int): Income Range. + PARENTAL_STATUS (int): Parental status. + YOUTUBE_VIDEO (int): YouTube Video. + YOUTUBE_CHANNEL (int): YouTube Channel. + USER_LIST (int): User list. + PROXIMITY (int): Proximity. + TOPIC (int): A topic target on the display network (e.g. "Pets & Animals"). + LISTING_SCOPE (int): Listing scope to target. + LANGUAGE (int): Language. + IP_BLOCK (int): IpBlock. + CONTENT_LABEL (int): Content Label for category exclusion. + CARRIER (int): Carrier. + USER_INTEREST (int): A category the user is interested in. + WEBPAGE (int): Webpage criterion for dynamic search ads. + OPERATING_SYSTEM_VERSION (int): Operating system version. + APP_PAYMENT_MODEL (int): App payment model. + MOBILE_DEVICE (int): Mobile device. + CUSTOM_AFFINITY (int): Custom affinity. + CUSTOM_INTENT (int): Custom intent. + LOCATION_GROUP (int): Location group. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + KEYWORD = 2 + PLACEMENT = 3 + MOBILE_APP_CATEGORY = 4 + MOBILE_APPLICATION = 5 + DEVICE = 6 + LOCATION = 7 + LISTING_GROUP = 8 + AD_SCHEDULE = 9 + AGE_RANGE = 10 + GENDER = 11 + INCOME_RANGE = 12 + PARENTAL_STATUS = 13 + YOUTUBE_VIDEO = 14 + YOUTUBE_CHANNEL = 15 + USER_LIST = 16 + PROXIMITY = 17 + TOPIC = 18 + LISTING_SCOPE = 19 + LANGUAGE = 20 + IP_BLOCK = 21 + CONTENT_LABEL = 22 + CARRIER = 23 + USER_INTEREST = 24 + WEBPAGE = 25 + OPERATING_SYSTEM_VERSION = 26 + APP_PAYMENT_MODEL = 27 + MOBILE_DEVICE = 28 + CUSTOM_AFFINITY = 29 + CUSTOM_INTENT = 30 + LOCATION_GROUP = 31 +''' +CriterionTypeEnum = CriterionTypeEnum() # For __getattribute__ + + +class CurrencyCodeErrorEnum(_CreateEnumTypeUponFirstAccess): + CurrencyCodeError = '''\ + class CurrencyCodeError(enum.IntEnum): + """ + Enum describing possible currency code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + UNSUPPORTED (int): The currency code is not supported. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNSUPPORTED = 2 +''' +CurrencyCodeErrorEnum = CurrencyCodeErrorEnum() # For __getattribute__ + + +class CustomInterestErrorEnum(_CreateEnumTypeUponFirstAccess): + CustomInterestError = '''\ + class CustomInterestError(enum.IntEnum): + """ + Enum describing possible custom interest errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NAME_ALREADY_USED (int): Duplicate custom interest name ignoring case. + CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE (int): In the remove custom interest member operation, both member ID and pair + [type, parameter] are not present. + TYPE_AND_PARAMETER_NOT_FOUND (int): The pair of [type, parameter] does not exist. + TYPE_AND_PARAMETER_ALREADY_EXISTED (int): The pair of [type, parameter] already exists. + INVALID_CUSTOM_INTEREST_MEMBER_TYPE (int): Unsupported custom interest member type. + CANNOT_REMOVE_WHILE_IN_USE (int): Cannot remove a custom interest while it's still being targeted. + CANNOT_CHANGE_TYPE (int): Cannot mutate custom interest type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NAME_ALREADY_USED = 2 + CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE = 3 + TYPE_AND_PARAMETER_NOT_FOUND = 4 + TYPE_AND_PARAMETER_ALREADY_EXISTED = 5 + INVALID_CUSTOM_INTEREST_MEMBER_TYPE = 6 + CANNOT_REMOVE_WHILE_IN_USE = 7 + CANNOT_CHANGE_TYPE = 8 +''' +CustomInterestErrorEnum = CustomInterestErrorEnum() # For __getattribute__ + + +class CustomInterestMemberTypeEnum(_CreateEnumTypeUponFirstAccess): + CustomInterestMemberType = '''\ + class CustomInterestMemberType(enum.IntEnum): + """ + Enum containing possible custom interest member types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + KEYWORD (int): Custom interest member type KEYWORD. + URL (int): Custom interest member type URL. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + KEYWORD = 2 + URL = 3 +''' +CustomInterestMemberTypeEnum = CustomInterestMemberTypeEnum() # For __getattribute__ + + +class CustomInterestStatusEnum(_CreateEnumTypeUponFirstAccess): + CustomInterestStatus = '''\ + class CustomInterestStatus(enum.IntEnum): + """ + Enum containing possible custom interest types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Enabled status - custom interest is enabled and can be targeted to. + REMOVED (int): Removed status - custom interest is removed and cannot be used for + targeting. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +CustomInterestStatusEnum = CustomInterestStatusEnum() # For __getattribute__ + + +class CustomInterestTypeEnum(_CreateEnumTypeUponFirstAccess): + CustomInterestType = '''\ + class CustomInterestType(enum.IntEnum): + """ + Enum containing possible custom interest types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CUSTOM_AFFINITY (int): Allows brand advertisers to define custom affinity audience lists. + CUSTOM_INTENT (int): Allows advertisers to define custom intent audience lists. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CUSTOM_AFFINITY = 2 + CUSTOM_INTENT = 3 +''' +CustomInterestTypeEnum = CustomInterestTypeEnum() # For __getattribute__ + + +class CustomPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + CustomPlaceholderField = '''\ + class CustomPlaceholderField(enum.IntEnum): + """ + Possible values for Custom placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ID (int): Data Type: STRING. Required. Combination ID and ID2 must be unique per + offer. + ID2 (int): Data Type: STRING. Combination ID and ID2 must be unique per offer. + ITEM_TITLE (int): Data Type: STRING. Required. Main headline with product name to be shown + in dynamic ad. + ITEM_SUBTITLE (int): Data Type: STRING. Optional text to be shown in the image ad. + ITEM_DESCRIPTION (int): Data Type: STRING. Optional description of the product to be shown in the + ad. + ITEM_ADDRESS (int): Data Type: STRING. Full address of your offer or service, including + postal code. This will be used to identify the closest product to the + user when there are multiple offers in the feed that are relevant to the + user. + PRICE (int): Data Type: STRING. Price to be shown in the ad. + Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + SALE_PRICE (int): Data Type: STRING. Sale price to be shown in the ad. + Example: "80.00 USD" + FORMATTED_SALE_PRICE (int): Data Type: STRING. Formatted sale price to be shown in the ad. + Example: "On sale for $80.00", "$60 - $80" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. Highly recommended for + image ads. + ITEM_CATEGORY (int): Data Type: STRING. Used as a recommendation engine signal to serve items + in the same category. + FINAL_URLS (int): Data Type: URL\_LIST. Final URLs for the ad when using Upgraded URLs. + User will be redirected to these URLs when they click on an ad, or when + they click on a specific product for ads that have multiple products. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_IDS (int): Data Type: STRING\_LIST. List of recommended IDs to show together with + this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ID = 2 + ID2 = 3 + ITEM_TITLE = 4 + ITEM_SUBTITLE = 5 + ITEM_DESCRIPTION = 6 + ITEM_ADDRESS = 7 + PRICE = 8 + FORMATTED_PRICE = 9 + SALE_PRICE = 10 + FORMATTED_SALE_PRICE = 11 + IMAGE_URL = 12 + ITEM_CATEGORY = 13 + FINAL_URLS = 14 + FINAL_MOBILE_URLS = 15 + TRACKING_URL = 16 + CONTEXTUAL_KEYWORDS = 17 + ANDROID_APP_LINK = 18 + SIMILAR_IDS = 19 + IOS_APP_LINK = 20 + IOS_APP_STORE_ID = 21 +''' +CustomPlaceholderFieldEnum = CustomPlaceholderFieldEnum() # For __getattribute__ + + +class CustomerClientLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + CustomerClientLinkError = '''\ + class CustomerClientLinkError(enum.IntEnum): + """ + Enum describing possible CustomerClientLink errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CLIENT_ALREADY_INVITED_BY_THIS_MANAGER (int): Trying to manage a client that already in being managed by customer. + CLIENT_ALREADY_MANAGED_IN_HIERARCHY (int): Already managed by some other manager in the hierarchy. + CYCLIC_LINK_NOT_ALLOWED (int): Attempt to create a cycle in the hierarchy. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS (int): Managed accounts has the maximum number of linked accounts. + CLIENT_HAS_TOO_MANY_INVITATIONS (int): Invitor has the maximum pending invitations. + CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS (int): Attempt to change hidden status of a link that is not active. + CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER (int): Parent manager account has the maximum number of linked accounts. + CLIENT_HAS_TOO_MANY_MANAGERS (int): Client has too many managers. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CLIENT_ALREADY_INVITED_BY_THIS_MANAGER = 2 + CLIENT_ALREADY_MANAGED_IN_HIERARCHY = 3 + CYCLIC_LINK_NOT_ALLOWED = 4 + CUSTOMER_HAS_TOO_MANY_ACCOUNTS = 5 + CLIENT_HAS_TOO_MANY_INVITATIONS = 6 + CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS = 7 + CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER = 8 + CLIENT_HAS_TOO_MANY_MANAGERS = 9 +''' +CustomerClientLinkErrorEnum = CustomerClientLinkErrorEnum() # For __getattribute__ + + +class CustomerErrorEnum(_CreateEnumTypeUponFirstAccess): + CustomerError = '''\ + class CustomerError(enum.IntEnum): + """ + Set of errors that are related to requests dealing with Customer. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + STATUS_CHANGE_DISALLOWED (int): Customer status is not allowed to be changed from DRAFT and CLOSED. + Currency code and at least one of country code and time zone needs to be + set when status is changed to ENABLED. + ACCOUNT_NOT_SET_UP (int): CustomerService cannot get a customer that has not been fully set up. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STATUS_CHANGE_DISALLOWED = 2 + ACCOUNT_NOT_SET_UP = 3 +''' +CustomerErrorEnum = CustomerErrorEnum() # For __getattribute__ + + +class CustomerFeedErrorEnum(_CreateEnumTypeUponFirstAccess): + CustomerFeedError = '''\ + class CustomerFeedError(enum.IntEnum): + """ + Enum describing possible customer feed errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active feed already exists for this customer and place holder type. + CANNOT_CREATE_FOR_REMOVED_FEED (int): The specified feed is removed. + CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED (int): The CustomerFeed already exists. Update should be used to modify the + existing CustomerFeed. + CANNOT_MODIFY_REMOVED_CUSTOMER_FEED (int): Cannot update removed customer feed. + INVALID_PLACEHOLDER_TYPE (int): Invalid placeholder type. + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE (int): Feed mapping for this placeholder type does not exist. + PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED (int): Placeholder not allowed at the account level. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 2 + CANNOT_CREATE_FOR_REMOVED_FEED = 3 + CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED = 4 + CANNOT_MODIFY_REMOVED_CUSTOMER_FEED = 5 + INVALID_PLACEHOLDER_TYPE = 6 + MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE = 7 + PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED = 8 +''' +CustomerFeedErrorEnum = CustomerFeedErrorEnum() # For __getattribute__ + + +class CustomerManagerLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + CustomerManagerLinkError = '''\ + class CustomerManagerLinkError(enum.IntEnum): + """ + Enum describing possible CustomerManagerLink errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NO_PENDING_INVITE (int): No pending invitation. + SAME_CLIENT_MORE_THAN_ONCE_PER_CALL (int): Attempt to operate on the same client more than once in the same call. + MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS (int): Manager account has the maximum number of linked accounts. + CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER (int): If no active user on account it cannot be unlinked from its manager. + CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER (int): Account should have at least one active owner on it before being + unlinked. + CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER (int): Only account owners may change their permission role. + CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT (int): When a client's link to its manager is not active, the link role cannot + be changed. + DUPLICATE_CHILD_FOUND (int): Attempt to link a child to a parent that contains or will contain + duplicate children. + TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS (int): The authorized customer is a test account. It can add no more than the + allowed number of accounts + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NO_PENDING_INVITE = 2 + SAME_CLIENT_MORE_THAN_ONCE_PER_CALL = 3 + MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS = 4 + CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER = 5 + CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER = 6 + CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER = 7 + CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT = 8 + DUPLICATE_CHILD_FOUND = 9 + TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS = 10 +''' +CustomerManagerLinkErrorEnum = CustomerManagerLinkErrorEnum() # For __getattribute__ + + +class CustomerMatchUploadKeyTypeEnum(_CreateEnumTypeUponFirstAccess): + CustomerMatchUploadKeyType = '''\ + class CustomerMatchUploadKeyType(enum.IntEnum): + """ + Enum describing possible customer match upload key types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CONTACT_INFO (int): Members are matched from customer info such as email address, phone + number or physical address. + CRM_ID (int): Members are matched from a user id generated and assigned by the + advertiser. + MOBILE_ADVERTISING_ID (int): Members are matched from mobile advertising ids. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONTACT_INFO = 2 + CRM_ID = 3 + MOBILE_ADVERTISING_ID = 4 +''' +CustomerMatchUploadKeyTypeEnum = CustomerMatchUploadKeyTypeEnum() # For __getattribute__ + + +class CustomerPayPerConversionEligibilityFailureReasonEnum(_CreateEnumTypeUponFirstAccess): + CustomerPayPerConversionEligibilityFailureReason = '''\ + class CustomerPayPerConversionEligibilityFailureReason(enum.IntEnum): + """ + Enum describing possible reasons a customer is not eligible to use + PaymentMode.CONVERSIONS. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NOT_ENOUGH_CONVERSIONS (int): Customer does not have enough conversions. + CONVERSION_LAG_TOO_HIGH (int): Customer's conversion lag is too high. + HAS_CAMPAIGN_WITH_SHARED_BUDGET (int): Customer uses shared budgets. + HAS_UPLOAD_CLICKS_CONVERSION (int): Customer has conversions with ConversionActionType.UPLOAD\_CLICKS. + AVERAGE_DAILY_SPEND_TOO_HIGH (int): Customer's average daily spend is too high. + ANALYSIS_NOT_COMPLETE (int): Customer's eligibility has not yet been calculated by the Google Ads + backend. Check back soon. + OTHER (int): Customer is not eligible due to other reasons. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NOT_ENOUGH_CONVERSIONS = 2 + CONVERSION_LAG_TOO_HIGH = 3 + HAS_CAMPAIGN_WITH_SHARED_BUDGET = 4 + HAS_UPLOAD_CLICKS_CONVERSION = 5 + AVERAGE_DAILY_SPEND_TOO_HIGH = 6 + ANALYSIS_NOT_COMPLETE = 7 + OTHER = 8 +''' +CustomerPayPerConversionEligibilityFailureReasonEnum = CustomerPayPerConversionEligibilityFailureReasonEnum() # For __getattribute__ + + +class DataDrivenModelStatusEnum(_CreateEnumTypeUponFirstAccess): + DataDrivenModelStatus = '''\ + class DataDrivenModelStatus(enum.IntEnum): + """ + Enumerates data driven model statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AVAILABLE (int): The data driven model is available. + STALE (int): The data driven model is stale. It hasn't been updated for at least 7 + days. It is still being used, but will become expired if it does not get + updated for 30 days. + EXPIRED (int): The data driven model expired. It hasn't been updated for at least 30 + days and cannot be used. Most commonly this is because there hasn't been + the required number of events in a recent 30-day period. + NEVER_GENERATED (int): The data driven model has never been generated. Most commonly this is + because there has never been the required number of events in any 30-day + period. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AVAILABLE = 2 + STALE = 3 + EXPIRED = 4 + NEVER_GENERATED = 5 +''' +DataDrivenModelStatusEnum = DataDrivenModelStatusEnum() # For __getattribute__ + + +class DatabaseErrorEnum(_CreateEnumTypeUponFirstAccess): + DatabaseError = '''\ + class DatabaseError(enum.IntEnum): + """ + Enum describing possible database errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CONCURRENT_MODIFICATION (int): Multiple requests were attempting to modify the same resource at once. + Please retry the request. + DATA_CONSTRAINT_VIOLATION (int): The request conflicted with existing data. This error will usually be + replaced with a more specific error if the request is retried. + REQUEST_TOO_LARGE (int): The data written is too large. Please split the request into smaller + requests. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONCURRENT_MODIFICATION = 2 + DATA_CONSTRAINT_VIOLATION = 3 + REQUEST_TOO_LARGE = 4 +''' +DatabaseErrorEnum = DatabaseErrorEnum() # For __getattribute__ + + +class DateErrorEnum(_CreateEnumTypeUponFirstAccess): + DateError = '''\ + class DateError(enum.IntEnum): + """ + Enum describing possible date errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_FIELD_VALUES_IN_DATE (int): Given field values do not correspond to a valid date. + INVALID_FIELD_VALUES_IN_DATE_TIME (int): Given field values do not correspond to a valid date time. + INVALID_STRING_DATE (int): The string date's format should be yyyy-mm-dd. + INVALID_STRING_DATE_TIME_MICROS (int): The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss. + INVALID_STRING_DATE_TIME_SECONDS (int): The string date time's format should be yyyy-mm-dd hh:mm:ss. + INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET (int): The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm. + EARLIER_THAN_MINIMUM_DATE (int): Date is before allowed minimum. + LATER_THAN_MAXIMUM_DATE (int): Date is after allowed maximum. + DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE (int): Date range bounds are not in order. + DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL (int): Both dates in range are null. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_FIELD_VALUES_IN_DATE = 2 + INVALID_FIELD_VALUES_IN_DATE_TIME = 3 + INVALID_STRING_DATE = 4 + INVALID_STRING_DATE_TIME_MICROS = 6 + INVALID_STRING_DATE_TIME_SECONDS = 11 + INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET = 12 + EARLIER_THAN_MINIMUM_DATE = 7 + LATER_THAN_MAXIMUM_DATE = 8 + DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE = 9 + DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL = 10 +''' +DateErrorEnum = DateErrorEnum() # For __getattribute__ + + +class DateRangeErrorEnum(_CreateEnumTypeUponFirstAccess): + DateRangeError = '''\ + class DateRangeError(enum.IntEnum): + """ + Enum describing possible date range errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_DATE (int): Invalid date. + START_DATE_AFTER_END_DATE (int): The start date was after the end date. + CANNOT_SET_DATE_TO_PAST (int): Cannot set date to past time + AFTER_MAXIMUM_ALLOWABLE_DATE (int): A date was used that is past the system "last" date. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED (int): Trying to change start date on a resource that has started. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_DATE = 2 + START_DATE_AFTER_END_DATE = 3 + CANNOT_SET_DATE_TO_PAST = 4 + AFTER_MAXIMUM_ALLOWABLE_DATE = 5 + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6 +''' +DateRangeErrorEnum = DateRangeErrorEnum() # For __getattribute__ + + +class DayOfWeekEnum(_CreateEnumTypeUponFirstAccess): + DayOfWeek = '''\ + class DayOfWeek(enum.IntEnum): + """ + Enumerates days of the week, e.g., "Monday". + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + MONDAY (int): Monday. + TUESDAY (int): Tuesday. + WEDNESDAY (int): Wednesday. + THURSDAY (int): Thursday. + FRIDAY (int): Friday. + SATURDAY (int): Saturday. + SUNDAY (int): Sunday. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MONDAY = 2 + TUESDAY = 3 + WEDNESDAY = 4 + THURSDAY = 5 + FRIDAY = 6 + SATURDAY = 7 + SUNDAY = 8 +''' +DayOfWeekEnum = DayOfWeekEnum() # For __getattribute__ + + +class DeviceEnum(_CreateEnumTypeUponFirstAccess): + Device = '''\ + class Device(enum.IntEnum): + """ + Enumerates Google Ads devices available for targeting. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + MOBILE (int): Mobile devices with full browsers. + TABLET (int): Tablets with full browsers. + DESKTOP (int): Computers. + CONNECTED_TV (int): Smart TVs and game consoles. + OTHER (int): Other device types. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MOBILE = 2 + TABLET = 3 + DESKTOP = 4 + CONNECTED_TV = 6 + OTHER = 5 +''' +DeviceEnum = DeviceEnum() # For __getattribute__ + + +class DisplayAdFormatSettingEnum(_CreateEnumTypeUponFirstAccess): + DisplayAdFormatSetting = '''\ + class DisplayAdFormatSetting(enum.IntEnum): + """ + Enumerates display ad format settings. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + ALL_FORMATS (int): Text, image and native formats. + NON_NATIVE (int): Text and image formats. + NATIVE (int): Native format, i.e. the format rendering is controlled by the publisher + and not by Google. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ALL_FORMATS = 2 + NON_NATIVE = 3 + NATIVE = 4 +''' +DisplayAdFormatSettingEnum = DisplayAdFormatSettingEnum() # For __getattribute__ + + +class DisplayUploadProductTypeEnum(_CreateEnumTypeUponFirstAccess): + DisplayUploadProductType = '''\ + class DisplayUploadProductType(enum.IntEnum): + """ + Enumerates display upload product types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + HTML5_UPLOAD_AD (int): HTML5 upload ad. This product type requires the upload\_media\_bundle + field in DisplayUploadAdInfo to be set. + DYNAMIC_HTML5_EDUCATION_AD (int): Dynamic HTML5 education ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in an education campaign. + DYNAMIC_HTML5_FLIGHT_AD (int): Dynamic HTML5 flight ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a flight campaign. + DYNAMIC_HTML5_HOTEL_RENTAL_AD (int): Dynamic HTML5 hotel and rental ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a hotel campaign. + DYNAMIC_HTML5_JOB_AD (int): Dynamic HTML5 job ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a job campaign. + DYNAMIC_HTML5_LOCAL_AD (int): Dynamic HTML5 local ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a local campaign. + DYNAMIC_HTML5_REAL_ESTATE_AD (int): Dynamic HTML5 real estate ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a real estate campaign. + DYNAMIC_HTML5_CUSTOM_AD (int): Dynamic HTML5 custom ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a custom campaign. + DYNAMIC_HTML5_TRAVEL_AD (int): Dynamic HTML5 travel ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a travel campaign. + DYNAMIC_HTML5_HOTEL_AD (int): Dynamic HTML5 hotel ad. This product type requires the + upload\_media\_bundle field in DisplayUploadAdInfo to be set. Can only + be used in a hotel campaign. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HTML5_UPLOAD_AD = 2 + DYNAMIC_HTML5_EDUCATION_AD = 3 + DYNAMIC_HTML5_FLIGHT_AD = 4 + DYNAMIC_HTML5_HOTEL_RENTAL_AD = 5 + DYNAMIC_HTML5_JOB_AD = 6 + DYNAMIC_HTML5_LOCAL_AD = 7 + DYNAMIC_HTML5_REAL_ESTATE_AD = 8 + DYNAMIC_HTML5_CUSTOM_AD = 9 + DYNAMIC_HTML5_TRAVEL_AD = 10 + DYNAMIC_HTML5_HOTEL_AD = 11 +''' +DisplayUploadProductTypeEnum = DisplayUploadProductTypeEnum() # For __getattribute__ + + +class DistanceBucketEnum(_CreateEnumTypeUponFirstAccess): + DistanceBucket = '''\ + class DistanceBucket(enum.IntEnum): + """ + The distance bucket for a user’s distance from an advertiser’s location + extension. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + WITHIN_700M (int): User was within 700m of the location. + WITHIN_1KM (int): User was within 1KM of the location. + WITHIN_5KM (int): User was within 5KM of the location. + WITHIN_10KM (int): User was within 10KM of the location. + WITHIN_15KM (int): User was within 15KM of the location. + WITHIN_20KM (int): User was within 20KM of the location. + WITHIN_25KM (int): User was within 25KM of the location. + WITHIN_30KM (int): User was within 30KM of the location. + WITHIN_35KM (int): User was within 35KM of the location. + WITHIN_40KM (int): User was within 40KM of the location. + WITHIN_45KM (int): User was within 45KM of the location. + WITHIN_50KM (int): User was within 50KM of the location. + WITHIN_55KM (int): User was within 55KM of the location. + WITHIN_60KM (int): User was within 60KM of the location. + WITHIN_65KM (int): User was within 65KM of the location. + BEYOND_65KM (int): User was beyond 65KM of the location. + WITHIN_0_7MILES (int): User was within 0.7 miles of the location. + WITHIN_1MILE (int): User was within 1 mile of the location. + WITHIN_5MILES (int): User was within 5 miles of the location. + WITHIN_10MILES (int): User was within 10 miles of the location. + WITHIN_15MILES (int): User was within 15 miles of the location. + WITHIN_20MILES (int): User was within 20 miles of the location. + WITHIN_25MILES (int): User was within 25 miles of the location. + WITHIN_30MILES (int): User was within 30 miles of the location. + WITHIN_35MILES (int): User was within 35 miles of the location. + WITHIN_40MILES (int): User was within 40 miles of the location. + BEYOND_40MILES (int): User was beyond 40 miles of the location. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WITHIN_700M = 2 + WITHIN_1KM = 3 + WITHIN_5KM = 4 + WITHIN_10KM = 5 + WITHIN_15KM = 6 + WITHIN_20KM = 7 + WITHIN_25KM = 8 + WITHIN_30KM = 9 + WITHIN_35KM = 10 + WITHIN_40KM = 11 + WITHIN_45KM = 12 + WITHIN_50KM = 13 + WITHIN_55KM = 14 + WITHIN_60KM = 15 + WITHIN_65KM = 16 + BEYOND_65KM = 17 + WITHIN_0_7MILES = 18 + WITHIN_1MILE = 19 + WITHIN_5MILES = 20 + WITHIN_10MILES = 21 + WITHIN_15MILES = 22 + WITHIN_20MILES = 23 + WITHIN_25MILES = 24 + WITHIN_30MILES = 25 + WITHIN_35MILES = 26 + WITHIN_40MILES = 27 + BEYOND_40MILES = 28 +''' +DistanceBucketEnum = DistanceBucketEnum() # For __getattribute__ + + +class DistinctErrorEnum(_CreateEnumTypeUponFirstAccess): + DistinctError = '''\ + class DistinctError(enum.IntEnum): + """ + Enum describing possible distinct errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_ELEMENT (int): Duplicate element. + DUPLICATE_TYPE (int): Duplicate type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_ELEMENT = 2 + DUPLICATE_TYPE = 3 +''' +DistinctErrorEnum = DistinctErrorEnum() # For __getattribute__ + + +class DsaPageFeedCriterionFieldEnum(_CreateEnumTypeUponFirstAccess): + DsaPageFeedCriterionField = '''\ + class DsaPageFeedCriterionField(enum.IntEnum): + """ + Possible values for Dynamic Search Ad Page Feed criterion fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PAGE_URL (int): Data Type: URL or URL\_LIST. URL of the web page you want to target. + LABEL (int): Data Type: STRING\_LIST. The labels that will help you target ads within + your page feed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PAGE_URL = 2 + LABEL = 3 +''' +DsaPageFeedCriterionFieldEnum = DsaPageFeedCriterionFieldEnum() # For __getattribute__ + + +class EducationPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + EducationPlaceholderField = '''\ + class EducationPlaceholderField(enum.IntEnum): + """ + Possible values for Education placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PROGRAM_ID (int): Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID + must be unique per offer. + LOCATION_ID (int): Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be + unique per offer. + PROGRAM_NAME (int): Data Type: STRING. Required. Main headline with program name to be shown + in dynamic ad. + AREA_OF_STUDY (int): Data Type: STRING. Area of study that can be shown in dynamic ad. + PROGRAM_DESCRIPTION (int): Data Type: STRING. Description of program that can be shown in dynamic + ad. + SCHOOL_NAME (int): Data Type: STRING. Name of school that can be shown in dynamic ad. + ADDRESS (int): Data Type: STRING. Complete school address, including postal code. + THUMBNAIL_IMAGE_URL (int): Data Type: URL. Image to be displayed in ads. + ALTERNATIVE_THUMBNAIL_IMAGE_URL (int): Data Type: URL. Alternative hosted file of image to be used in the ad. + FINAL_URLS (int): Data Type: URL\_LIST. Required. Final URLs to be used in ad when using + Upgraded URLs; the more specific the better (e.g. the individual URL of + a specific program and its location). + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_PROGRAM_IDS (int): Data Type: STRING\_LIST. List of recommended program IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PROGRAM_ID = 2 + LOCATION_ID = 3 + PROGRAM_NAME = 4 + AREA_OF_STUDY = 5 + PROGRAM_DESCRIPTION = 6 + SCHOOL_NAME = 7 + ADDRESS = 8 + THUMBNAIL_IMAGE_URL = 9 + ALTERNATIVE_THUMBNAIL_IMAGE_URL = 10 + FINAL_URLS = 11 + FINAL_MOBILE_URLS = 12 + TRACKING_URL = 13 + CONTEXTUAL_KEYWORDS = 14 + ANDROID_APP_LINK = 15 + SIMILAR_PROGRAM_IDS = 16 + IOS_APP_LINK = 17 + IOS_APP_STORE_ID = 18 +''' +EducationPlaceholderFieldEnum = EducationPlaceholderFieldEnum() # For __getattribute__ + + +class EnumErrorEnum(_CreateEnumTypeUponFirstAccess): + EnumError = '''\ + class EnumError(enum.IntEnum): + """ + Enum describing possible enum errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ENUM_VALUE_NOT_PERMITTED (int): The enum value is not permitted. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENUM_VALUE_NOT_PERMITTED = 3 +''' +EnumErrorEnum = EnumErrorEnum() # For __getattribute__ + + +class ExtensionFeedItemErrorEnum(_CreateEnumTypeUponFirstAccess): + ExtensionFeedItemError = '''\ + class ExtensionFeedItemError(enum.IntEnum): + """ + Enum describing possible extension feed item errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + VALUE_OUT_OF_RANGE (int): Value is not within the accepted range. + URL_LIST_TOO_LONG (int): Url list is too long. + CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING (int): Cannot have a geo targeting restriction without having geo targeting. + CANNOT_SET_WITH_FINAL_URLS (int): Cannot simultaneously set sitelink field with final urls. + CANNOT_SET_WITHOUT_FINAL_URLS (int): Must set field with final urls. + INVALID_PHONE_NUMBER (int): Phone number for a call extension is invalid. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number for a call extension is not supported for the given country + code. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED (int): A carrier specific number in short format is not allowed for call + extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED (int): Premium rate numbers are not allowed for call extensions. + DISALLOWED_NUMBER_TYPE (int): Phone number type for a call extension is not allowed. + For example, personal number is not allowed for a call extension in + most regions. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT (int): Phone number for a call extension does not meet domestic format + requirements. + VANITY_PHONE_NUMBER_NOT_ALLOWED (int): Vanity phone numbers (i.e. those including letters) are not allowed for + call extensions. + INVALID_CALL_CONVERSION_ACTION (int): Call conversion action provided for a call extension is invalid. + CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING (int): For a call extension, the customer is not on the allow-list for call + tracking. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Call tracking is not supported for the given country for a call + extension. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED (int): Customer hasn't consented for call recording, which is required for + creating/updating call feed items. Please see + https://support.google.com/google-ads/answer/7412639. + INVALID_APP_ID (int): App id provided for an app extension is invalid. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET (int): Quotation marks present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET (int): Hyphen character present in the review text for a review extension. + REVIEW_EXTENSION_SOURCE_INELIGIBLE (int): A denylisted review source name or url was provided for a review + extension. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT (int): Review source name should not be found in the review text. + INCONSISTENT_CURRENCY_CODES (int): Inconsistent currency codes. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS (int): Price extension cannot have duplicated headers. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION (int): Price item cannot have duplicated header and description. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS (int): Price extension has too few items. + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS (int): Price extension has too many items. + UNSUPPORTED_VALUE (int): The input value is not currently supported. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE (int): The input value is not currently supported in the selected language of an + extension. + INVALID_DEVICE_PREFERENCE (int): Unknown or unsupported device preference. + INVALID_SCHEDULE_END (int): Invalid feed item schedule end time (i.e., endHour = 24 and endMinute != + 0). + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE (int): Date time zone does not match the account's time zone. + INVALID_SNIPPETS_HEADER (int): Invalid structured snippet header. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM (int): Cannot operate on removed feed item. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY (int): Phone number not supported when call tracking enabled for country. + CONFLICTING_CALL_CONVERSION_SETTINGS (int): Cannot set call\_conversion\_action while + call\_conversion\_tracking\_enabled is set to true. + EXTENSION_TYPE_MISMATCH (int): The type of the input extension feed item doesn't match the existing + extension feed item. + EXTENSION_SUBTYPE_REQUIRED (int): The oneof field extension i.e. subtype of extension feed item is + required. + EXTENSION_TYPE_UNSUPPORTED (int): The referenced feed item is not mapped to a supported extension type. + CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS (int): Cannot operate on a Feed with more than one active FeedMapping. + CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES (int): Cannot operate on a Feed that has key attributes. + INVALID_PRICE_FORMAT (int): Input price is not in a valid format. + PROMOTION_INVALID_TIME (int): The promotion time is invalid. + TOO_MANY_DECIMAL_PLACES_SPECIFIED (int): This field has too many decimal places specified. + CONCRETE_EXTENSION_TYPE_REQUIRED (int): Concrete sub type of ExtensionFeedItem is required for this operation. + SCHEDULE_END_NOT_AFTER_START (int): Feed item schedule end time must be after start time. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + VALUE_OUT_OF_RANGE = 2 + URL_LIST_TOO_LONG = 3 + CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING = 4 + CANNOT_SET_WITH_FINAL_URLS = 5 + CANNOT_SET_WITHOUT_FINAL_URLS = 6 + INVALID_PHONE_NUMBER = 7 + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 8 + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 9 + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 10 + DISALLOWED_NUMBER_TYPE = 11 + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 12 + VANITY_PHONE_NUMBER_NOT_ALLOWED = 13 + INVALID_CALL_CONVERSION_ACTION = 14 + CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING = 47 + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 16 + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 17 + INVALID_APP_ID = 18 + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 19 + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 20 + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 21 + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 22 + INCONSISTENT_CURRENCY_CODES = 23 + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 24 + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 25 + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 26 + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 27 + UNSUPPORTED_VALUE = 28 + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 29 + INVALID_DEVICE_PREFERENCE = 30 + INVALID_SCHEDULE_END = 31 + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 32 + INVALID_SNIPPETS_HEADER = 33 + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 34 + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 35 + CONFLICTING_CALL_CONVERSION_SETTINGS = 36 + EXTENSION_TYPE_MISMATCH = 37 + EXTENSION_SUBTYPE_REQUIRED = 38 + EXTENSION_TYPE_UNSUPPORTED = 39 + CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS = 40 + CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES = 41 + INVALID_PRICE_FORMAT = 42 + PROMOTION_INVALID_TIME = 43 + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 44 + CONCRETE_EXTENSION_TYPE_REQUIRED = 45 + SCHEDULE_END_NOT_AFTER_START = 46 +''' +ExtensionFeedItemErrorEnum = ExtensionFeedItemErrorEnum() # For __getattribute__ + + +class ExtensionSettingDeviceEnum(_CreateEnumTypeUponFirstAccess): + ExtensionSettingDevice = '''\ + class ExtensionSettingDevice(enum.IntEnum): + """ + Possible device types for an extension setting. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + MOBILE (int): Mobile. The extensions in the extension setting will only serve on + mobile devices. + DESKTOP (int): Desktop. The extensions in the extension setting will only serve on + desktop devices. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MOBILE = 2 + DESKTOP = 3 +''' +ExtensionSettingDeviceEnum = ExtensionSettingDeviceEnum() # For __getattribute__ + + +class ExtensionSettingErrorEnum(_CreateEnumTypeUponFirstAccess): + ExtensionSettingError = '''\ + class ExtensionSettingError(enum.IntEnum): + """ + Enum describing possible extension setting errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + EXTENSIONS_REQUIRED (int): A platform restriction was provided without input extensions or existing + extensions. + FEED_TYPE_EXTENSION_TYPE_MISMATCH (int): The provided feed type does not correspond to the provided extensions. + INVALID_FEED_TYPE (int): The provided feed type cannot be used. + INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING (int): The provided feed type cannot be used at the customer level. + CANNOT_CHANGE_FEED_ITEM_ON_CREATE (int): Cannot change a feed item field on a CREATE operation. + CANNOT_UPDATE_NEWLY_CREATED_EXTENSION (int): Cannot update an extension that is not already in this setting. + NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE (int): There is no existing AdGroupExtensionSetting for this type. + NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE (int): There is no existing CampaignExtensionSetting for this type. + NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE (int): There is no existing CustomerExtensionSetting for this type. + AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS (int): The AdGroupExtensionSetting already exists. UPDATE should be used to + modify the existing AdGroupExtensionSetting. + CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS (int): The CampaignExtensionSetting already exists. UPDATE should be used to + modify the existing CampaignExtensionSetting. + CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS (int): The CustomerExtensionSetting already exists. UPDATE should be used to + modify the existing CustomerExtensionSetting. + AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active ad group feed already exists for this place holder type. + CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active campaign feed already exists for this place holder type. + CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE (int): An active customer feed already exists for this place holder type. + VALUE_OUT_OF_RANGE (int): Value is not within the accepted range. + CANNOT_SET_FIELD_WITH_FINAL_URLS (int): Cannot simultaneously set specified field with final urls. + FINAL_URLS_NOT_SET (int): Must set field with final urls. + INVALID_PHONE_NUMBER (int): Phone number for a call extension is invalid. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number for a call extension is not supported for the given country + code. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED (int): A carrier specific number in short format is not allowed for call + extensions. + PREMIUM_RATE_NUMBER_NOT_ALLOWED (int): Premium rate numbers are not allowed for call extensions. + DISALLOWED_NUMBER_TYPE (int): Phone number type for a call extension is not allowed. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT (int): Phone number for a call extension does not meet domestic format + requirements. + VANITY_PHONE_NUMBER_NOT_ALLOWED (int): Vanity phone numbers (i.e. those including letters) are not allowed for + call extensions. + INVALID_COUNTRY_CODE (int): Country code provided for a call extension is invalid. + INVALID_CALL_CONVERSION_TYPE_ID (int): Call conversion type id provided for a call extension is invalid. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING (int): For a call extension, the customer is not on the allow-list for call + tracking. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Call tracking is not supported for the given country for a call + extension. + INVALID_APP_ID (int): App id provided for an app extension is invalid. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET (int): Quotation marks present in the review text for a review extension. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET (int): Hyphen character present in the review text for a review extension. + REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE (int): A blocked review source name or url was provided for a review + extension. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT (int): Review source name should not be found in the review text. + MISSING_FIELD (int): Field must be set. + INCONSISTENT_CURRENCY_CODES (int): Inconsistent currency codes. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS (int): Price extension cannot have duplicated headers. + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION (int): Price item cannot have duplicated header and description. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS (int): Price extension has too few items + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS (int): Price extension has too many items + UNSUPPORTED_VALUE (int): The input value is not currently supported. + INVALID_DEVICE_PREFERENCE (int): Unknown or unsupported device preference. + INVALID_SCHEDULE_END (int): Invalid feed item schedule end time (i.e., endHour = 24 and + endMinute != 0). + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE (int): Date time zone does not match the account's time zone. + OVERLAPPING_SCHEDULES_NOT_ALLOWED (int): Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not + allowed. + SCHEDULE_END_NOT_AFTER_START (int): Feed item schedule end time must be after start time. + TOO_MANY_SCHEDULES_PER_DAY (int): There are too many feed item schedules per day. + DUPLICATE_EXTENSION_FEED_ITEM_EDIT (int): Cannot edit the same extension feed item more than once in the same + request. + INVALID_SNIPPETS_HEADER (int): Invalid structured snippet header. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY (int): Phone number with call tracking enabled is not supported for the + specified country. + CAMPAIGN_TARGETING_MISMATCH (int): The targeted adgroup must belong to the targeted campaign. + CANNOT_OPERATE_ON_REMOVED_FEED (int): The feed used by the ExtensionSetting is removed and cannot be operated + on. Remove the ExtensionSetting to allow a new one to be created using + an active feed. + EXTENSION_TYPE_REQUIRED (int): The ExtensionFeedItem type is required for this operation. + INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION (int): The matching function that links the extension feed to the customer, + campaign, or ad group is not compatible with the ExtensionSetting + services. + START_DATE_AFTER_END_DATE (int): Start date must be before end date. + INVALID_PRICE_FORMAT (int): Input price is not in a valid format. + PROMOTION_INVALID_TIME (int): The promotion time is invalid. + PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT (int): Cannot set both percent discount and money discount fields. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT (int): Cannot set both promotion code and orders over amount fields. + TOO_MANY_DECIMAL_PLACES_SPECIFIED (int): This field has too many decimal places specified. + INVALID_LANGUAGE_CODE (int): The language code is not valid. + UNSUPPORTED_LANGUAGE (int): The language is not supported. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED (int): Customer hasn't consented for call recording, which is required for + adding/updating call extensions. Please see + https://support.google.com/google-ads/answer/7412639. + EXTENSION_SETTING_UPDATE_IS_A_NOOP (int): The UPDATE operation does not specify any fields other than the resource + name in the update mask. + DISALLOWED_TEXT (int): The extension contains text which has been prohibited on policy grounds. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXTENSIONS_REQUIRED = 2 + FEED_TYPE_EXTENSION_TYPE_MISMATCH = 3 + INVALID_FEED_TYPE = 4 + INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING = 5 + CANNOT_CHANGE_FEED_ITEM_ON_CREATE = 6 + CANNOT_UPDATE_NEWLY_CREATED_EXTENSION = 7 + NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE = 8 + NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE = 9 + NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE = 10 + AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS = 11 + CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS = 12 + CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS = 13 + AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 14 + CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 15 + CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE = 16 + VALUE_OUT_OF_RANGE = 17 + CANNOT_SET_FIELD_WITH_FINAL_URLS = 18 + FINAL_URLS_NOT_SET = 19 + INVALID_PHONE_NUMBER = 20 + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 21 + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 22 + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 23 + DISALLOWED_NUMBER_TYPE = 24 + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 25 + VANITY_PHONE_NUMBER_NOT_ALLOWED = 26 + INVALID_COUNTRY_CODE = 27 + INVALID_CALL_CONVERSION_TYPE_ID = 28 + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 69 + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 30 + INVALID_APP_ID = 31 + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 32 + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 33 + REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE = 34 + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 35 + MISSING_FIELD = 36 + INCONSISTENT_CURRENCY_CODES = 37 + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 38 + PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 39 + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 40 + PRICE_EXTENSION_HAS_TOO_MANY_ITEMS = 41 + UNSUPPORTED_VALUE = 42 + INVALID_DEVICE_PREFERENCE = 43 + INVALID_SCHEDULE_END = 45 + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 47 + OVERLAPPING_SCHEDULES_NOT_ALLOWED = 48 + SCHEDULE_END_NOT_AFTER_START = 49 + TOO_MANY_SCHEDULES_PER_DAY = 50 + DUPLICATE_EXTENSION_FEED_ITEM_EDIT = 51 + INVALID_SNIPPETS_HEADER = 52 + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 53 + CAMPAIGN_TARGETING_MISMATCH = 54 + CANNOT_OPERATE_ON_REMOVED_FEED = 55 + EXTENSION_TYPE_REQUIRED = 56 + INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION = 57 + START_DATE_AFTER_END_DATE = 58 + INVALID_PRICE_FORMAT = 59 + PROMOTION_INVALID_TIME = 60 + PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT = 61 + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 62 + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 63 + INVALID_LANGUAGE_CODE = 64 + UNSUPPORTED_LANGUAGE = 65 + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 66 + EXTENSION_SETTING_UPDATE_IS_A_NOOP = 67 + DISALLOWED_TEXT = 68 +''' +ExtensionSettingErrorEnum = ExtensionSettingErrorEnum() # For __getattribute__ + + +class ExtensionTypeEnum(_CreateEnumTypeUponFirstAccess): + ExtensionType = '''\ + class ExtensionType(enum.IntEnum): + """ + Possible data types for an extension in an extension setting. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NONE (int): None. + APP (int): App. + CALL (int): Call. + CALLOUT (int): Callout. + MESSAGE (int): Message. + PRICE (int): Price. + PROMOTION (int): Promotion. + SITELINK (int): Sitelink. + STRUCTURED_SNIPPET (int): Structured snippet. + LOCATION (int): Location. + AFFILIATE_LOCATION (int): Affiliate location. + HOTEL_CALLOUT (int): Hotel callout + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NONE = 2 + APP = 3 + CALL = 4 + CALLOUT = 5 + MESSAGE = 6 + PRICE = 7 + PROMOTION = 8 + SITELINK = 10 + STRUCTURED_SNIPPET = 11 + LOCATION = 12 + AFFILIATE_LOCATION = 13 + HOTEL_CALLOUT = 15 +''' +ExtensionTypeEnum = ExtensionTypeEnum() # For __getattribute__ + + +class ExternalConversionSourceEnum(_CreateEnumTypeUponFirstAccess): + ExternalConversionSource = '''\ + class ExternalConversionSource(enum.IntEnum): + """ + The external conversion source that is associated with a ConversionAction. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Represents value unknown in this version. + WEBPAGE (int): Conversion that occurs when a user navigates to a particular webpage + after viewing an ad; Displayed in Google Ads UI as 'Website'. + ANALYTICS (int): Conversion that comes from linked Google Analytics goal or transaction; + Displayed in Google Ads UI as 'Analytics'. + UPLOAD (int): Website conversion that is uploaded through ConversionUploadService; + Displayed in Google Ads UI as 'Import from clicks'. + AD_CALL_METRICS (int): Conversion that occurs when a user clicks on a call extension directly on + an ad; Displayed in Google Ads UI as 'Calls from ads'. + WEBSITE_CALL_METRICS (int): Conversion that occurs when a user calls a dynamically-generated phone + number (by installed javascript) from an advertiser's website after + clicking on an ad; Displayed in Google Ads UI as 'Calls from website'. + STORE_VISITS (int): Conversion that occurs when a user visits an advertiser's retail store + after clicking on a Google ad; + Displayed in Google Ads UI as 'Store visits'. + ANDROID_IN_APP (int): Conversion that occurs when a user takes an in-app action such as a + purchase in an Android app; + Displayed in Google Ads UI as 'Android in-app action'. + IOS_IN_APP (int): Conversion that occurs when a user takes an in-app action such as a + purchase in an iOS app; + Displayed in Google Ads UI as 'iOS in-app action'. + IOS_FIRST_OPEN (int): Conversion that occurs when a user opens an iOS app for the first time; + Displayed in Google Ads UI as 'iOS app install (first open)'. + APP_UNSPECIFIED (int): Legacy app conversions that do not have an AppPlatform provided; + Displayed in Google Ads UI as 'Mobile app'. + ANDROID_FIRST_OPEN (int): Conversion that occurs when a user opens an Android app for the first + time; Displayed in Google Ads UI as 'Android app install (first open)'. + UPLOAD_CALLS (int): Call conversion that is uploaded through ConversionUploadService; + Displayed in Google Ads UI as 'Import from calls'. + FIREBASE (int): Conversion that comes from a linked Firebase event; + Displayed in Google Ads UI as 'Firebase'. + CLICK_TO_CALL (int): Conversion that occurs when a user clicks on a mobile phone number; + Displayed in Google Ads UI as 'Phone number clicks'. + SALESFORCE (int): Conversion that comes from Salesforce; + Displayed in Google Ads UI as 'Salesforce.com'. + STORE_SALES_CRM (int): Conversion that comes from in-store purchases recorded by CRM; + Displayed in Google Ads UI as 'Store sales (data partner)'. + STORE_SALES_PAYMENT_NETWORK (int): Conversion that comes from in-store purchases from payment network; + Displayed in Google Ads UI as 'Store sales (payment network)'. + GOOGLE_PLAY (int): Codeless Google Play conversion; + Displayed in Google Ads UI as 'Google Play'. + THIRD_PARTY_APP_ANALYTICS (int): Conversion that comes from a linked third-party app analytics event; + Displayed in Google Ads UI as 'Third-party app analytics'. + GOOGLE_ATTRIBUTION (int): Conversion that is controlled by Google Attribution. + STORE_SALES_DIRECT_UPLOAD (int): Store Sales conversion based on first-party or third-party merchant data + uploads. Displayed in Google Ads UI as 'Store sales (direct upload)'. + STORE_SALES (int): Store Sales conversion based on first-party or third-party merchant + data uploads and/or from in-store purchases using cards from payment + networks. Displayed in Google Ads UI as 'Store sales'. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WEBPAGE = 2 + ANALYTICS = 3 + UPLOAD = 4 + AD_CALL_METRICS = 5 + WEBSITE_CALL_METRICS = 6 + STORE_VISITS = 7 + ANDROID_IN_APP = 8 + IOS_IN_APP = 9 + IOS_FIRST_OPEN = 10 + APP_UNSPECIFIED = 11 + ANDROID_FIRST_OPEN = 12 + UPLOAD_CALLS = 13 + FIREBASE = 14 + CLICK_TO_CALL = 15 + SALESFORCE = 16 + STORE_SALES_CRM = 17 + STORE_SALES_PAYMENT_NETWORK = 18 + GOOGLE_PLAY = 19 + THIRD_PARTY_APP_ANALYTICS = 20 + GOOGLE_ATTRIBUTION = 21 + STORE_SALES_DIRECT_UPLOAD = 23 + STORE_SALES = 24 +''' +ExternalConversionSourceEnum = ExternalConversionSourceEnum() # For __getattribute__ + + +class FeedAttributeOperation(_CreateEnumTypeUponFirstAccess): + Operator = '''\ + class Operator(enum.IntEnum): + """ + The operator. + + Attributes: + UNSPECIFIED (int): Unspecified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADD (int): Add the attribute to the existing attributes. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADD = 2 +''' +FeedAttributeOperation = FeedAttributeOperation() # For __getattribute__ + + +class FeedAttributeReferenceErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedAttributeReferenceError = '''\ + class FeedAttributeReferenceError(enum.IntEnum): + """ + Enum describing possible feed attribute reference errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_REFERENCE_REMOVED_FEED (int): A feed referenced by ID has been removed. + INVALID_FEED_NAME (int): There is no enabled feed with the given name. + INVALID_FEED_ATTRIBUTE_NAME (int): There is no feed attribute in an enabled feed with the given name. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_REFERENCE_REMOVED_FEED = 2 + INVALID_FEED_NAME = 3 + INVALID_FEED_ATTRIBUTE_NAME = 4 +''' +FeedAttributeReferenceErrorEnum = FeedAttributeReferenceErrorEnum() # For __getattribute__ + + +class FeedAttributeTypeEnum(_CreateEnumTypeUponFirstAccess): + FeedAttributeType = '''\ + class FeedAttributeType(enum.IntEnum): + """ + Possible data types for a feed attribute. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INT64 (int): Int64. + DOUBLE (int): Double. + STRING (int): String. + BOOLEAN (int): Boolean. + URL (int): Url. + DATE_TIME (int): Datetime. + INT64_LIST (int): Int64 list. + DOUBLE_LIST (int): Double (8 bytes) list. + STRING_LIST (int): String list. + BOOLEAN_LIST (int): Boolean list. + URL_LIST (int): Url list. + DATE_TIME_LIST (int): Datetime list. + PRICE (int): Price. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INT64 = 2 + DOUBLE = 3 + STRING = 4 + BOOLEAN = 5 + URL = 6 + DATE_TIME = 7 + INT64_LIST = 8 + DOUBLE_LIST = 9 + STRING_LIST = 10 + BOOLEAN_LIST = 11 + URL_LIST = 12 + DATE_TIME_LIST = 13 + PRICE = 14 +''' +FeedAttributeTypeEnum = FeedAttributeTypeEnum() # For __getattribute__ + + +class FeedErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedError = '''\ + class FeedError(enum.IntEnum): + """ + Enum describing possible feed errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ATTRIBUTE_NAMES_NOT_UNIQUE (int): The names of the FeedAttributes must be unique. + ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES (int): The attribute list must be an exact copy of the existing list if the + attribute ID's are present. + CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED (int): Cannot specify USER origin for a system generated feed. + CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED (int): Cannot specify GOOGLE origin for a non-system generated feed. + CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED (int): Cannot specify feed attributes for system feed. + CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE (int): Cannot update FeedAttributes on feed with origin GOOGLE. + FEED_REMOVED (int): The given ID refers to a removed Feed. Removed Feeds are immutable. + INVALID_ORIGIN_VALUE (int): The origin of the feed is not valid for the client. + FEED_ORIGIN_IS_NOT_USER (int): A user can only create and modify feeds with USER origin. + INVALID_AUTH_TOKEN_FOR_EMAIL (int): Invalid auth token for the given email. + INVALID_EMAIL (int): Invalid email specified. + DUPLICATE_FEED_NAME (int): Feed name matches that of another active Feed. + INVALID_FEED_NAME (int): Name of feed is not allowed. + MISSING_OAUTH_INFO (int): Missing OAuthInfo. + NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY (int): New FeedAttributes must not affect the unique key. + TOO_MANY_ATTRIBUTES (int): Too many FeedAttributes for a Feed. + INVALID_BUSINESS_ACCOUNT (int): The business account is not valid. + BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT (int): Business account cannot access Google My Business account. + INVALID_AFFILIATE_CHAIN_ID (int): Invalid chain ID provided for affiliate location feed. + DUPLICATE_SYSTEM_FEED (int): There is already a feed with the given system feed generation data. + GMB_ACCESS_ERROR (int): An error occurred accessing GMB account. + CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS (int): A customer cannot have both LOCATION and AFFILIATE\_LOCATION feeds. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ATTRIBUTE_NAMES_NOT_UNIQUE = 2 + ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES = 3 + CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED = 4 + CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED = 5 + CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED = 6 + CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE = 7 + FEED_REMOVED = 8 + INVALID_ORIGIN_VALUE = 9 + FEED_ORIGIN_IS_NOT_USER = 10 + INVALID_AUTH_TOKEN_FOR_EMAIL = 11 + INVALID_EMAIL = 12 + DUPLICATE_FEED_NAME = 13 + INVALID_FEED_NAME = 14 + MISSING_OAUTH_INFO = 15 + NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY = 16 + TOO_MANY_ATTRIBUTES = 17 + INVALID_BUSINESS_ACCOUNT = 18 + BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT = 19 + INVALID_AFFILIATE_CHAIN_ID = 20 + DUPLICATE_SYSTEM_FEED = 21 + GMB_ACCESS_ERROR = 22 + CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS = 23 +''' +FeedErrorEnum = FeedErrorEnum() # For __getattribute__ + + +class FeedItemErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedItemError = '''\ + class FeedItemError(enum.IntEnum): + """ + Enum describing possible feed item errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING (int): Cannot convert the feed attribute value from string to its real type. + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM (int): Cannot operate on removed feed item. + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE (int): Date time zone does not match the account's time zone. + KEY_ATTRIBUTES_NOT_FOUND (int): Feed item with the key attributes could not be found. + INVALID_URL (int): Url feed attribute value is not valid. + MISSING_KEY_ATTRIBUTES (int): Some key attributes are missing. + KEY_ATTRIBUTES_NOT_UNIQUE (int): Feed item has same key attributes as another feed item. + CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE (int): Cannot modify key attributes on an existing feed item. + SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE (int): The feed attribute value is too large. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING = 2 + CANNOT_OPERATE_ON_REMOVED_FEED_ITEM = 3 + DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE = 4 + KEY_ATTRIBUTES_NOT_FOUND = 5 + INVALID_URL = 6 + MISSING_KEY_ATTRIBUTES = 7 + KEY_ATTRIBUTES_NOT_UNIQUE = 8 + CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE = 9 + SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE = 10 +''' +FeedItemErrorEnum = FeedItemErrorEnum() # For __getattribute__ + + +class FeedItemQualityApprovalStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedItemQualityApprovalStatus = '''\ + class FeedItemQualityApprovalStatus(enum.IntEnum): + """ + The possible quality evaluation approval statuses of a feed item. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + APPROVED (int): Meets all quality expectations. + DISAPPROVED (int): Does not meet some quality expectations. The specific reason is found in + the quality\_disapproval\_reasons field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPROVED = 2 + DISAPPROVED = 3 +''' +FeedItemQualityApprovalStatusEnum = FeedItemQualityApprovalStatusEnum() # For __getattribute__ + + +class FeedItemQualityDisapprovalReasonEnum(_CreateEnumTypeUponFirstAccess): + FeedItemQualityDisapprovalReason = '''\ + class FeedItemQualityDisapprovalReason(enum.IntEnum): + """ + The possible quality evaluation disapproval reasons of a feed item. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PRICE_TABLE_REPETITIVE_HEADERS (int): Price contains repetitive headers. + PRICE_TABLE_REPETITIVE_DESCRIPTION (int): Price contains repetitive description. + PRICE_TABLE_INCONSISTENT_ROWS (int): Price contains inconsistent items. + PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS (int): Price contains qualifiers in description. + PRICE_UNSUPPORTED_LANGUAGE (int): Price contains an unsupported language. + PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH (int): Price item header is not relevant to the price type. + PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT (int): Price item header has promotional text. + PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT (int): Price item description is not relevant to the item header. + PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT (int): Price item description contains promotional text. + PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE (int): Price item header and description are repetitive. + PRICE_TABLE_ROW_UNRATEABLE (int): Price item is in a foreign language, nonsense, or can't be rated. + PRICE_TABLE_ROW_PRICE_INVALID (int): Price item price is invalid or inaccurate. + PRICE_TABLE_ROW_URL_INVALID (int): Price item URL is invalid or irrelevant. + PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE (int): Price item header or description has price. + STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED (int): Structured snippet values do not match the header. + STRUCTURED_SNIPPETS_REPEATED_VALUES (int): Structured snippet values are repeated. + STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES (int): Structured snippet values violate editorial guidelines like punctuation. + STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT (int): Structured snippet contain promotional text. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PRICE_TABLE_REPETITIVE_HEADERS = 2 + PRICE_TABLE_REPETITIVE_DESCRIPTION = 3 + PRICE_TABLE_INCONSISTENT_ROWS = 4 + PRICE_DESCRIPTION_HAS_PRICE_QUALIFIERS = 5 + PRICE_UNSUPPORTED_LANGUAGE = 6 + PRICE_TABLE_ROW_HEADER_TABLE_TYPE_MISMATCH = 7 + PRICE_TABLE_ROW_HEADER_HAS_PROMOTIONAL_TEXT = 8 + PRICE_TABLE_ROW_DESCRIPTION_NOT_RELEVANT = 9 + PRICE_TABLE_ROW_DESCRIPTION_HAS_PROMOTIONAL_TEXT = 10 + PRICE_TABLE_ROW_HEADER_DESCRIPTION_REPETITIVE = 11 + PRICE_TABLE_ROW_UNRATEABLE = 12 + PRICE_TABLE_ROW_PRICE_INVALID = 13 + PRICE_TABLE_ROW_URL_INVALID = 14 + PRICE_HEADER_OR_DESCRIPTION_HAS_PRICE = 15 + STRUCTURED_SNIPPETS_HEADER_POLICY_VIOLATED = 16 + STRUCTURED_SNIPPETS_REPEATED_VALUES = 17 + STRUCTURED_SNIPPETS_EDITORIAL_GUIDELINES = 18 + STRUCTURED_SNIPPETS_HAS_PROMOTIONAL_TEXT = 19 +''' +FeedItemQualityDisapprovalReasonEnum = FeedItemQualityDisapprovalReasonEnum() # For __getattribute__ + + +class FeedItemStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedItemStatus = '''\ + class FeedItemStatus(enum.IntEnum): + """ + Possible statuses of a feed item. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Feed item is enabled. + REMOVED (int): Feed item has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +FeedItemStatusEnum = FeedItemStatusEnum() # For __getattribute__ + + +class FeedItemTargetDeviceEnum(_CreateEnumTypeUponFirstAccess): + FeedItemTargetDevice = '''\ + class FeedItemTargetDevice(enum.IntEnum): + """ + Possible data types for a feed item target device. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + MOBILE (int): Mobile. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MOBILE = 2 +''' +FeedItemTargetDeviceEnum = FeedItemTargetDeviceEnum() # For __getattribute__ + + +class FeedItemTargetErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedItemTargetError = '''\ + class FeedItemTargetError(enum.IntEnum): + """ + Enum describing possible feed item target errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + MUST_SET_TARGET_ONEOF_ON_CREATE (int): On CREATE, the FeedItemTarget must have a populated field in the oneof + target. + FEED_ITEM_TARGET_ALREADY_EXISTS (int): The specified feed item target already exists, so it cannot be added. + FEED_ITEM_SCHEDULES_CANNOT_OVERLAP (int): The schedules for a given feed item cannot overlap. + TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE (int): Too many targets of a given type were added for a single feed item. + TOO_MANY_SCHEDULES_PER_DAY (int): Too many AdSchedules are enabled for the feed item for the given day. + CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS (int): A feed item may either have an enabled campaign target or an enabled ad + group target. + DUPLICATE_AD_SCHEDULE (int): Duplicate ad schedules aren't allowed. + DUPLICATE_KEYWORD (int): Duplicate keywords aren't allowed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MUST_SET_TARGET_ONEOF_ON_CREATE = 2 + FEED_ITEM_TARGET_ALREADY_EXISTS = 3 + FEED_ITEM_SCHEDULES_CANNOT_OVERLAP = 4 + TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE = 5 + TOO_MANY_SCHEDULES_PER_DAY = 6 + CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS = 7 + DUPLICATE_AD_SCHEDULE = 8 + DUPLICATE_KEYWORD = 9 +''' +FeedItemTargetErrorEnum = FeedItemTargetErrorEnum() # For __getattribute__ + + +class FeedItemTargetStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedItemTargetStatus = '''\ + class FeedItemTargetStatus(enum.IntEnum): + """ + Possible statuses of a feed item target. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Feed item target is enabled. + REMOVED (int): Feed item target has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +FeedItemTargetStatusEnum = FeedItemTargetStatusEnum() # For __getattribute__ + + +class FeedItemTargetTypeEnum(_CreateEnumTypeUponFirstAccess): + FeedItemTargetType = '''\ + class FeedItemTargetType(enum.IntEnum): + """ + Possible type of a feed item target. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CAMPAIGN (int): Feed item targets a campaign. + AD_GROUP (int): Feed item targets an ad group. + CRITERION (int): Feed item targets a criterion. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN = 2 + AD_GROUP = 3 + CRITERION = 4 +''' +FeedItemTargetTypeEnum = FeedItemTargetTypeEnum() # For __getattribute__ + + +class FeedItemValidationErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedItemValidationError = '''\ + class FeedItemValidationError(enum.IntEnum): + """ + The possible validation errors of a feed item. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STRING_TOO_SHORT (int): String is too short. + STRING_TOO_LONG (int): String is too long. + VALUE_NOT_SPECIFIED (int): Value is not provided. + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT (int): Phone number format is invalid for region. + INVALID_PHONE_NUMBER (int): String does not represent a phone number. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number format is not compatible with country code. + PREMIUM_RATE_NUMBER_NOT_ALLOWED (int): Premium rate number is not allowed. + DISALLOWED_NUMBER_TYPE (int): Phone number type is not allowed. + VALUE_OUT_OF_RANGE (int): Specified value is outside of the valid range. + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Call tracking is not supported in the selected country. + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING (int): Customer is not on the allow-list for call tracking. + INVALID_COUNTRY_CODE (int): Country code is invalid. + INVALID_APP_ID (int): The specified mobile app id is invalid. + MISSING_ATTRIBUTES_FOR_FIELDS (int): Some required field attributes are missing. + INVALID_TYPE_ID (int): Invalid email button type for email extension. + INVALID_EMAIL_ADDRESS (int): Email address is invalid. + INVALID_HTTPS_URL (int): The HTTPS URL in email extension is invalid. + MISSING_DELIVERY_ADDRESS (int): Delivery address is missing from email extension. + START_DATE_AFTER_END_DATE (int): FeedItem scheduling start date comes after end date. + MISSING_FEED_ITEM_START_TIME (int): FeedItem scheduling start time is missing. + MISSING_FEED_ITEM_END_TIME (int): FeedItem scheduling end time is missing. + MISSING_FEED_ITEM_ID (int): Cannot compute system attributes on a FeedItem that has no FeedItemId. + VANITY_PHONE_NUMBER_NOT_ALLOWED (int): Call extension vanity phone numbers are not supported. + INVALID_REVIEW_EXTENSION_SNIPPET (int): Invalid review text. + INVALID_NUMBER_FORMAT (int): Invalid format for numeric value in ad parameter. + INVALID_DATE_FORMAT (int): Invalid format for date value in ad parameter. + INVALID_PRICE_FORMAT (int): Invalid format for price value in ad parameter. + UNKNOWN_PLACEHOLDER_FIELD (int): Unrecognized type given for value in ad parameter. + MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE (int): Enhanced sitelinks must have both description lines specified. + REVIEW_EXTENSION_SOURCE_INELIGIBLE (int): Review source is ineligible. + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET (int): Review text cannot contain hyphens or dashes. + DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET (int): Review text cannot contain double quote characters. + QUOTES_IN_REVIEW_EXTENSION_SNIPPET (int): Review text cannot contain quote characters. + INVALID_FORM_ENCODED_PARAMS (int): Parameters are encoded in the wrong format. + INVALID_URL_PARAMETER_NAME (int): URL parameter name must contain only letters, numbers, underscores, and + dashes. + NO_GEOCODING_RESULT (int): Cannot find address location. + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT (int): Review extension text has source name. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED (int): Some phone numbers can be shorter than usual. Some of these short numbers + are carrier-specific, and we disallow those in ad extensions because they + will not be available to all users. + INVALID_PLACEHOLDER_FIELD_ID (int): Triggered when a request references a placeholder field id that does not + exist. + INVALID_URL_TAG (int): URL contains invalid ValueTrack tags or format. + LIST_TOO_LONG (int): Provided list exceeds acceptable size. + INVALID_ATTRIBUTES_COMBINATION (int): Certain combinations of attributes aren't allowed to be specified in the + same feed item. + DUPLICATE_VALUES (int): An attribute has the same value repeatedly. + INVALID_CALL_CONVERSION_ACTION_ID (int): Advertisers can link a conversion action with a phone number to indicate + that sufficiently long calls forwarded to that phone number should be + counted as conversions of the specified type. This is an error message + indicating that the conversion action specified is invalid (e.g., the + conversion action does not exist within the appropriate Google Ads + account, or it is a type of conversion not appropriate to phone call + conversions). + CANNOT_SET_WITHOUT_FINAL_URLS (int): Tracking template requires final url to be set. + APP_ID_DOESNT_EXIST_IN_APP_STORE (int): An app id was provided that doesn't exist in the given app store. + INVALID_FINAL_URL (int): Invalid U2 final url. + INVALID_TRACKING_URL (int): Invalid U2 tracking url. + INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL (int): Final URL should start from App download URL. + LIST_TOO_SHORT (int): List provided is too short. + INVALID_USER_ACTION (int): User Action field has invalid value. + INVALID_TYPE_NAME (int): Type field has invalid value. + INVALID_EVENT_CHANGE_STATUS (int): Change status for event is invalid. + INVALID_SNIPPETS_HEADER (int): The header of a structured snippets extension is not one of the valid + headers. + INVALID_ANDROID_APP_LINK (int): Android app link is not formatted correctly + NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number incompatible with call tracking for country. + RESERVED_KEYWORD_OTHER (int): The input is identical to a reserved keyword + DUPLICATE_OPTION_LABELS (int): Each option label in the message extension must be unique. + DUPLICATE_OPTION_PREFILLS (int): Each option prefill in the message extension must be unique. + UNEQUAL_LIST_LENGTHS (int): In message extensions, the number of optional labels and optional + prefills must be the same. + INCONSISTENT_CURRENCY_CODES (int): All currency codes in an ad extension must be the same. + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS (int): Headers in price extension are not unique. + ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION (int): Header and description in an item are the same. + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS (int): Price extension has too few items. + UNSUPPORTED_VALUE (int): The given value is not supported. + INVALID_FINAL_MOBILE_URL (int): Invalid final mobile url. + INVALID_KEYWORDLESS_AD_RULE_LABEL (int): The given string value of Label contains invalid characters + VALUE_TRACK_PARAMETER_NOT_SUPPORTED (int): The given URL contains value track parameters. + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE (int): The given value is not supported in the selected language of an + extension. + INVALID_IOS_APP_LINK (int): The iOS app link is not formatted correctly. + MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID (int): iOS app link or iOS app store id is missing. + PROMOTION_INVALID_TIME (int): Promotion time is invalid. + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF (int): Both the percent off and money amount off fields are set. + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT (int): Both the promotion code and orders over amount fields are set. + TOO_MANY_DECIMAL_PLACES_SPECIFIED (int): Too many decimal places are specified. + AD_CUSTOMIZERS_NOT_ALLOWED (int): Ad Customizers are present and not allowed. + INVALID_LANGUAGE_CODE (int): Language code is not valid. + UNSUPPORTED_LANGUAGE (int): Language is not supported. + IF_FUNCTION_NOT_ALLOWED (int): IF Function is present and not allowed. + INVALID_FINAL_URL_SUFFIX (int): Final url suffix is not valid. + INVALID_TAG_IN_FINAL_URL_SUFFIX (int): Final url suffix contains an invalid tag. + INVALID_FINAL_URL_SUFFIX_FORMAT (int): Final url suffix is formatted incorrectly. + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED (int): Consent for call recording, which is required for the use of call + extensions, was not provided by the advertiser. Please see + https://support.google.com/google-ads/answer/7412639. + ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED (int): Multiple message delivery options are set. + NO_DELIVERY_OPTION_IS_SET (int): No message delivery option is set. + INVALID_CONVERSION_REPORTING_STATE (int): String value of conversion reporting state field is not valid. + IMAGE_SIZE_WRONG (int): Image size is not right. + EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY (int): Email delivery is not supported in the country specified in the country + code field. + AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY (int): Auto reply is not supported in the country specified in the country code + field. + INVALID_LATITUDE_VALUE (int): Invalid value specified for latitude. + INVALID_LONGITUDE_VALUE (int): Invalid value specified for longitude. + TOO_MANY_LABELS (int): Too many label fields provided. + INVALID_IMAGE_URL (int): Invalid image url. + MISSING_LATITUDE_VALUE (int): Latitude value is missing. + MISSING_LONGITUDE_VALUE (int): Longitude value is missing. + ADDRESS_NOT_FOUND (int): Unable to find address. + ADDRESS_NOT_TARGETABLE (int): Cannot target provided address. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STRING_TOO_SHORT = 2 + STRING_TOO_LONG = 3 + VALUE_NOT_SPECIFIED = 4 + INVALID_DOMESTIC_PHONE_NUMBER_FORMAT = 5 + INVALID_PHONE_NUMBER = 6 + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 7 + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 8 + DISALLOWED_NUMBER_TYPE = 9 + VALUE_OUT_OF_RANGE = 10 + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 11 + CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING = 99 + INVALID_COUNTRY_CODE = 13 + INVALID_APP_ID = 14 + MISSING_ATTRIBUTES_FOR_FIELDS = 15 + INVALID_TYPE_ID = 16 + INVALID_EMAIL_ADDRESS = 17 + INVALID_HTTPS_URL = 18 + MISSING_DELIVERY_ADDRESS = 19 + START_DATE_AFTER_END_DATE = 20 + MISSING_FEED_ITEM_START_TIME = 21 + MISSING_FEED_ITEM_END_TIME = 22 + MISSING_FEED_ITEM_ID = 23 + VANITY_PHONE_NUMBER_NOT_ALLOWED = 24 + INVALID_REVIEW_EXTENSION_SNIPPET = 25 + INVALID_NUMBER_FORMAT = 26 + INVALID_DATE_FORMAT = 27 + INVALID_PRICE_FORMAT = 28 + UNKNOWN_PLACEHOLDER_FIELD = 29 + MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE = 30 + REVIEW_EXTENSION_SOURCE_INELIGIBLE = 31 + HYPHENS_IN_REVIEW_EXTENSION_SNIPPET = 32 + DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 33 + QUOTES_IN_REVIEW_EXTENSION_SNIPPET = 34 + INVALID_FORM_ENCODED_PARAMS = 35 + INVALID_URL_PARAMETER_NAME = 36 + NO_GEOCODING_RESULT = 37 + SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT = 38 + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 39 + INVALID_PLACEHOLDER_FIELD_ID = 40 + INVALID_URL_TAG = 41 + LIST_TOO_LONG = 42 + INVALID_ATTRIBUTES_COMBINATION = 43 + DUPLICATE_VALUES = 44 + INVALID_CALL_CONVERSION_ACTION_ID = 45 + CANNOT_SET_WITHOUT_FINAL_URLS = 46 + APP_ID_DOESNT_EXIST_IN_APP_STORE = 47 + INVALID_FINAL_URL = 48 + INVALID_TRACKING_URL = 49 + INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL = 50 + LIST_TOO_SHORT = 51 + INVALID_USER_ACTION = 52 + INVALID_TYPE_NAME = 53 + INVALID_EVENT_CHANGE_STATUS = 54 + INVALID_SNIPPETS_HEADER = 55 + INVALID_ANDROID_APP_LINK = 56 + NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 57 + RESERVED_KEYWORD_OTHER = 58 + DUPLICATE_OPTION_LABELS = 59 + DUPLICATE_OPTION_PREFILLS = 60 + UNEQUAL_LIST_LENGTHS = 61 + INCONSISTENT_CURRENCY_CODES = 62 + PRICE_EXTENSION_HAS_DUPLICATED_HEADERS = 63 + ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION = 64 + PRICE_EXTENSION_HAS_TOO_FEW_ITEMS = 65 + UNSUPPORTED_VALUE = 66 + INVALID_FINAL_MOBILE_URL = 67 + INVALID_KEYWORDLESS_AD_RULE_LABEL = 68 + VALUE_TRACK_PARAMETER_NOT_SUPPORTED = 69 + UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE = 70 + INVALID_IOS_APP_LINK = 71 + MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID = 72 + PROMOTION_INVALID_TIME = 73 + PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF = 74 + PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT = 75 + TOO_MANY_DECIMAL_PLACES_SPECIFIED = 76 + AD_CUSTOMIZERS_NOT_ALLOWED = 77 + INVALID_LANGUAGE_CODE = 78 + UNSUPPORTED_LANGUAGE = 79 + IF_FUNCTION_NOT_ALLOWED = 80 + INVALID_FINAL_URL_SUFFIX = 81 + INVALID_TAG_IN_FINAL_URL_SUFFIX = 82 + INVALID_FINAL_URL_SUFFIX_FORMAT = 83 + CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED = 84 + ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED = 85 + NO_DELIVERY_OPTION_IS_SET = 86 + INVALID_CONVERSION_REPORTING_STATE = 87 + IMAGE_SIZE_WRONG = 88 + EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY = 89 + AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY = 90 + INVALID_LATITUDE_VALUE = 91 + INVALID_LONGITUDE_VALUE = 92 + TOO_MANY_LABELS = 93 + INVALID_IMAGE_URL = 94 + MISSING_LATITUDE_VALUE = 95 + MISSING_LONGITUDE_VALUE = 96 + ADDRESS_NOT_FOUND = 97 + ADDRESS_NOT_TARGETABLE = 98 +''' +FeedItemValidationErrorEnum = FeedItemValidationErrorEnum() # For __getattribute__ + + +class FeedItemValidationStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedItemValidationStatus = '''\ + class FeedItemValidationStatus(enum.IntEnum): + """ + The possible validation statuses of a feed item. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): Validation pending. + INVALID (int): An error was found. + VALID (int): Feed item is semantically well-formed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + INVALID = 3 + VALID = 4 +''' +FeedItemValidationStatusEnum = FeedItemValidationStatusEnum() # For __getattribute__ + + +class FeedLinkStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedLinkStatus = '''\ + class FeedLinkStatus(enum.IntEnum): + """ + Possible statuses of a feed link. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Feed link is enabled. + REMOVED (int): Feed link has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +FeedLinkStatusEnum = FeedLinkStatusEnum() # For __getattribute__ + + +class FeedMappingCriterionTypeEnum(_CreateEnumTypeUponFirstAccess): + FeedMappingCriterionType = '''\ + class FeedMappingCriterionType(enum.IntEnum): + """ + Possible placeholder types for a feed mapping. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LOCATION_EXTENSION_TARGETING (int): Allows campaign targeting at locations within a location feed. + DSA_PAGE_FEED (int): Allows url targeting for your dynamic search ads within a page feed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LOCATION_EXTENSION_TARGETING = 4 + DSA_PAGE_FEED = 3 +''' +FeedMappingCriterionTypeEnum = FeedMappingCriterionTypeEnum() # For __getattribute__ + + +class FeedMappingErrorEnum(_CreateEnumTypeUponFirstAccess): + FeedMappingError = '''\ + class FeedMappingError(enum.IntEnum): + """ + Enum describing possible feed item errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_PLACEHOLDER_FIELD (int): The given placeholder field does not exist. + INVALID_CRITERION_FIELD (int): The given criterion field does not exist. + INVALID_PLACEHOLDER_TYPE (int): The given placeholder type does not exist. + INVALID_CRITERION_TYPE (int): The given criterion type does not exist. + NO_ATTRIBUTE_FIELD_MAPPINGS (int): A feed mapping must contain at least one attribute field mapping. + FEED_ATTRIBUTE_TYPE_MISMATCH (int): The type of the feed attribute referenced in the attribute field mapping + must match the type of the placeholder field. + CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED (int): A feed mapping for a system generated feed cannot be operated on. + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE (int): Only one feed mapping for a placeholder type is allowed per feed or + customer (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE (int): Only one feed mapping for a criterion type is allowed per customer. + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD (int): Only one feed attribute mapping for a placeholder field is allowed + (depending on the placeholder type). + MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD (int): Only one feed attribute mapping for a criterion field is allowed + (depending on the criterion type). + UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS (int): This feed mapping may not contain any explicit attribute field mappings. + LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS (int): Location placeholder feed mappings can only be created for Places feeds. + CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED (int): Mappings for typed feeds cannot be modified. + INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED (int): The given placeholder type can only be mapped to system generated feeds. + INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE (int): The given placeholder type cannot be mapped to a system generated feed + with the given type. + ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD (int): The "field" oneof was not set in an AttributeFieldMapping. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_PLACEHOLDER_FIELD = 2 + INVALID_CRITERION_FIELD = 3 + INVALID_PLACEHOLDER_TYPE = 4 + INVALID_CRITERION_TYPE = 5 + NO_ATTRIBUTE_FIELD_MAPPINGS = 7 + FEED_ATTRIBUTE_TYPE_MISMATCH = 8 + CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED = 9 + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE = 10 + MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE = 11 + MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD = 12 + MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD = 13 + UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS = 14 + LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS = 15 + CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED = 16 + INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED = 17 + INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE = 18 + ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD = 19 +''' +FeedMappingErrorEnum = FeedMappingErrorEnum() # For __getattribute__ + + +class FeedMappingStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedMappingStatus = '''\ + class FeedMappingStatus(enum.IntEnum): + """ + Possible statuses of a feed mapping. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Feed mapping is enabled. + REMOVED (int): Feed mapping has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +FeedMappingStatusEnum = FeedMappingStatusEnum() # For __getattribute__ + + +class FeedOriginEnum(_CreateEnumTypeUponFirstAccess): + FeedOrigin = '''\ + class FeedOrigin(enum.IntEnum): + """ + Possible values for a feed origin. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + USER (int): The FeedAttributes for this Feed are managed by the + user. Users can add FeedAttributes to this Feed. + GOOGLE (int): The FeedAttributes for an GOOGLE Feed are created by Google. A feed of + this type is maintained by Google and will have the correct attributes + for the placeholder type of the feed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + USER = 2 + GOOGLE = 3 +''' +FeedOriginEnum = FeedOriginEnum() # For __getattribute__ + + +class FeedStatusEnum(_CreateEnumTypeUponFirstAccess): + FeedStatus = '''\ + class FeedStatus(enum.IntEnum): + """ + Possible statuses of a feed. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Feed is enabled. + REMOVED (int): Feed has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +FeedStatusEnum = FeedStatusEnum() # For __getattribute__ + + +class FieldErrorEnum(_CreateEnumTypeUponFirstAccess): + FieldError = '''\ + class FieldError(enum.IntEnum): + """ + Enum describing possible field errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + REQUIRED (int): The required field was not present. + IMMUTABLE_FIELD (int): The field attempted to be mutated is immutable. + INVALID_VALUE (int): The field's value is invalid. + VALUE_MUST_BE_UNSET (int): The field cannot be set. + REQUIRED_NONEMPTY_LIST (int): The required repeated field was empty. + FIELD_CANNOT_BE_CLEARED (int): The field cannot be cleared. + BLOCKED_VALUE (int): The field's value is on a deny-list for this field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUIRED = 2 + IMMUTABLE_FIELD = 3 + INVALID_VALUE = 4 + VALUE_MUST_BE_UNSET = 5 + REQUIRED_NONEMPTY_LIST = 6 + FIELD_CANNOT_BE_CLEARED = 7 + BLOCKED_VALUE = 9 +''' +FieldErrorEnum = FieldErrorEnum() # For __getattribute__ + + +class FieldMaskErrorEnum(_CreateEnumTypeUponFirstAccess): + FieldMaskError = '''\ + class FieldMaskError(enum.IntEnum): + """ + Enum describing possible field mask errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FIELD_MASK_MISSING (int): The field mask must be provided for update operations. + FIELD_MASK_NOT_ALLOWED (int): The field mask must be empty for create and remove operations. + FIELD_NOT_FOUND (int): The field mask contained an invalid field. + FIELD_HAS_SUBFIELDS (int): The field mask updated a field with subfields. Fields with subfields may + be cleared, but not updated. To fix this, the field mask should select + all the subfields of the invalid field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FIELD_MASK_MISSING = 5 + FIELD_MASK_NOT_ALLOWED = 4 + FIELD_NOT_FOUND = 2 + FIELD_HAS_SUBFIELDS = 3 +''' +FieldMaskErrorEnum = FieldMaskErrorEnum() # For __getattribute__ + + +class FlightPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + FlightPlaceholderField = '''\ + class FlightPlaceholderField(enum.IntEnum): + """ + Possible values for Flight placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DESTINATION_ID (int): Data Type: STRING. Required. Destination id. Example: PAR, LON. + For feed items that only have destination id, destination id must be a + unique key. For feed items that have both destination id and origin id, + then the combination must be a unique key. + ORIGIN_ID (int): Data Type: STRING. Origin id. Example: PAR, LON. + Optional. Combination of destination id and origin id must be unique per + offer. + FLIGHT_DESCRIPTION (int): Data Type: STRING. Required. Main headline with product name to be shown + in dynamic ad. + ORIGIN_NAME (int): Data Type: STRING. Shorter names are recommended. + DESTINATION_NAME (int): Data Type: STRING. Shorter names are recommended. + FLIGHT_PRICE (int): Data Type: STRING. Price to be shown in the ad. + Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + FLIGHT_SALE_PRICE (int): Data Type: STRING. Sale price to be shown in the ad. + Example: "80.00 USD" + FORMATTED_SALE_PRICE (int): Data Type: STRING. Formatted sale price to be shown in the ad. + Example: "On sale for $80.00", "$60 - $80" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. + FINAL_URLS (int): Data Type: URL\_LIST. Required. Final URLs for the ad when using + Upgraded URLs. User will be redirected to these URLs when they click on + an ad, or when they click on a specific flight for ads that show + multiple flights. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_DESTINATION_IDS (int): Data Type: STRING\_LIST. List of recommended destination IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DESTINATION_ID = 2 + ORIGIN_ID = 3 + FLIGHT_DESCRIPTION = 4 + ORIGIN_NAME = 5 + DESTINATION_NAME = 6 + FLIGHT_PRICE = 7 + FORMATTED_PRICE = 8 + FLIGHT_SALE_PRICE = 9 + FORMATTED_SALE_PRICE = 10 + IMAGE_URL = 11 + FINAL_URLS = 12 + FINAL_MOBILE_URLS = 13 + TRACKING_URL = 14 + ANDROID_APP_LINK = 15 + SIMILAR_DESTINATION_IDS = 16 + IOS_APP_LINK = 17 + IOS_APP_STORE_ID = 18 +''' +FlightPlaceholderFieldEnum = FlightPlaceholderFieldEnum() # For __getattribute__ + + +class FrequencyCapEventTypeEnum(_CreateEnumTypeUponFirstAccess): + FrequencyCapEventType = '''\ + class FrequencyCapEventType(enum.IntEnum): + """ + The type of event that the cap applies to (e.g. impression). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + IMPRESSION (int): The cap applies on ad impressions. + VIDEO_VIEW (int): The cap applies on video ad views. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IMPRESSION = 2 + VIDEO_VIEW = 3 +''' +FrequencyCapEventTypeEnum = FrequencyCapEventTypeEnum() # For __getattribute__ + + +class FrequencyCapLevelEnum(_CreateEnumTypeUponFirstAccess): + FrequencyCapLevel = '''\ + class FrequencyCapLevel(enum.IntEnum): + """ + The level on which the cap is to be applied (e.g ad group ad, ad group). + Cap is applied to all the resources of this level. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AD_GROUP_AD (int): The cap is applied at the ad group ad level. + AD_GROUP (int): The cap is applied at the ad group level. + CAMPAIGN (int): The cap is applied at the campaign level. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_AD = 2 + AD_GROUP = 3 + CAMPAIGN = 4 +''' +FrequencyCapLevelEnum = FrequencyCapLevelEnum() # For __getattribute__ + + +class FrequencyCapTimeUnitEnum(_CreateEnumTypeUponFirstAccess): + FrequencyCapTimeUnit = '''\ + class FrequencyCapTimeUnit(enum.IntEnum): + """ + Unit of time the cap is defined at (e.g. day, week). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DAY (int): The cap would define limit per one day. + WEEK (int): The cap would define limit per one week. + MONTH (int): The cap would define limit per one month. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DAY = 2 + WEEK = 3 + MONTH = 4 +''' +FrequencyCapTimeUnitEnum = FrequencyCapTimeUnitEnum() # For __getattribute__ + + +class FunctionErrorEnum(_CreateEnumTypeUponFirstAccess): + FunctionError = '''\ + class FunctionError(enum.IntEnum): + """ + Enum describing possible function errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_FUNCTION_FORMAT (int): The format of the function is not recognized as a supported function + format. + DATA_TYPE_MISMATCH (int): Operand data types do not match. + INVALID_CONJUNCTION_OPERANDS (int): The operands cannot be used together in a conjunction. + INVALID_NUMBER_OF_OPERANDS (int): Invalid numer of Operands. + INVALID_OPERAND_TYPE (int): Operand Type not supported. + INVALID_OPERATOR (int): Operator not supported. + INVALID_REQUEST_CONTEXT_TYPE (int): Request context type not supported. + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER (int): The matching function is not allowed for call placeholders + INVALID_FUNCTION_FOR_PLACEHOLDER (int): The matching function is not allowed for the specified placeholder + INVALID_OPERAND (int): Invalid operand. + MISSING_CONSTANT_OPERAND_VALUE (int): Missing value for the constant operand. + INVALID_CONSTANT_OPERAND_VALUE (int): The value of the constant operand is invalid. + INVALID_NESTING (int): Invalid function nesting. + MULTIPLE_FEED_IDS_NOT_SUPPORTED (int): The Feed ID was different from another Feed ID in the same function. + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA (int): The matching function is invalid for use with a feed with a fixed schema. + INVALID_ATTRIBUTE_NAME (int): Invalid attribute name. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_FUNCTION_FORMAT = 2 + DATA_TYPE_MISMATCH = 3 + INVALID_CONJUNCTION_OPERANDS = 4 + INVALID_NUMBER_OF_OPERANDS = 5 + INVALID_OPERAND_TYPE = 6 + INVALID_OPERATOR = 7 + INVALID_REQUEST_CONTEXT_TYPE = 8 + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9 + INVALID_FUNCTION_FOR_PLACEHOLDER = 10 + INVALID_OPERAND = 11 + MISSING_CONSTANT_OPERAND_VALUE = 12 + INVALID_CONSTANT_OPERAND_VALUE = 13 + INVALID_NESTING = 14 + MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15 + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16 + INVALID_ATTRIBUTE_NAME = 17 +''' +FunctionErrorEnum = FunctionErrorEnum() # For __getattribute__ + + +class FunctionParsingErrorEnum(_CreateEnumTypeUponFirstAccess): + FunctionParsingError = '''\ + class FunctionParsingError(enum.IntEnum): + """ + Enum describing possible function parsing errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NO_MORE_INPUT (int): Unexpected end of function string. + EXPECTED_CHARACTER (int): Could not find an expected character. + UNEXPECTED_SEPARATOR (int): Unexpected separator character. + UNMATCHED_LEFT_BRACKET (int): Unmatched left bracket or parenthesis. + UNMATCHED_RIGHT_BRACKET (int): Unmatched right bracket or parenthesis. + TOO_MANY_NESTED_FUNCTIONS (int): Functions are nested too deeply. + MISSING_RIGHT_HAND_OPERAND (int): Missing right-hand-side operand. + INVALID_OPERATOR_NAME (int): Invalid operator/function name. + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER (int): Feed attribute operand's argument is not an integer. + NO_OPERANDS (int): Missing function operands. + TOO_MANY_OPERANDS (int): Function had too many operands. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NO_MORE_INPUT = 2 + EXPECTED_CHARACTER = 3 + UNEXPECTED_SEPARATOR = 4 + UNMATCHED_LEFT_BRACKET = 5 + UNMATCHED_RIGHT_BRACKET = 6 + TOO_MANY_NESTED_FUNCTIONS = 7 + MISSING_RIGHT_HAND_OPERAND = 8 + INVALID_OPERATOR_NAME = 9 + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10 + NO_OPERANDS = 11 + TOO_MANY_OPERANDS = 12 +''' +FunctionParsingErrorEnum = FunctionParsingErrorEnum() # For __getattribute__ + + +class GenderTypeEnum(_CreateEnumTypeUponFirstAccess): + GenderType = '''\ + class GenderType(enum.IntEnum): + """ + The type of demographic genders (e.g. female). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + MALE (int): Male. + FEMALE (int): Female. + UNDETERMINED (int): Undetermined gender. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MALE = 10 + FEMALE = 11 + UNDETERMINED = 20 +''' +GenderTypeEnum = GenderTypeEnum() # For __getattribute__ + + +class GeoTargetConstantStatusEnum(_CreateEnumTypeUponFirstAccess): + GeoTargetConstantStatus = '''\ + class GeoTargetConstantStatus(enum.IntEnum): + """ + The possible statuses of a geo target constant. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + ENABLED (int): The geo target constant is valid. + REMOVAL_PLANNED (int): The geo target constant is obsolete and will be removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVAL_PLANNED = 3 +''' +GeoTargetConstantStatusEnum = GeoTargetConstantStatusEnum() # For __getattribute__ + + +class GeoTargetConstantSuggestionErrorEnum(_CreateEnumTypeUponFirstAccess): + GeoTargetConstantSuggestionError = '''\ + class GeoTargetConstantSuggestionError(enum.IntEnum): + """ + Enum describing possible geo target constant suggestion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + LOCATION_NAME_SIZE_LIMIT (int): A location name cannot be greater than 300 characters. + LOCATION_NAME_LIMIT (int): At most 25 location names can be specified in a SuggestGeoTargetConstants + method. + INVALID_COUNTRY_CODE (int): The country code is invalid. + REQUEST_PARAMETERS_UNSET (int): Geo target constant resource names or location names must be provided in + the request. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LOCATION_NAME_SIZE_LIMIT = 2 + LOCATION_NAME_LIMIT = 3 + INVALID_COUNTRY_CODE = 4 + REQUEST_PARAMETERS_UNSET = 5 +''' +GeoTargetConstantSuggestionErrorEnum = GeoTargetConstantSuggestionErrorEnum() # For __getattribute__ + + +class GeoTargetingRestrictionEnum(_CreateEnumTypeUponFirstAccess): + GeoTargetingRestriction = '''\ + class GeoTargetingRestriction(enum.IntEnum): + """ + A restriction used to determine if the request context's + geo should be matched. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LOCATION_OF_PRESENCE (int): Indicates that request context should match the physical location of + the user. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LOCATION_OF_PRESENCE = 2 +''' +GeoTargetingRestrictionEnum = GeoTargetingRestrictionEnum() # For __getattribute__ + + +class GeoTargetingTypeEnum(_CreateEnumTypeUponFirstAccess): + GeoTargetingType = '''\ + class GeoTargetingType(enum.IntEnum): + """ + The possible geo targeting types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + AREA_OF_INTEREST (int): Location the user is interested in while making the query. + LOCATION_OF_PRESENCE (int): Location of the user issuing the query. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AREA_OF_INTEREST = 2 + LOCATION_OF_PRESENCE = 3 +''' +GeoTargetingTypeEnum = GeoTargetingTypeEnum() # For __getattribute__ + + +class GoogleAdsFieldCategoryEnum(_CreateEnumTypeUponFirstAccess): + GoogleAdsFieldCategory = '''\ + class GoogleAdsFieldCategory(enum.IntEnum): + """ + The category of the artifact. + + Attributes: + UNSPECIFIED (int): Unspecified + UNKNOWN (int): Unknown + RESOURCE (int): The described artifact is a resource. + ATTRIBUTE (int): The described artifact is a field and is an attribute of a resource. + Including a resource attribute field in a query may segment the query if + the resource to which it is attributed segments the resource found in + the FROM clause. + SEGMENT (int): The described artifact is a field and always segments search queries. + METRIC (int): The described artifact is a field and is a metric. It never segments + search queries. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE = 2 + ATTRIBUTE = 3 + SEGMENT = 5 + METRIC = 6 +''' +GoogleAdsFieldCategoryEnum = GoogleAdsFieldCategoryEnum() # For __getattribute__ + + +class GoogleAdsFieldDataTypeEnum(_CreateEnumTypeUponFirstAccess): + GoogleAdsFieldDataType = '''\ + class GoogleAdsFieldDataType(enum.IntEnum): + """ + These are the various types a GoogleAdsService artifact may take on. + + Attributes: + UNSPECIFIED (int): Unspecified + UNKNOWN (int): Unknown + BOOLEAN (int): Maps to google.protobuf.BoolValue + Applicable operators: =, != + DATE (int): Maps to google.protobuf.StringValue. It can be compared using the set of + operators specific to dates however. + Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + DOUBLE (int): Maps to google.protobuf.DoubleValue + Applicable operators: =, !=, <, >, IN, NOT IN + ENUM (int): Maps to an enum. It's specific definition can be found at type\_url. + Applicable operators: =, !=, IN, NOT IN + FLOAT (int): Maps to google.protobuf.FloatValue + Applicable operators: =, !=, <, >, IN, NOT IN + INT32 (int): Maps to google.protobuf.Int32Value + Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT64 (int): Maps to google.protobuf.Int64Value + Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + MESSAGE (int): Maps to a protocol buffer message type. The data type's details can be + found in type\_url. + No operators work with MESSAGE fields. + RESOURCE_NAME (int): Maps to google.protobuf.StringValue. Represents the resource name + (unique id) of a resource or one of its foreign keys. + No operators work with RESOURCE\_NAME fields. + STRING (int): Maps to google.protobuf.StringValue. + Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + UINT64 (int): Maps to google.protobuf.UInt64Value + Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BOOLEAN = 2 + DATE = 3 + DOUBLE = 4 + ENUM = 5 + FLOAT = 6 + INT32 = 7 + INT64 = 8 + MESSAGE = 9 + RESOURCE_NAME = 10 + STRING = 11 + UINT64 = 12 +''' +GoogleAdsFieldDataTypeEnum = GoogleAdsFieldDataTypeEnum() # For __getattribute__ + + +class HeaderErrorEnum(_CreateEnumTypeUponFirstAccess): + HeaderError = '''\ + class HeaderError(enum.IntEnum): + """ + Enum describing possible header errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_LOGIN_CUSTOMER_ID (int): The login customer id could not be validated. + INVALID_LINKED_CUSTOMER_ID (int): The linked customer id could not be validated. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_LOGIN_CUSTOMER_ID = 3 + INVALID_LINKED_CUSTOMER_ID = 7 +''' +HeaderErrorEnum = HeaderErrorEnum() # For __getattribute__ + + +class HotelDateSelectionTypeEnum(_CreateEnumTypeUponFirstAccess): + HotelDateSelectionType = '''\ + class HotelDateSelectionType(enum.IntEnum): + """ + Enum describing possible hotel date selection types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DEFAULT_SELECTION (int): Dates selected by default. + USER_SELECTED (int): Dates selected by the user. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DEFAULT_SELECTION = 50 + USER_SELECTED = 51 +''' +HotelDateSelectionTypeEnum = HotelDateSelectionTypeEnum() # For __getattribute__ + + +class HotelPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + HotelPlaceholderField = '''\ + class HotelPlaceholderField(enum.IntEnum): + """ + Possible values for Hotel placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PROPERTY_ID (int): Data Type: STRING. Required. Unique ID. + PROPERTY_NAME (int): Data Type: STRING. Required. Main headline with property name to be shown + in dynamic ad. + DESTINATION_NAME (int): Data Type: STRING. Name of destination to be shown in dynamic ad. + DESCRIPTION (int): Data Type: STRING. Description of destination to be shown in dynamic ad. + ADDRESS (int): Data Type: STRING. Complete property address, including postal code. + PRICE (int): Data Type: STRING. Price to be shown in the ad. + Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + SALE_PRICE (int): Data Type: STRING. Sale price to be shown in the ad. + Example: "80.00 USD" + FORMATTED_SALE_PRICE (int): Data Type: STRING. Formatted sale price to be shown in the ad. + Example: "On sale for $80.00", "$60 - $80" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. + CATEGORY (int): Data Type: STRING. Category of property used to group like items together + for recommendation engine. + STAR_RATING (int): Data Type: INT64. Star rating (1 to 5) used to group like items + together for recommendation engine. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + FINAL_URLS (int): Data Type: URL\_LIST. Required. Final URLs for the ad when using + Upgraded URLs. User will be redirected to these URLs when they click on + an ad, or when they click on a specific flight for ads that show + multiple flights. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_PROPERTY_IDS (int): Data Type: STRING\_LIST. List of recommended property IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PROPERTY_ID = 2 + PROPERTY_NAME = 3 + DESTINATION_NAME = 4 + DESCRIPTION = 5 + ADDRESS = 6 + PRICE = 7 + FORMATTED_PRICE = 8 + SALE_PRICE = 9 + FORMATTED_SALE_PRICE = 10 + IMAGE_URL = 11 + CATEGORY = 12 + STAR_RATING = 13 + CONTEXTUAL_KEYWORDS = 14 + FINAL_URLS = 15 + FINAL_MOBILE_URLS = 16 + TRACKING_URL = 17 + ANDROID_APP_LINK = 18 + SIMILAR_PROPERTY_IDS = 19 + IOS_APP_LINK = 20 + IOS_APP_STORE_ID = 21 +''' +HotelPlaceholderFieldEnum = HotelPlaceholderFieldEnum() # For __getattribute__ + + +class HotelPriceBucketEnum(_CreateEnumTypeUponFirstAccess): + HotelPriceBucket = '''\ + class HotelPriceBucket(enum.IntEnum): + """ + Enum describing possible hotel price buckets. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + LOWEST_TIED (int): Tied for lowest price. Partner is within a small variance of the lowest + price. + NOT_LOWEST (int): Not lowest price. Partner is not within a small variance of the lowest + price. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LOWEST_TIED = 3 + NOT_LOWEST = 4 +''' +HotelPriceBucketEnum = HotelPriceBucketEnum() # For __getattribute__ + + +class HotelRateTypeEnum(_CreateEnumTypeUponFirstAccess): + HotelRateType = '''\ + class HotelRateType(enum.IntEnum): + """ + Enum describing possible hotel rate types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + UNAVAILABLE (int): Rate type information is unavailable. + PUBLIC_RATE (int): Rates available to everyone. + QUALIFIED_RATE (int): A membership program rate is available and satisfies basic requirements + like having a public rate available. UI treatment will strikethrough the + public rate and indicate that a discount is available to the user. For + more on Qualified Rates, visit + https://developers.google.com/hotels/hotel-ads/dev-guide/qualified-rates + PRIVATE_RATE (int): Rates available to users that satisfy some eligibility criteria. e.g. + all signed-in users, 20% of mobile users, all mobile users in Canada, + etc. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNAVAILABLE = 2 + PUBLIC_RATE = 3 + QUALIFIED_RATE = 4 + PRIVATE_RATE = 5 +''' +HotelRateTypeEnum = HotelRateTypeEnum() # For __getattribute__ + + +class IdErrorEnum(_CreateEnumTypeUponFirstAccess): + IdError = '''\ + class IdError(enum.IntEnum): + """ + Enum describing possible id errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NOT_FOUND (int): Id not found + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NOT_FOUND = 2 +''' +IdErrorEnum = IdErrorEnum() # For __getattribute__ + + +class ImageErrorEnum(_CreateEnumTypeUponFirstAccess): + ImageError = '''\ + class ImageError(enum.IntEnum): + """ + Enum describing possible image errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_IMAGE (int): The image is not valid. + STORAGE_ERROR (int): The image could not be stored. + BAD_REQUEST (int): There was a problem with the request. + UNEXPECTED_SIZE (int): The image is not of legal dimensions. + ANIMATED_NOT_ALLOWED (int): Animated image are not permitted. + ANIMATION_TOO_LONG (int): Animation is too long. + SERVER_ERROR (int): There was an error on the server. + CMYK_JPEG_NOT_ALLOWED (int): Image cannot be in CMYK color format. + FLASH_NOT_ALLOWED (int): Flash images are not permitted. + FLASH_WITHOUT_CLICKTAG (int): Flash images must support clickTag. + FLASH_ERROR_AFTER_FIXING_CLICK_TAG (int): A flash error has occurred after fixing the click tag. + ANIMATED_VISUAL_EFFECT (int): Unacceptable visual effects. + FLASH_ERROR (int): There was a problem with the flash image. + LAYOUT_PROBLEM (int): Incorrect image layout. + PROBLEM_READING_IMAGE_FILE (int): There was a problem reading the image file. + ERROR_STORING_IMAGE (int): There was an error storing the image. + ASPECT_RATIO_NOT_ALLOWED (int): The aspect ratio of the image is not allowed. + FLASH_HAS_NETWORK_OBJECTS (int): Flash cannot have network objects. + FLASH_HAS_NETWORK_METHODS (int): Flash cannot have network methods. + FLASH_HAS_URL (int): Flash cannot have a Url. + FLASH_HAS_MOUSE_TRACKING (int): Flash cannot use mouse tracking. + FLASH_HAS_RANDOM_NUM (int): Flash cannot have a random number. + FLASH_SELF_TARGETS (int): Ad click target cannot be '\_self'. + FLASH_BAD_GETURL_TARGET (int): GetUrl method should only use '\_blank'. + FLASH_VERSION_NOT_SUPPORTED (int): Flash version is not supported. + FLASH_WITHOUT_HARD_CODED_CLICK_URL (int): Flash movies need to have hard coded click URL or clickTAG + INVALID_FLASH_FILE (int): Uploaded flash file is corrupted. + FAILED_TO_FIX_CLICK_TAG_IN_FLASH (int): Uploaded flash file can be parsed, but the click tag can not be fixed + properly. + FLASH_ACCESSES_NETWORK_RESOURCES (int): Flash movie accesses network resources + FLASH_EXTERNAL_JS_CALL (int): Flash movie attempts to call external javascript code + FLASH_EXTERNAL_FS_CALL (int): Flash movie attempts to call flash system commands + FILE_TOO_LARGE (int): Image file is too large. + IMAGE_DATA_TOO_LARGE (int): Image data is too large. + IMAGE_PROCESSING_ERROR (int): Error while processing the image. + IMAGE_TOO_SMALL (int): Image is too small. + INVALID_INPUT (int): Input was invalid. + PROBLEM_READING_FILE (int): There was a problem reading the image file. + IMAGE_CONSTRAINTS_VIOLATED (int): Image constraints are violated, but details like + ASPECT\_RATIO\_NOT\_ALLOWED can't be provided. This happens when asset + spec contains more than one constraint and different criteria of + different constraints are violated. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_IMAGE = 2 + STORAGE_ERROR = 3 + BAD_REQUEST = 4 + UNEXPECTED_SIZE = 5 + ANIMATED_NOT_ALLOWED = 6 + ANIMATION_TOO_LONG = 7 + SERVER_ERROR = 8 + CMYK_JPEG_NOT_ALLOWED = 9 + FLASH_NOT_ALLOWED = 10 + FLASH_WITHOUT_CLICKTAG = 11 + FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12 + ANIMATED_VISUAL_EFFECT = 13 + FLASH_ERROR = 14 + LAYOUT_PROBLEM = 15 + PROBLEM_READING_IMAGE_FILE = 16 + ERROR_STORING_IMAGE = 17 + ASPECT_RATIO_NOT_ALLOWED = 18 + FLASH_HAS_NETWORK_OBJECTS = 19 + FLASH_HAS_NETWORK_METHODS = 20 + FLASH_HAS_URL = 21 + FLASH_HAS_MOUSE_TRACKING = 22 + FLASH_HAS_RANDOM_NUM = 23 + FLASH_SELF_TARGETS = 24 + FLASH_BAD_GETURL_TARGET = 25 + FLASH_VERSION_NOT_SUPPORTED = 26 + FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27 + INVALID_FLASH_FILE = 28 + FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29 + FLASH_ACCESSES_NETWORK_RESOURCES = 30 + FLASH_EXTERNAL_JS_CALL = 31 + FLASH_EXTERNAL_FS_CALL = 32 + FILE_TOO_LARGE = 33 + IMAGE_DATA_TOO_LARGE = 34 + IMAGE_PROCESSING_ERROR = 35 + IMAGE_TOO_SMALL = 36 + INVALID_INPUT = 37 + PROBLEM_READING_FILE = 38 + IMAGE_CONSTRAINTS_VIOLATED = 39 +''' +ImageErrorEnum = ImageErrorEnum() # For __getattribute__ + + +class IncomeRangeTypeEnum(_CreateEnumTypeUponFirstAccess): + IncomeRangeType = '''\ + class IncomeRangeType(enum.IntEnum): + """ + The type of demographic income ranges (e.g. between 0% to 50%). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INCOME_RANGE_0_50 (int): 0%-50%. + INCOME_RANGE_50_60 (int): 50% to 60%. + INCOME_RANGE_60_70 (int): 60% to 70%. + INCOME_RANGE_70_80 (int): 70% to 80%. + INCOME_RANGE_80_90 (int): 80% to 90%. + INCOME_RANGE_90_UP (int): Greater than 90%. + INCOME_RANGE_UNDETERMINED (int): Undetermined income range. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INCOME_RANGE_0_50 = 510001 + INCOME_RANGE_50_60 = 510002 + INCOME_RANGE_60_70 = 510003 + INCOME_RANGE_70_80 = 510004 + INCOME_RANGE_80_90 = 510005 + INCOME_RANGE_90_UP = 510006 + INCOME_RANGE_UNDETERMINED = 510000 +''' +IncomeRangeTypeEnum = IncomeRangeTypeEnum() # For __getattribute__ + + +class InteractionEventTypeEnum(_CreateEnumTypeUponFirstAccess): + InteractionEventType = '''\ + class InteractionEventType(enum.IntEnum): + """ + Enum describing possible types of payable and free interactions. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CLICK (int): Click to site. In most cases, this interaction navigates to an external + location, usually the advertiser's landing page. This is also the default + InteractionEventType for click events. + ENGAGEMENT (int): The user's expressed intent to engage with the ad in-place. + VIDEO_VIEW (int): User viewed a video ad. + NONE (int): The default InteractionEventType for ad conversion events. + This is used when an ad conversion row does NOT indicate + that the free interactions (i.e., the ad conversions) + should be 'promoted' and reported as part of the core metrics. + These are simply other (ad) conversions. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CLICK = 2 + ENGAGEMENT = 3 + VIDEO_VIEW = 4 + NONE = 5 +''' +InteractionEventTypeEnum = InteractionEventTypeEnum() # For __getattribute__ + + +class InteractionTypeEnum(_CreateEnumTypeUponFirstAccess): + InteractionType = '''\ + class InteractionType(enum.IntEnum): + """ + Enum describing possible interaction types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CALLS (int): Calls. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CALLS = 8000 +''' +InteractionTypeEnum = InteractionTypeEnum() # For __getattribute__ + + +class InternalErrorEnum(_CreateEnumTypeUponFirstAccess): + InternalError = '''\ + class InternalError(enum.IntEnum): + """ + Enum describing possible internal errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INTERNAL_ERROR (int): Google Ads API encountered unexpected internal error. + ERROR_CODE_NOT_PUBLISHED (int): The intended error code doesn't exist in specified API version. It will + be released in a future API version. + TRANSIENT_ERROR (int): Google Ads API encountered an unexpected transient error. The user + should retry their request in these cases. + DEADLINE_EXCEEDED (int): The request took longer than a deadline. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INTERNAL_ERROR = 2 + ERROR_CODE_NOT_PUBLISHED = 3 + TRANSIENT_ERROR = 4 + DEADLINE_EXCEEDED = 5 +''' +InternalErrorEnum = InternalErrorEnum() # For __getattribute__ + + +class InvoiceErrorEnum(_CreateEnumTypeUponFirstAccess): + InvoiceError = '''\ + class InvoiceError(enum.IntEnum): + """ + Enum describing possible invoice errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + YEAR_MONTH_TOO_OLD (int): Cannot request invoices issued before 2019-01-01. + NOT_INVOICED_CUSTOMER (int): Cannot request invoices for customer who doesn't receive invoices. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + YEAR_MONTH_TOO_OLD = 2 + NOT_INVOICED_CUSTOMER = 3 +''' +InvoiceErrorEnum = InvoiceErrorEnum() # For __getattribute__ + + +class InvoiceTypeEnum(_CreateEnumTypeUponFirstAccess): + InvoiceType = '''\ + class InvoiceType(enum.IntEnum): + """ + The possible type of invoices. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CREDIT_MEMO (int): An invoice with a negative amount. The account receives a credit. + INVOICE (int): An invoice with a positive amount. The account owes a balance. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CREDIT_MEMO = 2 + INVOICE = 3 +''' +InvoiceTypeEnum = InvoiceTypeEnum() # For __getattribute__ + + +class JobPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + JobPlaceholderField = '''\ + class JobPlaceholderField(enum.IntEnum): + """ + Possible values for Job placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + JOB_ID (int): Data Type: STRING. Required. If only JOB\_ID is specified, then it must + be unique. If both JOB\_ID and LOCATION\_ID are specified, then the pair + must be unique. ID) pair must be unique. + LOCATION_ID (int): Data Type: STRING. Combination of JOB\_ID and LOCATION\_ID must be + unique per offer. + TITLE (int): Data Type: STRING. Required. Main headline with job title to be shown in + dynamic ad. + SUBTITLE (int): Data Type: STRING. Job subtitle to be shown in dynamic ad. + DESCRIPTION (int): Data Type: STRING. Description of job to be shown in dynamic ad. + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. Highly recommended for + image ads. + CATEGORY (int): Data Type: STRING. Category of property used to group like items together + for recommendation engine. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + ADDRESS (int): Data Type: STRING. Complete property address, including postal code. + SALARY (int): Data Type: STRING. Salary or salary range of job to be shown in dynamic + ad. + FINAL_URLS (int): Data Type: URL\_LIST. Required. Final URLs to be used in ad when using + Upgraded URLs; the more specific the better (e.g. the individual URL of + a specific job and its location). + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_JOB_IDS (int): Data Type: STRING\_LIST. List of recommended job IDs to show together + with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + JOB_ID = 2 + LOCATION_ID = 3 + TITLE = 4 + SUBTITLE = 5 + DESCRIPTION = 6 + IMAGE_URL = 7 + CATEGORY = 8 + CONTEXTUAL_KEYWORDS = 9 + ADDRESS = 10 + SALARY = 11 + FINAL_URLS = 12 + FINAL_MOBILE_URLS = 14 + TRACKING_URL = 15 + ANDROID_APP_LINK = 16 + SIMILAR_JOB_IDS = 17 + IOS_APP_LINK = 18 + IOS_APP_STORE_ID = 19 +''' +JobPlaceholderFieldEnum = JobPlaceholderFieldEnum() # For __getattribute__ + + +class KeywordMatchTypeEnum(_CreateEnumTypeUponFirstAccess): + KeywordMatchType = '''\ + class KeywordMatchType(enum.IntEnum): + """ + Possible Keyword match types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EXACT (int): Exact match. + PHRASE (int): Phrase match. + BROAD (int): Broad match. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXACT = 2 + PHRASE = 3 + BROAD = 4 +''' +KeywordMatchTypeEnum = KeywordMatchTypeEnum() # For __getattribute__ + + +class KeywordPlanAdGroupErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanAdGroupError = '''\ + class KeywordPlanAdGroupError(enum.IntEnum): + """ + Enum describing possible errors from applying a keyword plan ad group. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_NAME (int): The keyword plan ad group name is missing, empty, longer than allowed + limit or contains invalid chars. + DUPLICATE_NAME (int): The keyword plan ad group name is duplicate to an existing keyword plan + AdGroup name or other keyword plan AdGroup name in the request. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_NAME = 2 + DUPLICATE_NAME = 3 +''' +KeywordPlanAdGroupErrorEnum = KeywordPlanAdGroupErrorEnum() # For __getattribute__ + + +class KeywordPlanAdGroupKeywordErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanAdGroupKeywordError = '''\ + class KeywordPlanAdGroupKeywordError(enum.IntEnum): + """ + Enum describing possible errors from applying a keyword plan ad group + keyword or keyword plan campaign keyword. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_KEYWORD_MATCH_TYPE (int): A keyword or negative keyword has invalid match type. + DUPLICATE_KEYWORD (int): A keyword or negative keyword with same text and match type already + exists. + KEYWORD_TEXT_TOO_LONG (int): Keyword or negative keyword text exceeds the allowed limit. + KEYWORD_HAS_INVALID_CHARS (int): Keyword or negative keyword text has invalid characters or symbols. + KEYWORD_HAS_TOO_MANY_WORDS (int): Keyword or negative keyword text has too many words. + INVALID_KEYWORD_TEXT (int): Keyword or negative keyword has invalid text. + NEGATIVE_KEYWORD_HAS_CPC_BID (int): Cpc Bid set for negative keyword. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_KEYWORD_MATCH_TYPE = 2 + DUPLICATE_KEYWORD = 3 + KEYWORD_TEXT_TOO_LONG = 4 + KEYWORD_HAS_INVALID_CHARS = 5 + KEYWORD_HAS_TOO_MANY_WORDS = 6 + INVALID_KEYWORD_TEXT = 7 + NEGATIVE_KEYWORD_HAS_CPC_BID = 8 +''' +KeywordPlanAdGroupKeywordErrorEnum = KeywordPlanAdGroupKeywordErrorEnum() # For __getattribute__ + + +class KeywordPlanCampaignErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanCampaignError = '''\ + class KeywordPlanCampaignError(enum.IntEnum): + """ + Enum describing possible errors from applying a keyword plan campaign. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_NAME (int): A keyword plan campaign name is missing, empty, longer than allowed limit + or contains invalid chars. + INVALID_LANGUAGES (int): A keyword plan campaign contains one or more untargetable languages. + INVALID_GEOS (int): A keyword plan campaign contains one or more invalid geo targets. + DUPLICATE_NAME (int): The keyword plan campaign name is duplicate to an existing keyword plan + campaign name or other keyword plan campaign name in the request. + MAX_GEOS_EXCEEDED (int): The number of geo targets in the keyword plan campaign exceeds limits. + MAX_LANGUAGES_EXCEEDED (int): The number of languages in the keyword plan campaign exceeds limits. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_NAME = 2 + INVALID_LANGUAGES = 3 + INVALID_GEOS = 4 + DUPLICATE_NAME = 5 + MAX_GEOS_EXCEEDED = 6 + MAX_LANGUAGES_EXCEEDED = 7 +''' +KeywordPlanCampaignErrorEnum = KeywordPlanCampaignErrorEnum() # For __getattribute__ + + +class KeywordPlanCampaignKeywordErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanCampaignKeywordError = '''\ + class KeywordPlanCampaignKeywordError(enum.IntEnum): + """ + Enum describing possible errors from applying a keyword plan campaign + keyword. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CAMPAIGN_KEYWORD_IS_POSITIVE (int): Keyword plan campaign keyword is positive. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_KEYWORD_IS_POSITIVE = 8 +''' +KeywordPlanCampaignKeywordErrorEnum = KeywordPlanCampaignKeywordErrorEnum() # For __getattribute__ + + +class KeywordPlanCompetitionLevelEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanCompetitionLevel = '''\ + class KeywordPlanCompetitionLevel(enum.IntEnum): + """ + Competition level of a keyword. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + LOW (int): Low competition. The Competition Index range for this is [0, 33]. + MEDIUM (int): Medium competition. The Competition Index range for this is [34, 66]. + HIGH (int): High competition. The Competition Index range for this is [67, 100]. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LOW = 2 + MEDIUM = 3 + HIGH = 4 +''' +KeywordPlanCompetitionLevelEnum = KeywordPlanCompetitionLevelEnum() # For __getattribute__ + + +class KeywordPlanErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanError = '''\ + class KeywordPlanError(enum.IntEnum): + """ + Enum describing possible errors from applying a keyword plan. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BID_MULTIPLIER_OUT_OF_RANGE (int): The plan's bid multiplier value is outside the valid range. + BID_TOO_HIGH (int): The plan's bid value is too high. + BID_TOO_LOW (int): The plan's bid value is too low. + BID_TOO_MANY_FRACTIONAL_DIGITS (int): The plan's cpc bid is not a multiple of the minimum billable unit. + DAILY_BUDGET_TOO_LOW (int): The plan's daily budget value is too low. + DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS (int): The plan's daily budget is not a multiple of the minimum billable unit. + INVALID_VALUE (int): The input has an invalid value. + KEYWORD_PLAN_HAS_NO_KEYWORDS (int): The plan has no keyword. + KEYWORD_PLAN_NOT_ENABLED (int): The plan is not enabled and API cannot provide mutation, forecast or + stats. + KEYWORD_PLAN_NOT_FOUND (int): The requested plan cannot be found for providing forecast or stats. + MISSING_BID (int): The plan is missing a cpc bid. + MISSING_FORECAST_PERIOD (int): The plan is missing required forecast\_period field. + INVALID_FORECAST_DATE_RANGE (int): The plan's forecast\_period has invalid forecast date range. + INVALID_NAME (int): The plan's name is invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BID_MULTIPLIER_OUT_OF_RANGE = 2 + BID_TOO_HIGH = 3 + BID_TOO_LOW = 4 + BID_TOO_MANY_FRACTIONAL_DIGITS = 5 + DAILY_BUDGET_TOO_LOW = 6 + DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS = 7 + INVALID_VALUE = 8 + KEYWORD_PLAN_HAS_NO_KEYWORDS = 9 + KEYWORD_PLAN_NOT_ENABLED = 10 + KEYWORD_PLAN_NOT_FOUND = 11 + MISSING_BID = 13 + MISSING_FORECAST_PERIOD = 14 + INVALID_FORECAST_DATE_RANGE = 15 + INVALID_NAME = 16 +''' +KeywordPlanErrorEnum = KeywordPlanErrorEnum() # For __getattribute__ + + +class KeywordPlanForecastIntervalEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanForecastInterval = '''\ + class KeywordPlanForecastInterval(enum.IntEnum): + """ + Forecast intervals. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + NEXT_WEEK (int): The next week date range for keyword plan. The next week is based + on the default locale of the user's account and is mostly SUN-SAT or + MON-SUN. + This can be different from next-7 days. + NEXT_MONTH (int): The next month date range for keyword plan. + NEXT_QUARTER (int): The next quarter date range for keyword plan. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NEXT_WEEK = 3 + NEXT_MONTH = 4 + NEXT_QUARTER = 5 +''' +KeywordPlanForecastIntervalEnum = KeywordPlanForecastIntervalEnum() # For __getattribute__ + + +class KeywordPlanIdeaErrorEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanIdeaError = '''\ + class KeywordPlanIdeaError(enum.IntEnum): + """ + Enum describing possible errors from KeywordPlanIdeaService. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + URL_CRAWL_ERROR (int): Error when crawling the input URL. + INVALID_VALUE (int): The input has an invalid value. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + URL_CRAWL_ERROR = 2 + INVALID_VALUE = 3 +''' +KeywordPlanIdeaErrorEnum = KeywordPlanIdeaErrorEnum() # For __getattribute__ + + +class KeywordPlanNetworkEnum(_CreateEnumTypeUponFirstAccess): + KeywordPlanNetwork = '''\ + class KeywordPlanNetwork(enum.IntEnum): + """ + Enumerates keyword plan forecastable network types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + GOOGLE_SEARCH (int): Google Search. + GOOGLE_SEARCH_AND_PARTNERS (int): Google Search + Search partners. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + GOOGLE_SEARCH = 2 + GOOGLE_SEARCH_AND_PARTNERS = 3 +''' +KeywordPlanNetworkEnum = KeywordPlanNetworkEnum() # For __getattribute__ + + +class LabelErrorEnum(_CreateEnumTypeUponFirstAccess): + LabelError = '''\ + class LabelError(enum.IntEnum): + """ + Enum describing possible label errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_APPLY_INACTIVE_LABEL (int): An inactive label cannot be applied. + CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION (int): A label cannot be applied to a disabled ad group criterion. + CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION (int): A label cannot be applied to a negative ad group criterion. + EXCEEDED_LABEL_LIMIT_PER_TYPE (int): Cannot apply more than 50 labels per resource. + INVALID_RESOURCE_FOR_MANAGER_LABEL (int): Labels from a manager account cannot be applied to campaign, ad group, + ad group ad, or ad group criterion resources. + DUPLICATE_NAME (int): Label names must be unique. + INVALID_LABEL_NAME (int): Label names cannot be empty. + CANNOT_ATTACH_LABEL_TO_DRAFT (int): Labels cannot be applied to a draft. + CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER (int): Labels not from a manager account cannot be applied to the customer + resource. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_APPLY_INACTIVE_LABEL = 2 + CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION = 3 + CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION = 4 + EXCEEDED_LABEL_LIMIT_PER_TYPE = 5 + INVALID_RESOURCE_FOR_MANAGER_LABEL = 6 + DUPLICATE_NAME = 7 + INVALID_LABEL_NAME = 8 + CANNOT_ATTACH_LABEL_TO_DRAFT = 9 + CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER = 10 +''' +LabelErrorEnum = LabelErrorEnum() # For __getattribute__ + + +class LabelStatusEnum(_CreateEnumTypeUponFirstAccess): + LabelStatus = '''\ + class LabelStatus(enum.IntEnum): + """ + Possible statuses of a label. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Label is enabled. + REMOVED (int): Label is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +LabelStatusEnum = LabelStatusEnum() # For __getattribute__ + + +class LanguageCodeErrorEnum(_CreateEnumTypeUponFirstAccess): + LanguageCodeError = '''\ + class LanguageCodeError(enum.IntEnum): + """ + Enum describing language code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + LANGUAGE_CODE_NOT_FOUND (int): The input language code is not recognized. + INVALID_LANGUAGE_CODE (int): The language is not allowed to use. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LANGUAGE_CODE_NOT_FOUND = 2 + INVALID_LANGUAGE_CODE = 3 +''' +LanguageCodeErrorEnum = LanguageCodeErrorEnum() # For __getattribute__ + + +class LegacyAppInstallAdAppStoreEnum(_CreateEnumTypeUponFirstAccess): + LegacyAppInstallAdAppStore = '''\ + class LegacyAppInstallAdAppStore(enum.IntEnum): + """ + App store type in a legacy app install ad. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + APPLE_APP_STORE (int): Apple iTunes. + GOOGLE_PLAY (int): Google Play. + WINDOWS_STORE (int): Windows Store. + WINDOWS_PHONE_STORE (int): Windows Phone Store. + CN_APP_STORE (int): The app is hosted in a Chinese app store. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPLE_APP_STORE = 2 + GOOGLE_PLAY = 3 + WINDOWS_STORE = 4 + WINDOWS_PHONE_STORE = 5 + CN_APP_STORE = 6 +''' +LegacyAppInstallAdAppStoreEnum = LegacyAppInstallAdAppStoreEnum() # For __getattribute__ + + +class LinkedAccountTypeEnum(_CreateEnumTypeUponFirstAccess): + LinkedAccountType = '''\ + class LinkedAccountType(enum.IntEnum): + """ + Describes the possible link types between a Google Ads customer + and another account. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + THIRD_PARTY_APP_ANALYTICS (int): A link to provide third party app analytics data. + DATA_PARTNER (int): A link to Data partner. + GOOGLE_ADS (int): A link to Google Ads. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + THIRD_PARTY_APP_ANALYTICS = 2 + DATA_PARTNER = 3 + GOOGLE_ADS = 4 +''' +LinkedAccountTypeEnum = LinkedAccountTypeEnum() # For __getattribute__ + + +class ListOperationErrorEnum(_CreateEnumTypeUponFirstAccess): + ListOperationError = '''\ + class ListOperationError(enum.IntEnum): + """ + Enum describing possible list operation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + REQUIRED_FIELD_MISSING (int): Field required in value is missing. + DUPLICATE_VALUES (int): Duplicate or identical value is sent in multiple list operations. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUIRED_FIELD_MISSING = 7 + DUPLICATE_VALUES = 8 +''' +ListOperationErrorEnum = ListOperationErrorEnum() # For __getattribute__ + + +class ListingGroupTypeEnum(_CreateEnumTypeUponFirstAccess): + ListingGroupType = '''\ + class ListingGroupType(enum.IntEnum): + """ + The type of the listing group. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SUBDIVISION (int): Subdivision of products along some listing dimension. These nodes + are not used by serving to target listing entries, but is purely + to define the structure of the tree. + UNIT (int): Listing group unit that defines a bid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SUBDIVISION = 2 + UNIT = 3 +''' +ListingGroupTypeEnum = ListingGroupTypeEnum() # For __getattribute__ + + +class LocalPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + LocalPlaceholderField = '''\ + class LocalPlaceholderField(enum.IntEnum): + """ + Possible values for Local placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DEAL_ID (int): Data Type: STRING. Required. Unique ID. + DEAL_NAME (int): Data Type: STRING. Required. Main headline with local deal title to be + shown in dynamic ad. + SUBTITLE (int): Data Type: STRING. Local deal subtitle to be shown in dynamic ad. + DESCRIPTION (int): Data Type: STRING. Description of local deal to be shown in dynamic ad. + PRICE (int): Data Type: STRING. Price to be shown in the ad. Highly recommended for + dynamic ads. Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + SALE_PRICE (int): Data Type: STRING. Sale price to be shown in the ad. + Example: "80.00 USD" + FORMATTED_SALE_PRICE (int): Data Type: STRING. Formatted sale price to be shown in the ad. + Example: "On sale for $80.00", "$60 - $80" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. + ADDRESS (int): Data Type: STRING. Complete property address, including postal code. + CATEGORY (int): Data Type: STRING. Category of local deal used to group like items + together for recommendation engine. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + FINAL_URLS (int): Data Type: URL\_LIST. Required. Final URLs to be used in ad when using + Upgraded URLs; the more specific the better (e.g. the individual URL of + a specific local deal and its location). + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_DEAL_IDS (int): Data Type: STRING\_LIST. List of recommended local deal IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DEAL_ID = 2 + DEAL_NAME = 3 + SUBTITLE = 4 + DESCRIPTION = 5 + PRICE = 6 + FORMATTED_PRICE = 7 + SALE_PRICE = 8 + FORMATTED_SALE_PRICE = 9 + IMAGE_URL = 10 + ADDRESS = 11 + CATEGORY = 12 + CONTEXTUAL_KEYWORDS = 13 + FINAL_URLS = 14 + FINAL_MOBILE_URLS = 15 + TRACKING_URL = 16 + ANDROID_APP_LINK = 17 + SIMILAR_DEAL_IDS = 18 + IOS_APP_LINK = 19 + IOS_APP_STORE_ID = 20 +''' +LocalPlaceholderFieldEnum = LocalPlaceholderFieldEnum() # For __getattribute__ + + +class LocationExtensionTargetingCriterionFieldEnum(_CreateEnumTypeUponFirstAccess): + LocationExtensionTargetingCriterionField = '''\ + class LocationExtensionTargetingCriterionField(enum.IntEnum): + """ + Possible values for Location Extension Targeting criterion fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADDRESS_LINE_1 (int): Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_2 (int): Data Type: STRING. Line 2 of the business address. + CITY (int): Data Type: STRING. City of the business address. + PROVINCE (int): Data Type: STRING. Province of the business address. + POSTAL_CODE (int): Data Type: STRING. Postal code of the business address. + COUNTRY_CODE (int): Data Type: STRING. Country code of the business address. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADDRESS_LINE_1 = 2 + ADDRESS_LINE_2 = 3 + CITY = 4 + PROVINCE = 5 + POSTAL_CODE = 6 + COUNTRY_CODE = 7 +''' +LocationExtensionTargetingCriterionFieldEnum = LocationExtensionTargetingCriterionFieldEnum() # For __getattribute__ + + +class LocationGroupRadiusUnitsEnum(_CreateEnumTypeUponFirstAccess): + LocationGroupRadiusUnits = '''\ + class LocationGroupRadiusUnits(enum.IntEnum): + """ + The unit of radius distance in location group (e.g. MILES) + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + METERS (int): Meters + MILES (int): Miles + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + METERS = 2 + MILES = 3 +''' +LocationGroupRadiusUnitsEnum = LocationGroupRadiusUnitsEnum() # For __getattribute__ + + +class LocationPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + LocationPlaceholderField = '''\ + class LocationPlaceholderField(enum.IntEnum): + """ + Possible values for Location placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BUSINESS_NAME (int): Data Type: STRING. The name of the business. + ADDRESS_LINE_1 (int): Data Type: STRING. Line 1 of the business address. + ADDRESS_LINE_2 (int): Data Type: STRING. Line 2 of the business address. + CITY (int): Data Type: STRING. City of the business address. + PROVINCE (int): Data Type: STRING. Province of the business address. + POSTAL_CODE (int): Data Type: STRING. Postal code of the business address. + COUNTRY_CODE (int): Data Type: STRING. Country code of the business address. + PHONE_NUMBER (int): Data Type: STRING. Phone number of the business. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BUSINESS_NAME = 2 + ADDRESS_LINE_1 = 3 + ADDRESS_LINE_2 = 4 + CITY = 5 + PROVINCE = 6 + POSTAL_CODE = 7 + COUNTRY_CODE = 8 + PHONE_NUMBER = 9 +''' +LocationPlaceholderFieldEnum = LocationPlaceholderFieldEnum() # For __getattribute__ + + +class LocationSourceTypeEnum(_CreateEnumTypeUponFirstAccess): + LocationSourceType = '''\ + class LocationSourceType(enum.IntEnum): + """ + The possible types of a location source. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + GOOGLE_MY_BUSINESS (int): Locations associated with the customer's linked Google My Business + account. + AFFILIATE (int): Affiliate (chain) store locations. For example, Best Buy store locations. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + GOOGLE_MY_BUSINESS = 2 + AFFILIATE = 3 +''' +LocationSourceTypeEnum = LocationSourceTypeEnum() # For __getattribute__ + + +class ManagerLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + ManagerLinkError = '''\ + class ManagerLinkError(enum.IntEnum): + """ + Enum describing possible ManagerLink errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING (int): The manager and client have incompatible account types. + TOO_MANY_MANAGERS (int): Client is already linked to too many managers. + TOO_MANY_INVITES (int): Manager has too many pending invitations. + ALREADY_INVITED_BY_THIS_MANAGER (int): Client is already invited by this manager. + ALREADY_MANAGED_BY_THIS_MANAGER (int): The client is already managed by this manager. + ALREADY_MANAGED_IN_HIERARCHY (int): Client is already managed in hierarchy. + DUPLICATE_CHILD_FOUND (int): Manger and sub-manager to be linked have duplicate client. + CLIENT_HAS_NO_ADMIN_USER (int): Client has no active user that can access the client account. + MAX_DEPTH_EXCEEDED (int): Adding this link would exceed the maximum hierarchy depth. + CYCLE_NOT_ALLOWED (int): Adding this link will create a cycle. + TOO_MANY_ACCOUNTS (int): Manager account has the maximum number of linked clients. + TOO_MANY_ACCOUNTS_AT_MANAGER (int): Parent manager account has the maximum number of linked clients. + NON_OWNER_USER_CANNOT_MODIFY_LINK (int): The account is not authorized owner. + SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS (int): Your manager account is suspended, and you are no longer allowed to link + to clients. + CLIENT_OUTSIDE_TREE (int): You are not allowed to move a client to a manager that is not under your + current hierarchy. + INVALID_STATUS_CHANGE (int): The changed status for mutate link is invalid. + INVALID_CHANGE (int): The change for mutate link is invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING = 2 + TOO_MANY_MANAGERS = 3 + TOO_MANY_INVITES = 4 + ALREADY_INVITED_BY_THIS_MANAGER = 5 + ALREADY_MANAGED_BY_THIS_MANAGER = 6 + ALREADY_MANAGED_IN_HIERARCHY = 7 + DUPLICATE_CHILD_FOUND = 8 + CLIENT_HAS_NO_ADMIN_USER = 9 + MAX_DEPTH_EXCEEDED = 10 + CYCLE_NOT_ALLOWED = 11 + TOO_MANY_ACCOUNTS = 12 + TOO_MANY_ACCOUNTS_AT_MANAGER = 13 + NON_OWNER_USER_CANNOT_MODIFY_LINK = 14 + SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS = 15 + CLIENT_OUTSIDE_TREE = 16 + INVALID_STATUS_CHANGE = 17 + INVALID_CHANGE = 18 +''' +ManagerLinkErrorEnum = ManagerLinkErrorEnum() # For __getattribute__ + + +class ManagerLinkStatusEnum(_CreateEnumTypeUponFirstAccess): + ManagerLinkStatus = '''\ + class ManagerLinkStatus(enum.IntEnum): + """ + Possible statuses of a link. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ACTIVE (int): Indicates current in-effect relationship + INACTIVE (int): Indicates terminated relationship + PENDING (int): Indicates relationship has been requested by manager, but the client + hasn't accepted yet. + REFUSED (int): Relationship was requested by the manager, but the client has refused. + CANCELED (int): Indicates relationship has been requested by manager, but manager + canceled it. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACTIVE = 2 + INACTIVE = 3 + PENDING = 4 + REFUSED = 5 + CANCELED = 6 +''' +ManagerLinkStatusEnum = ManagerLinkStatusEnum() # For __getattribute__ + + +class MatchingFunctionContextTypeEnum(_CreateEnumTypeUponFirstAccess): + MatchingFunctionContextType = '''\ + class MatchingFunctionContextType(enum.IntEnum): + """ + Possible context types for an operand in a matching function. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + FEED_ITEM_ID (int): Feed item id in the request context. + DEVICE_NAME (int): The device being used (possible values are 'Desktop' or 'Mobile'). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FEED_ITEM_ID = 2 + DEVICE_NAME = 3 +''' +MatchingFunctionContextTypeEnum = MatchingFunctionContextTypeEnum() # For __getattribute__ + + +class MatchingFunctionOperatorEnum(_CreateEnumTypeUponFirstAccess): + MatchingFunctionOperator = '''\ + class MatchingFunctionOperator(enum.IntEnum): + """ + Possible operators in a matching function. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + IN (int): The IN operator. + IDENTITY (int): The IDENTITY operator. + EQUALS (int): The EQUALS operator + AND (int): Operator that takes two or more operands that are of type + FunctionOperand and checks that all the operands evaluate to true. For + functions related to ad formats, all the operands must be in + left\_operands. + CONTAINS_ANY (int): Operator that returns true if the elements in left\_operands contain any + of the elements in right\_operands. Otherwise, return false. The + right\_operands must contain at least 1 and no more than 3 + ConstantOperands. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IN = 2 + IDENTITY = 3 + EQUALS = 4 + AND = 5 + CONTAINS_ANY = 6 +''' +MatchingFunctionOperatorEnum = MatchingFunctionOperatorEnum() # For __getattribute__ + + +class MediaBundleErrorEnum(_CreateEnumTypeUponFirstAccess): + MediaBundleError = '''\ + class MediaBundleError(enum.IntEnum): + """ + Enum describing possible media bundle errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BAD_REQUEST (int): There was a problem with the request. + DOUBLECLICK_BUNDLE_NOT_ALLOWED (int): HTML5 ads using DoubleClick Studio created ZIP files are not supported. + EXTERNAL_URL_NOT_ALLOWED (int): Cannot reference URL external to the media bundle. + FILE_TOO_LARGE (int): Media bundle file is too large. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED (int): ZIP file from Google Web Designer is not published. + INVALID_INPUT (int): Input was invalid. + INVALID_MEDIA_BUNDLE (int): There was a problem with the media bundle. + INVALID_MEDIA_BUNDLE_ENTRY (int): There was a problem with one or more of the media bundle entries. + INVALID_MIME_TYPE (int): The media bundle contains a file with an unknown mime type + INVALID_PATH (int): The media bundle contain an invalid asset path. + INVALID_URL_REFERENCE (int): HTML5 ad is trying to reference an asset not in .ZIP file + MEDIA_DATA_TOO_LARGE (int): Media data is too large. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY (int): The media bundle contains no primary entry. + SERVER_ERROR (int): There was an error on the server. + STORAGE_ERROR (int): The image could not be stored. + SWIFFY_BUNDLE_NOT_ALLOWED (int): Media bundle created with the Swiffy tool is not allowed. + TOO_MANY_FILES (int): The media bundle contains too many files. + UNEXPECTED_SIZE (int): The media bundle is not of legal dimensions. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT (int): Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_HTML5_FEATURE (int): Unsupported HTML5 feature in HTML5 asset. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT (int): URL in HTML5 entry is not ssl compliant. + CUSTOM_EXIT_NOT_ALLOWED (int): Custom exits not allowed in HTML5 entry. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BAD_REQUEST = 3 + DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4 + EXTERNAL_URL_NOT_ALLOWED = 5 + FILE_TOO_LARGE = 6 + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7 + INVALID_INPUT = 8 + INVALID_MEDIA_BUNDLE = 9 + INVALID_MEDIA_BUNDLE_ENTRY = 10 + INVALID_MIME_TYPE = 11 + INVALID_PATH = 12 + INVALID_URL_REFERENCE = 13 + MEDIA_DATA_TOO_LARGE = 14 + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15 + SERVER_ERROR = 16 + STORAGE_ERROR = 17 + SWIFFY_BUNDLE_NOT_ALLOWED = 18 + TOO_MANY_FILES = 19 + UNEXPECTED_SIZE = 20 + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21 + UNSUPPORTED_HTML5_FEATURE = 22 + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23 + CUSTOM_EXIT_NOT_ALLOWED = 24 +''' +MediaBundleErrorEnum = MediaBundleErrorEnum() # For __getattribute__ + + +class MediaFileErrorEnum(_CreateEnumTypeUponFirstAccess): + MediaFileError = '''\ + class MediaFileError(enum.IntEnum): + """ + Enum describing possible media file errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_CREATE_STANDARD_ICON (int): Cannot create a standard icon type. + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES (int): May only select Standard Icons alone. + CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA (int): Image contains both a media file ID and data. + DUPLICATE_MEDIA (int): A media file with given type and reference ID already exists. + EMPTY_FIELD (int): A required field was not specified or is an empty string. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS (int): A media file may only be modified once per call. + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE (int): Field is not supported for the media sub type. + INVALID_MEDIA_FILE_ID (int): The media file ID is invalid. + INVALID_MEDIA_SUB_TYPE (int): The media subtype is invalid. + INVALID_MEDIA_FILE_TYPE (int): The media file type is invalid. + INVALID_MIME_TYPE (int): The mimetype is invalid. + INVALID_REFERENCE_ID (int): The media reference ID is invalid. + INVALID_YOU_TUBE_ID (int): The YouTube video ID is invalid. + MEDIA_FILE_FAILED_TRANSCODING (int): Media file has failed transcoding + MEDIA_NOT_TRANSCODED (int): Media file has not been transcoded. + MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE (int): The media type does not match the actual media file's type. + NO_FIELDS_SPECIFIED (int): None of the fields have been specified. + NULL_REFERENCE_ID_AND_MEDIA_ID (int): One of reference ID or media file ID must be specified. + TOO_LONG (int): The string has too many characters. + UNSUPPORTED_TYPE (int): The specified type is not supported. + YOU_TUBE_SERVICE_UNAVAILABLE (int): YouTube is unavailable for requesting video data. + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION (int): The YouTube video has a non positive duration. + YOU_TUBE_VIDEO_NOT_FOUND (int): The YouTube video ID is syntactically valid but the video was not found. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_CREATE_STANDARD_ICON = 2 + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3 + CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA = 4 + DUPLICATE_MEDIA = 5 + EMPTY_FIELD = 6 + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7 + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8 + INVALID_MEDIA_FILE_ID = 9 + INVALID_MEDIA_SUB_TYPE = 10 + INVALID_MEDIA_FILE_TYPE = 11 + INVALID_MIME_TYPE = 12 + INVALID_REFERENCE_ID = 13 + INVALID_YOU_TUBE_ID = 14 + MEDIA_FILE_FAILED_TRANSCODING = 15 + MEDIA_NOT_TRANSCODED = 16 + MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE = 17 + NO_FIELDS_SPECIFIED = 18 + NULL_REFERENCE_ID_AND_MEDIA_ID = 19 + TOO_LONG = 20 + UNSUPPORTED_TYPE = 21 + YOU_TUBE_SERVICE_UNAVAILABLE = 22 + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 23 + YOU_TUBE_VIDEO_NOT_FOUND = 24 +''' +MediaFileErrorEnum = MediaFileErrorEnum() # For __getattribute__ + + +class MediaTypeEnum(_CreateEnumTypeUponFirstAccess): + MediaType = '''\ + class MediaType(enum.IntEnum): + """ + The type of media. + + Attributes: + UNSPECIFIED (int): The media type has not been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + IMAGE (int): Static image, used for image ad. + ICON (int): Small image, used for map ad. + MEDIA_BUNDLE (int): ZIP file, used in fields of template ads. + AUDIO (int): Audio file. + VIDEO (int): Video file. + DYNAMIC_IMAGE (int): Animated image, such as animated GIF. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IMAGE = 2 + ICON = 3 + MEDIA_BUNDLE = 4 + AUDIO = 5 + VIDEO = 6 + DYNAMIC_IMAGE = 7 +''' +MediaTypeEnum = MediaTypeEnum() # For __getattribute__ + + +class MediaUploadErrorEnum(_CreateEnumTypeUponFirstAccess): + MediaUploadError = '''\ + class MediaUploadError(enum.IntEnum): + """ + Enum describing possible media uploading errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FILE_TOO_BIG (int): The uploaded file is too big. + UNPARSEABLE_IMAGE (int): Image data is unparseable. + ANIMATED_IMAGE_NOT_ALLOWED (int): Animated images are not allowed. + FORMAT_NOT_ALLOWED (int): The image or media bundle format is not allowed. + EXTERNAL_URL_NOT_ALLOWED (int): Cannot reference URL external to the media bundle. + INVALID_URL_REFERENCE (int): HTML5 ad is trying to reference an asset not in .ZIP file. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY (int): The media bundle contains no primary entry. + ANIMATED_VISUAL_EFFECT (int): Animation has disallowed visual effects. + ANIMATION_TOO_LONG (int): Animation longer than the allowed 30 second limit. + ASPECT_RATIO_NOT_ALLOWED (int): The aspect ratio of the image does not match the expected aspect ratios + provided in the asset spec. + AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE (int): Audio files are not allowed in bundle. + CMYK_JPEG_NOT_ALLOWED (int): CMYK jpegs are not supported. + FLASH_NOT_ALLOWED (int): Flash movies are not allowed. + FRAME_RATE_TOO_HIGH (int): The frame rate of the video is higher than the allowed 5fps. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED (int): ZIP file from Google Web Designer is not published. + IMAGE_CONSTRAINTS_VIOLATED (int): Image constraints are violated, but more details (like + DIMENSIONS\_NOT\_ALLOWED or ASPECT\_RATIO\_NOT\_ALLOWED) can not be + provided. This happens when asset spec contains more than one constraint + and criteria of different constraints are violated. + INVALID_MEDIA_BUNDLE (int): Media bundle data is unrecognizable. + INVALID_MEDIA_BUNDLE_ENTRY (int): There was a problem with one or more of the media bundle entries. + INVALID_MIME_TYPE (int): The asset has an invalid mime type. + INVALID_PATH (int): The media bundle contains an invalid asset path. + LAYOUT_PROBLEM (int): Image has layout problem. + MALFORMED_URL (int): An asset had a URL reference that is malformed per RFC 1738 convention. + MEDIA_BUNDLE_NOT_ALLOWED (int): The uploaded media bundle format is not allowed. + MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE (int): The media bundle is not compatible with the asset spec product type. + (E.g. Gmail, dynamic remarketing, etc.) + MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS (int): A bundle being uploaded that is incompatible with multiple assets for + different reasons. + TOO_MANY_FILES_IN_MEDIA_BUNDLE (int): The media bundle contains too many files. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT (int): Google Web Designer not created for "Google Ads" environment. + UNSUPPORTED_HTML5_FEATURE (int): Unsupported HTML5 feature in HTML5 asset. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT (int): URL in HTML5 entry is not SSL compliant. + VIDEO_FILE_NAME_TOO_LONG (int): Video file name is longer than the 50 allowed characters. + VIDEO_MULTIPLE_FILES_WITH_SAME_NAME (int): Multiple videos with same name in a bundle. + VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE (int): Videos are not allowed in media bundle. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FILE_TOO_BIG = 2 + UNPARSEABLE_IMAGE = 3 + ANIMATED_IMAGE_NOT_ALLOWED = 4 + FORMAT_NOT_ALLOWED = 5 + EXTERNAL_URL_NOT_ALLOWED = 6 + INVALID_URL_REFERENCE = 7 + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 8 + ANIMATED_VISUAL_EFFECT = 9 + ANIMATION_TOO_LONG = 10 + ASPECT_RATIO_NOT_ALLOWED = 11 + AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 12 + CMYK_JPEG_NOT_ALLOWED = 13 + FLASH_NOT_ALLOWED = 14 + FRAME_RATE_TOO_HIGH = 15 + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 16 + IMAGE_CONSTRAINTS_VIOLATED = 17 + INVALID_MEDIA_BUNDLE = 18 + INVALID_MEDIA_BUNDLE_ENTRY = 19 + INVALID_MIME_TYPE = 20 + INVALID_PATH = 21 + LAYOUT_PROBLEM = 22 + MALFORMED_URL = 23 + MEDIA_BUNDLE_NOT_ALLOWED = 24 + MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE = 25 + MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS = 26 + TOO_MANY_FILES_IN_MEDIA_BUNDLE = 27 + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 28 + UNSUPPORTED_HTML5_FEATURE = 29 + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 30 + VIDEO_FILE_NAME_TOO_LONG = 31 + VIDEO_MULTIPLE_FILES_WITH_SAME_NAME = 32 + VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE = 33 +''' +MediaUploadErrorEnum = MediaUploadErrorEnum() # For __getattribute__ + + +class MerchantCenterLinkStatusEnum(_CreateEnumTypeUponFirstAccess): + MerchantCenterLinkStatus = '''\ + class MerchantCenterLinkStatus(enum.IntEnum): + """ + Describes the possible statuses for a link between a Google Ads customer + and a Google Merchant Center account. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The link is enabled. + PENDING (int): The link has no effect. It was proposed by the Merchant Center Account + owner and hasn't been confirmed by the customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PENDING = 3 +''' +MerchantCenterLinkStatusEnum = MerchantCenterLinkStatusEnum() # For __getattribute__ + + +class MessagePlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + MessagePlaceholderField = '''\ + class MessagePlaceholderField(enum.IntEnum): + """ + Possible values for Message placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BUSINESS_NAME (int): Data Type: STRING. The name of your business. + COUNTRY_CODE (int): Data Type: STRING. Country code of phone number. + PHONE_NUMBER (int): Data Type: STRING. A phone number that's capable of sending and receiving + text messages. + MESSAGE_EXTENSION_TEXT (int): Data Type: STRING. The text that will go in your click-to-message ad. + MESSAGE_TEXT (int): Data Type: STRING. The message text automatically shows in people's + messaging apps when they tap to send you a message. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BUSINESS_NAME = 2 + COUNTRY_CODE = 3 + PHONE_NUMBER = 4 + MESSAGE_EXTENSION_TEXT = 5 + MESSAGE_TEXT = 6 +''' +MessagePlaceholderFieldEnum = MessagePlaceholderFieldEnum() # For __getattribute__ + + +class MimeTypeEnum(_CreateEnumTypeUponFirstAccess): + MimeType = '''\ + class MimeType(enum.IntEnum): + """ + The mime type + + Attributes: + UNSPECIFIED (int): The mime type has not been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + IMAGE_JPEG (int): MIME type of image/jpeg. + IMAGE_GIF (int): MIME type of image/gif. + IMAGE_PNG (int): MIME type of image/png. + FLASH (int): MIME type of application/x-shockwave-flash. + TEXT_HTML (int): MIME type of text/html. + PDF (int): MIME type of application/pdf. + MSWORD (int): MIME type of application/msword. + MSEXCEL (int): MIME type of application/vnd.ms-excel. + RTF (int): MIME type of application/rtf. + AUDIO_WAV (int): MIME type of audio/wav. + AUDIO_MP3 (int): MIME type of audio/mp3. + HTML5_AD_ZIP (int): MIME type of application/x-html5-ad-zip. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + IMAGE_JPEG = 2 + IMAGE_GIF = 3 + IMAGE_PNG = 4 + FLASH = 5 + TEXT_HTML = 6 + PDF = 7 + MSWORD = 8 + MSEXCEL = 9 + RTF = 10 + AUDIO_WAV = 11 + AUDIO_MP3 = 12 + HTML5_AD_ZIP = 13 +''' +MimeTypeEnum = MimeTypeEnum() # For __getattribute__ + + +class MinuteOfHourEnum(_CreateEnumTypeUponFirstAccess): + MinuteOfHour = '''\ + class MinuteOfHour(enum.IntEnum): + """ + Enumerates of quarter-hours. E.g. "FIFTEEN" + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + ZERO (int): Zero minutes past the hour. + FIFTEEN (int): Fifteen minutes past the hour. + THIRTY (int): Thirty minutes past the hour. + FORTY_FIVE (int): Forty-five minutes past the hour. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ZERO = 2 + FIFTEEN = 3 + THIRTY = 4 + FORTY_FIVE = 5 +''' +MinuteOfHourEnum = MinuteOfHourEnum() # For __getattribute__ + + +class MobileAppVendorEnum(_CreateEnumTypeUponFirstAccess): + MobileAppVendor = '''\ + class MobileAppVendor(enum.IntEnum): + """ + The type of mobile app vendor + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + APPLE_APP_STORE (int): Mobile app vendor for Apple app store. + GOOGLE_APP_STORE (int): Mobile app vendor for Google app store. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + APPLE_APP_STORE = 2 + GOOGLE_APP_STORE = 3 +''' +MobileAppVendorEnum = MobileAppVendorEnum() # For __getattribute__ + + +class MobileDeviceTypeEnum(_CreateEnumTypeUponFirstAccess): + MobileDeviceType = '''\ + class MobileDeviceType(enum.IntEnum): + """ + The type of mobile device. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + MOBILE (int): Mobile phones. + TABLET (int): Tablets. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MOBILE = 2 + TABLET = 3 +''' +MobileDeviceTypeEnum = MobileDeviceTypeEnum() # For __getattribute__ + + +class MonthOfYearEnum(_CreateEnumTypeUponFirstAccess): + MonthOfYear = '''\ + class MonthOfYear(enum.IntEnum): + """ + Enumerates months of the year, e.g., "January". + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + JANUARY (int): January. + FEBRUARY (int): February. + MARCH (int): March. + APRIL (int): April. + MAY (int): May. + JUNE (int): June. + JULY (int): July. + AUGUST (int): August. + SEPTEMBER (int): September. + OCTOBER (int): October. + NOVEMBER (int): November. + DECEMBER (int): December. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + JANUARY = 2 + FEBRUARY = 3 + MARCH = 4 + APRIL = 5 + MAY = 6 + JUNE = 7 + JULY = 8 + AUGUST = 9 + SEPTEMBER = 10 + OCTOBER = 11 + NOVEMBER = 12 + DECEMBER = 13 +''' +MonthOfYearEnum = MonthOfYearEnum() # For __getattribute__ + + +class MultiplierErrorEnum(_CreateEnumTypeUponFirstAccess): + MultiplierError = '''\ + class MultiplierError(enum.IntEnum): + """ + Enum describing possible multiplier errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + MULTIPLIER_TOO_HIGH (int): Multiplier value is too high + MULTIPLIER_TOO_LOW (int): Multiplier value is too low + TOO_MANY_FRACTIONAL_DIGITS (int): Too many fractional digits + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY (int): A multiplier cannot be set for this bidding strategy + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING (int): A multiplier cannot be set when there is no base bid (e.g., content max + cpc) + NO_MULTIPLIER_SPECIFIED (int): A bid multiplier must be specified + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET (int): Multiplier causes bid to exceed daily budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET (int): Multiplier causes bid to exceed monthly budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET (int): Multiplier causes bid to exceed custom budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID (int): Multiplier causes bid to exceed maximum allowed bid + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER (int): Multiplier causes bid to become less than the minimum bid allowed + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH (int): Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MULTIPLIER_TOO_HIGH = 2 + MULTIPLIER_TOO_LOW = 3 + TOO_MANY_FRACTIONAL_DIGITS = 4 + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5 + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6 + NO_MULTIPLIER_SPECIFIED = 7 + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8 + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9 + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10 + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11 + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12 + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13 +''' +MultiplierErrorEnum = MultiplierErrorEnum() # For __getattribute__ + + +class MutateErrorEnum(_CreateEnumTypeUponFirstAccess): + MutateError = '''\ + class MutateError(enum.IntEnum): + """ + Enum describing possible mutate errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_NOT_FOUND (int): Requested resource was not found. + ID_EXISTS_IN_MULTIPLE_MUTATES (int): Cannot mutate the same resource twice in one request. + INCONSISTENT_FIELD_VALUES (int): The field's contents don't match another field that represents the same + data. + MUTATE_NOT_ALLOWED (int): Mutates are not allowed for the requested resource. + RESOURCE_NOT_IN_GOOGLE_ADS (int): The resource isn't in Google Ads. It belongs to another ads system. + RESOURCE_ALREADY_EXISTS (int): The resource being created already exists. + RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY (int): This resource cannot be used with "validate\_only". + RESOURCE_READ_ONLY (int): Attempt to write to read-only fields. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_NOT_FOUND = 3 + ID_EXISTS_IN_MULTIPLE_MUTATES = 7 + INCONSISTENT_FIELD_VALUES = 8 + MUTATE_NOT_ALLOWED = 9 + RESOURCE_NOT_IN_GOOGLE_ADS = 10 + RESOURCE_ALREADY_EXISTS = 11 + RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY = 12 + RESOURCE_READ_ONLY = 13 +''' +MutateErrorEnum = MutateErrorEnum() # For __getattribute__ + + +class NegativeGeoTargetTypeEnum(_CreateEnumTypeUponFirstAccess): + NegativeGeoTargetType = '''\ + class NegativeGeoTargetType(enum.IntEnum): + """ + The possible negative geo target types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + PRESENCE_OR_INTEREST (int): Specifies that a user is excluded from seeing the ad if they + are in, or show interest in, advertiser's excluded locations. + PRESENCE (int): Specifies that a user is excluded from seeing the ad if they + are in advertiser's excluded locations. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PRESENCE_OR_INTEREST = 4 + PRESENCE = 5 +''' +NegativeGeoTargetTypeEnum = NegativeGeoTargetTypeEnum() # For __getattribute__ + + +class NewResourceCreationErrorEnum(_CreateEnumTypeUponFirstAccess): + NewResourceCreationError = '''\ + class NewResourceCreationError(enum.IntEnum): + """ + Enum describing possible new resource creation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_SET_ID_FOR_CREATE (int): Do not set the id field while creating new resources. + DUPLICATE_TEMP_IDS (int): Creating more than one resource with the same temp ID is not allowed. + TEMP_ID_RESOURCE_HAD_ERRORS (int): Parent resource with specified temp ID failed validation, so no + validation will be done for this child resource. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_SET_ID_FOR_CREATE = 2 + DUPLICATE_TEMP_IDS = 3 + TEMP_ID_RESOURCE_HAD_ERRORS = 4 +''' +NewResourceCreationErrorEnum = NewResourceCreationErrorEnum() # For __getattribute__ + + +class NotAllowlistedErrorEnum(_CreateEnumTypeUponFirstAccess): + NotAllowlistedError = '''\ + class NotAllowlistedError(enum.IntEnum): + """ + Enum describing possible not allowlisted errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE (int): Customer is not allowlisted for accessing this feature. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE = 2 +''' +NotAllowlistedErrorEnum = NotAllowlistedErrorEnum() # For __getattribute__ + + +class NotEmptyErrorEnum(_CreateEnumTypeUponFirstAccess): + NotEmptyError = '''\ + class NotEmptyError(enum.IntEnum): + """ + Enum describing possible not empty errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + EMPTY_LIST (int): Empty list. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EMPTY_LIST = 2 +''' +NotEmptyErrorEnum = NotEmptyErrorEnum() # For __getattribute__ + + +class NullErrorEnum(_CreateEnumTypeUponFirstAccess): + NullError = '''\ + class NullError(enum.IntEnum): + """ + Enum describing possible null errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NULL_CONTENT (int): Specified list/container must not contain any null elements + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NULL_CONTENT = 2 +''' +NullErrorEnum = NullErrorEnum() # For __getattribute__ + + +class OfflineUserDataJobErrorEnum(_CreateEnumTypeUponFirstAccess): + OfflineUserDataJobError = '''\ + class OfflineUserDataJobError(enum.IntEnum): + """ + Enum describing possible request errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_USER_LIST_ID (int): The user list ID provided for the job is invalid. + INVALID_USER_LIST_TYPE (int): Type of the user list is not applicable for the job. + NOT_ON_ALLOWLIST_FOR_USER_ID (int): Customer is not allowisted for using user ID in upload data. + INCOMPATIBLE_UPLOAD_KEY_TYPE (int): Upload data is not compatible with the upload key type of the associated + user list. + MISSING_USER_IDENTIFIER (int): The user identifier is missing valid data. + INVALID_MOBILE_ID_FORMAT (int): The mobile ID is malformed. + TOO_MANY_USER_IDENTIFIERS (int): Request is exceeding the maximum number of user identifiers allowed. + NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT (int): Customer is not on the allow-list for store sales direct data. + NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES (int): Customer is not on the allow-list for unified store sales data. + INVALID_PARTNER_ID (int): The partner ID in store sales direct metadata is invalid. + INVALID_ENCODING (int): The data in user identifier should not be encoded. + INVALID_COUNTRY_CODE (int): The country code is invalid. + INCOMPATIBLE_USER_IDENTIFIER (int): Incompatible user identifier when using third\_party\_user\_id for store + sales direct first party data or not using third\_party\_user\_id for + store sales third party data. + FUTURE_TRANSACTION_TIME (int): A transaction time in the future is not allowed. + INVALID_CONVERSION_ACTION (int): The conversion\_action specified in transaction\_attributes is used to + report conversions to a conversion action configured in Google Ads. This + error indicates there is no such conversion action in the account. + MOBILE_ID_NOT_SUPPORTED (int): Mobile ID is not supported for store sales direct data. + INVALID_OPERATION_ORDER (int): When a remove-all operation is provided, it has to be the first operation + of the operation list. + CONFLICTING_OPERATION (int): Mixing creation and removal of offline data in the same job is not + allowed. + EXTERNAL_UPDATE_ID_ALREADY_EXISTS (int): The external update ID already exists. + JOB_ALREADY_STARTED (int): Once the upload job is started, new operations cannot be added. + REMOVE_NOT_SUPPORTED (int): Remove operation is not allowed for store sales direct updates. + REMOVE_ALL_NOT_SUPPORTED (int): Remove-all is not supported for store sales direct updates. + INVALID_SHA256_FORMAT (int): The SHA256 encoded value is malformed. + CUSTOM_KEY_DISABLED (int): The custom key specified is not enabled for the unified store sales + upload. + CUSTOM_KEY_NOT_PREDEFINED (int): The custom key specified is not predefined through the Google Ads UI. + CUSTOM_KEY_NOT_SET (int): The custom key specified is not set in the upload. + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS (int): The customer has not accpeted the customer data terms in the conversion + settings page. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_USER_LIST_ID = 3 + INVALID_USER_LIST_TYPE = 4 + NOT_ON_ALLOWLIST_FOR_USER_ID = 33 + INCOMPATIBLE_UPLOAD_KEY_TYPE = 6 + MISSING_USER_IDENTIFIER = 7 + INVALID_MOBILE_ID_FORMAT = 8 + TOO_MANY_USER_IDENTIFIERS = 9 + NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT = 31 + NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES = 32 + INVALID_PARTNER_ID = 11 + INVALID_ENCODING = 12 + INVALID_COUNTRY_CODE = 13 + INCOMPATIBLE_USER_IDENTIFIER = 14 + FUTURE_TRANSACTION_TIME = 15 + INVALID_CONVERSION_ACTION = 16 + MOBILE_ID_NOT_SUPPORTED = 17 + INVALID_OPERATION_ORDER = 18 + CONFLICTING_OPERATION = 19 + EXTERNAL_UPDATE_ID_ALREADY_EXISTS = 21 + JOB_ALREADY_STARTED = 22 + REMOVE_NOT_SUPPORTED = 23 + REMOVE_ALL_NOT_SUPPORTED = 24 + INVALID_SHA256_FORMAT = 25 + CUSTOM_KEY_DISABLED = 26 + CUSTOM_KEY_NOT_PREDEFINED = 27 + CUSTOM_KEY_NOT_SET = 29 + CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 30 +''' +OfflineUserDataJobErrorEnum = OfflineUserDataJobErrorEnum() # For __getattribute__ + + +class OfflineUserDataJobFailureReasonEnum(_CreateEnumTypeUponFirstAccess): + OfflineUserDataJobFailureReason = '''\ + class OfflineUserDataJobFailureReason(enum.IntEnum): + """ + The failure reason of an offline user data job. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INSUFFICIENT_MATCHED_TRANSACTIONS (int): The matched transactions are insufficient. + INSUFFICIENT_TRANSACTIONS (int): The uploaded transactions are insufficient. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INSUFFICIENT_MATCHED_TRANSACTIONS = 2 + INSUFFICIENT_TRANSACTIONS = 3 +''' +OfflineUserDataJobFailureReasonEnum = OfflineUserDataJobFailureReasonEnum() # For __getattribute__ + + +class OfflineUserDataJobStatusEnum(_CreateEnumTypeUponFirstAccess): + OfflineUserDataJobStatus = '''\ + class OfflineUserDataJobStatus(enum.IntEnum): + """ + The status of an offline user data job. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PENDING (int): The job has been successfully created and pending for uploading. + RUNNING (int): Upload(s) have been accepted and data is being processed. + SUCCESS (int): Uploaded data has been successfully processed. + FAILED (int): Uploaded data has failed to be processed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PENDING = 2 + RUNNING = 3 + SUCCESS = 4 + FAILED = 5 +''' +OfflineUserDataJobStatusEnum = OfflineUserDataJobStatusEnum() # For __getattribute__ + + +class OfflineUserDataJobTypeEnum(_CreateEnumTypeUponFirstAccess): + OfflineUserDataJobType = '''\ + class OfflineUserDataJobType(enum.IntEnum): + """ + The type of an offline user data job. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STORE_SALES_UPLOAD_FIRST_PARTY (int): Store Sales Direct data for self service. + STORE_SALES_UPLOAD_THIRD_PARTY (int): Store Sales Direct data for third party. + CUSTOMER_MATCH_USER_LIST (int): Customer Match user list data. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STORE_SALES_UPLOAD_FIRST_PARTY = 2 + STORE_SALES_UPLOAD_THIRD_PARTY = 3 + CUSTOMER_MATCH_USER_LIST = 4 +''' +OfflineUserDataJobTypeEnum = OfflineUserDataJobTypeEnum() # For __getattribute__ + + +class OperatingSystemVersionOperatorTypeEnum(_CreateEnumTypeUponFirstAccess): + OperatingSystemVersionOperatorType = '''\ + class OperatingSystemVersionOperatorType(enum.IntEnum): + """ + The type of operating system version. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EQUALS_TO (int): Equals to the specified version. + GREATER_THAN_EQUALS_TO (int): Greater than or equals to the specified version. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EQUALS_TO = 2 + GREATER_THAN_EQUALS_TO = 4 +''' +OperatingSystemVersionOperatorTypeEnum = OperatingSystemVersionOperatorTypeEnum() # For __getattribute__ + + +class OperationAccessDeniedErrorEnum(_CreateEnumTypeUponFirstAccess): + OperationAccessDeniedError = '''\ + class OperationAccessDeniedError(enum.IntEnum): + """ + Enum describing possible operation access denied errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ACTION_NOT_PERMITTED (int): Unauthorized invocation of a service's method (get, mutate, etc.) + CREATE_OPERATION_NOT_PERMITTED (int): Unauthorized CREATE operation in invoking a service's mutate method. + REMOVE_OPERATION_NOT_PERMITTED (int): Unauthorized REMOVE operation in invoking a service's mutate method. + UPDATE_OPERATION_NOT_PERMITTED (int): Unauthorized UPDATE operation in invoking a service's mutate method. + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT (int): A mutate action is not allowed on this campaign, from this client. + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE (int): This operation is not permitted on this campaign type + CREATE_AS_REMOVED_NOT_PERMITTED (int): A CREATE operation may not set status to REMOVED. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE (int): This operation is not allowed because the campaign or adgroup is removed. + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE (int): This operation is not permitted on this ad group type. + MUTATE_NOT_PERMITTED_FOR_CUSTOMER (int): The mutate is not allowed for this customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACTION_NOT_PERMITTED = 2 + CREATE_OPERATION_NOT_PERMITTED = 3 + REMOVE_OPERATION_NOT_PERMITTED = 4 + UPDATE_OPERATION_NOT_PERMITTED = 5 + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6 + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7 + CREATE_AS_REMOVED_NOT_PERMITTED = 8 + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9 + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10 + MUTATE_NOT_PERMITTED_FOR_CUSTOMER = 11 +''' +OperationAccessDeniedErrorEnum = OperationAccessDeniedErrorEnum() # For __getattribute__ + + +class OperatorErrorEnum(_CreateEnumTypeUponFirstAccess): + OperatorError = '''\ + class OperatorError(enum.IntEnum): + """ + Enum describing possible operator errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + OPERATOR_NOT_SUPPORTED (int): Operator not supported. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPERATOR_NOT_SUPPORTED = 2 +''' +OperatorErrorEnum = OperatorErrorEnum() # For __getattribute__ + + +class OptimizationGoalTypeEnum(_CreateEnumTypeUponFirstAccess): + OptimizationGoalType = '''\ + class OptimizationGoalType(enum.IntEnum): + """ + The type of optimization goal + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used as a return value only. Represents value unknown in this version. + CALL_CLICKS (int): Optimize for call clicks. Call click conversions are times people + selected 'Call' to contact a store after viewing an ad. + DRIVING_DIRECTIONS (int): Optimize for driving directions. Driving directions conversions are + times people selected 'Get directions' to navigate to a store after + viewing an ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CALL_CLICKS = 2 + DRIVING_DIRECTIONS = 3 +''' +OptimizationGoalTypeEnum = OptimizationGoalTypeEnum() # For __getattribute__ + + +class ParentalStatusTypeEnum(_CreateEnumTypeUponFirstAccess): + ParentalStatusType = '''\ + class ParentalStatusType(enum.IntEnum): + """ + The type of parental statuses (e.g. not a parent). + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PARENT (int): Parent. + NOT_A_PARENT (int): Not a parent. + UNDETERMINED (int): Undetermined parental status. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PARENT = 300 + NOT_A_PARENT = 301 + UNDETERMINED = 302 +''' +ParentalStatusTypeEnum = ParentalStatusTypeEnum() # For __getattribute__ + + +class PartialFailureErrorEnum(_CreateEnumTypeUponFirstAccess): + PartialFailureError = '''\ + class PartialFailureError(enum.IntEnum): + """ + Enum describing possible partial failure errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + PARTIAL_FAILURE_MODE_REQUIRED (int): The partial failure field was false in the request. + This method requires this field be set to true. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PARTIAL_FAILURE_MODE_REQUIRED = 2 +''' +PartialFailureErrorEnum = PartialFailureErrorEnum() # For __getattribute__ + + +class PaymentModeEnum(_CreateEnumTypeUponFirstAccess): + PaymentMode = '''\ + class PaymentMode(enum.IntEnum): + """ + Enum describing possible payment modes. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CLICKS (int): Pay per click. + CONVERSION_VALUE (int): Pay per conversion value. This mode is only supported by campaigns with + AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + BudgetType.HOTEL\_ADS\_COMMISSION. + CONVERSIONS (int): Pay per conversion. This mode is only supported by campaigns with + AdvertisingChannelType.DISPLAY (excluding + AdvertisingChannelSubType.DISPLAY\_GMAIL), + BiddingStrategyType.TARGET\_CPA, and BudgetType.FIXED\_CPA. The customer + must also be eligible for this mode. See + Customer.eligibility\_failure\_reasons for details. + GUEST_STAY (int): Pay per guest stay value. This mode is only supported by campaigns with + AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION, and + BudgetType.STANDARD. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CLICKS = 4 + CONVERSION_VALUE = 5 + CONVERSIONS = 6 + GUEST_STAY = 7 +''' +PaymentModeEnum = PaymentModeEnum() # For __getattribute__ + + +class PaymentsAccountErrorEnum(_CreateEnumTypeUponFirstAccess): + PaymentsAccountError = '''\ + class PaymentsAccountError(enum.IntEnum): + """ + Enum describing possible errors in payments account service. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NOT_SUPPORTED_FOR_MANAGER_CUSTOMER (int): Manager customers are not supported for payments account service. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NOT_SUPPORTED_FOR_MANAGER_CUSTOMER = 2 +''' +PaymentsAccountErrorEnum = PaymentsAccountErrorEnum() # For __getattribute__ + + +class PlaceholderTypeEnum(_CreateEnumTypeUponFirstAccess): + PlaceholderType = '''\ + class PlaceholderType(enum.IntEnum): + """ + Possible placeholder types for a feed mapping. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SITELINK (int): Lets you show links in your ad to pages from your website, including the + main landing page. + CALL (int): Lets you attach a phone number to an ad, allowing customers to call + directly from the ad. + APP (int): Lets you provide users with a link that points to a mobile app in + addition to a website. + LOCATION (int): Lets you show locations of businesses from your Google My Business + account in your ad. This helps people find your locations by showing your + ads with your address, a map to your location, or the distance to your + business. This extension type is useful to draw customers to your + brick-and-mortar location. + AFFILIATE_LOCATION (int): If you sell your product through retail chains, affiliate location + extensions let you show nearby stores that carry your products. + CALLOUT (int): Lets you include additional text with your search ads that provide + detailed information about your business, including products and services + you offer. Callouts appear in ads at the top and bottom of Google search + results. + STRUCTURED_SNIPPET (int): Lets you add more info to your ad, specific to some predefined categories + such as types, brands, styles, etc. A minimum of 3 text (SNIPPETS) values + are required. + MESSAGE (int): Allows users to see your ad, click an icon, and contact you directly by + text message. With one tap on your ad, people can contact you to book an + appointment, get a quote, ask for information, or request a service. + PRICE (int): Lets you display prices for a list of items along with your ads. A price + feed is composed of three to eight price table rows. + PROMOTION (int): Allows you to highlight sales and other promotions that let users see how + they can save by buying now. + AD_CUSTOMIZER (int): Lets you dynamically inject custom data into the title and description + of your ads. + DYNAMIC_EDUCATION (int): Indicates that this feed is for education dynamic remarketing. + DYNAMIC_FLIGHT (int): Indicates that this feed is for flight dynamic remarketing. + DYNAMIC_CUSTOM (int): Indicates that this feed is for a custom dynamic remarketing type. Use + this only if the other business types don't apply to your products or + services. + DYNAMIC_HOTEL (int): Indicates that this feed is for hotels and rentals dynamic remarketing. + DYNAMIC_REAL_ESTATE (int): Indicates that this feed is for real estate dynamic remarketing. + DYNAMIC_TRAVEL (int): Indicates that this feed is for travel dynamic remarketing. + DYNAMIC_LOCAL (int): Indicates that this feed is for local deals dynamic remarketing. + DYNAMIC_JOB (int): Indicates that this feed is for job dynamic remarketing. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SITELINK = 2 + CALL = 3 + APP = 4 + LOCATION = 5 + AFFILIATE_LOCATION = 6 + CALLOUT = 7 + STRUCTURED_SNIPPET = 8 + MESSAGE = 9 + PRICE = 10 + PROMOTION = 11 + AD_CUSTOMIZER = 12 + DYNAMIC_EDUCATION = 13 + DYNAMIC_FLIGHT = 14 + DYNAMIC_CUSTOM = 15 + DYNAMIC_HOTEL = 16 + DYNAMIC_REAL_ESTATE = 17 + DYNAMIC_TRAVEL = 18 + DYNAMIC_LOCAL = 19 + DYNAMIC_JOB = 20 +''' +PlaceholderTypeEnum = PlaceholderTypeEnum() # For __getattribute__ + + +class PlacementTypeEnum(_CreateEnumTypeUponFirstAccess): + PlacementType = '''\ + class PlacementType(enum.IntEnum): + """ + Possible placement types for a feed mapping. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + WEBSITE (int): Websites(e.g. 'www.flowers4sale.com'). + MOBILE_APP_CATEGORY (int): Mobile application categories(e.g. 'Games'). + MOBILE_APPLICATION (int): mobile applications(e.g. 'mobileapp::2-com.whatsthewordanswers'). + YOUTUBE_VIDEO (int): YouTube videos(e.g. 'youtube.com/video/wtLJPvx7-ys'). + YOUTUBE_CHANNEL (int): YouTube channels(e.g. 'youtube.com::L8ZULXASCc1I\_oaOT0NaOQ'). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WEBSITE = 2 + MOBILE_APP_CATEGORY = 3 + MOBILE_APPLICATION = 4 + YOUTUBE_VIDEO = 5 + YOUTUBE_CHANNEL = 6 +''' +PlacementTypeEnum = PlacementTypeEnum() # For __getattribute__ + + +class PolicyApprovalStatusEnum(_CreateEnumTypeUponFirstAccess): + PolicyApprovalStatus = '''\ + class PolicyApprovalStatus(enum.IntEnum): + """ + The possible policy approval statuses. When there are several approval + statuses available the most severe one will be used. The order of + severity is DISAPPROVED, AREA\_OF\_INTEREST\_ONLY, APPROVED\_LIMITED and + APPROVED. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + DISAPPROVED (int): Will not serve. + APPROVED_LIMITED (int): Serves with restrictions. + APPROVED (int): Serves without restrictions. + AREA_OF_INTEREST_ONLY (int): Will not serve in targeted countries, but may serve for users who are + searching for information about the targeted countries. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DISAPPROVED = 2 + APPROVED_LIMITED = 3 + APPROVED = 4 + AREA_OF_INTEREST_ONLY = 5 +''' +PolicyApprovalStatusEnum = PolicyApprovalStatusEnum() # For __getattribute__ + + +class PolicyFindingErrorEnum(_CreateEnumTypeUponFirstAccess): + PolicyFindingError = '''\ + class PolicyFindingError(enum.IntEnum): + """ + Enum describing possible policy finding errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + POLICY_FINDING (int): The resource has been disapproved since the policy summary includes + policy topics of type PROHIBITED. + POLICY_TOPIC_NOT_FOUND (int): The given policy topic does not exist. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + POLICY_FINDING = 2 + POLICY_TOPIC_NOT_FOUND = 3 +''' +PolicyFindingErrorEnum = PolicyFindingErrorEnum() # For __getattribute__ + + +class PolicyReviewStatusEnum(_CreateEnumTypeUponFirstAccess): + PolicyReviewStatus = '''\ + class PolicyReviewStatus(enum.IntEnum): + """ + The possible policy review statuses. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + REVIEW_IN_PROGRESS (int): Currently under review. + REVIEWED (int): Primary review complete. Other reviews may be continuing. + UNDER_APPEAL (int): The resource has been resubmitted for approval or its policy decision has + been appealed. + ELIGIBLE_MAY_SERVE (int): The resource is eligible and may be serving but could still undergo + further review. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REVIEW_IN_PROGRESS = 2 + REVIEWED = 3 + UNDER_APPEAL = 4 + ELIGIBLE_MAY_SERVE = 5 +''' +PolicyReviewStatusEnum = PolicyReviewStatusEnum() # For __getattribute__ + + +class PolicyTopicEntryTypeEnum(_CreateEnumTypeUponFirstAccess): + PolicyTopicEntryType = '''\ + class PolicyTopicEntryType(enum.IntEnum): + """ + The possible policy topic entry types. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + PROHIBITED (int): The resource will not be served. + LIMITED (int): The resource will not be served under some circumstances. + FULLY_LIMITED (int): The resource cannot serve at all because of the current targeting + criteria. + DESCRIPTIVE (int): May be of interest, but does not limit how the resource is served. + BROADENING (int): Could increase coverage beyond normal. + AREA_OF_INTEREST_ONLY (int): Constrained for all targeted countries, but may serve in other countries + through area of interest. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PROHIBITED = 2 + LIMITED = 4 + FULLY_LIMITED = 8 + DESCRIPTIVE = 5 + BROADENING = 6 + AREA_OF_INTEREST_ONLY = 7 +''' +PolicyTopicEntryTypeEnum = PolicyTopicEntryTypeEnum() # For __getattribute__ + + +class PolicyTopicEvidenceDestinationMismatchUrlTypeEnum(_CreateEnumTypeUponFirstAccess): + PolicyTopicEvidenceDestinationMismatchUrlType = '''\ + class PolicyTopicEvidenceDestinationMismatchUrlType(enum.IntEnum): + """ + The possible policy topic evidence destination mismatch url types. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + DISPLAY_URL (int): The display url. + FINAL_URL (int): The final url. + FINAL_MOBILE_URL (int): The final mobile url. + TRACKING_URL (int): The tracking url template, with substituted desktop url. + MOBILE_TRACKING_URL (int): The tracking url template, with substituted mobile url. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DISPLAY_URL = 2 + FINAL_URL = 3 + FINAL_MOBILE_URL = 4 + TRACKING_URL = 5 + MOBILE_TRACKING_URL = 6 +''' +PolicyTopicEvidenceDestinationMismatchUrlTypeEnum = PolicyTopicEvidenceDestinationMismatchUrlTypeEnum() # For __getattribute__ + + +class PolicyTopicEvidenceDestinationNotWorkingDeviceEnum(_CreateEnumTypeUponFirstAccess): + PolicyTopicEvidenceDestinationNotWorkingDevice = '''\ + class PolicyTopicEvidenceDestinationNotWorkingDevice(enum.IntEnum): + """ + The possible policy topic evidence destination not working devices. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + DESKTOP (int): Landing page doesn't work on desktop device. + ANDROID (int): Landing page doesn't work on Android device. + IOS (int): Landing page doesn't work on iOS device. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DESKTOP = 2 + ANDROID = 3 + IOS = 4 +''' +PolicyTopicEvidenceDestinationNotWorkingDeviceEnum = PolicyTopicEvidenceDestinationNotWorkingDeviceEnum() # For __getattribute__ + + +class PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum(_CreateEnumTypeUponFirstAccess): + PolicyTopicEvidenceDestinationNotWorkingDnsErrorType = '''\ + class PolicyTopicEvidenceDestinationNotWorkingDnsErrorType(enum.IntEnum): + """ + The possible policy topic evidence destination not working DNS error types. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + HOSTNAME_NOT_FOUND (int): Host name not found in DNS when fetching landing page. + GOOGLE_CRAWLER_DNS_ISSUE (int): Google internal crawler issue when communicating with DNS. This error + doesn't mean the landing page doesn't work. Google will recrawl the + landing page. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HOSTNAME_NOT_FOUND = 2 + GOOGLE_CRAWLER_DNS_ISSUE = 3 +''' +PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum = PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum() # For __getattribute__ + + +class PolicyValidationParameterErrorEnum(_CreateEnumTypeUponFirstAccess): + PolicyValidationParameterError = '''\ + class PolicyValidationParameterError(enum.IntEnum): + """ + Enum describing possible policy validation parameter errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS (int): Ignorable policy topics are not supported for the ad type. + UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS (int): Exempt policy violation keys are not supported for the ad type. + CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS (int): Cannot set ignorable policy topics and exempt policy violation keys in + the same policy violation parameter. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS = 2 + UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS = 3 + CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS = 4 +''' +PolicyValidationParameterErrorEnum = PolicyValidationParameterErrorEnum() # For __getattribute__ + + +class PolicyViolationErrorEnum(_CreateEnumTypeUponFirstAccess): + PolicyViolationError = '''\ + class PolicyViolationError(enum.IntEnum): + """ + Enum describing possible policy violation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + POLICY_ERROR (int): A policy was violated. See PolicyViolationDetails for more detail. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + POLICY_ERROR = 2 +''' +PolicyViolationErrorEnum = PolicyViolationErrorEnum() # For __getattribute__ + + +class PositiveGeoTargetTypeEnum(_CreateEnumTypeUponFirstAccess): + PositiveGeoTargetType = '''\ + class PositiveGeoTargetType(enum.IntEnum): + """ + The possible positive geo target types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + PRESENCE_OR_INTEREST (int): Specifies that an ad is triggered if the user is in, + or shows interest in, advertiser's targeted locations. + SEARCH_INTEREST (int): Specifies that an ad is triggered if the user + searches for advertiser's targeted locations. + PRESENCE (int): Specifies that an ad is triggered if the user is in + or regularly in advertiser's targeted locations. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PRESENCE_OR_INTEREST = 5 + SEARCH_INTEREST = 6 + PRESENCE = 7 +''' +PositiveGeoTargetTypeEnum = PositiveGeoTargetTypeEnum() # For __getattribute__ + + +class PreferredContentTypeEnum(_CreateEnumTypeUponFirstAccess): + PreferredContentType = '''\ + class PreferredContentType(enum.IntEnum): + """ + Enumerates preferred content criterion type. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + YOUTUBE_TOP_CONTENT (int): Represents top content on YouTube. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + YOUTUBE_TOP_CONTENT = 400 +''' +PreferredContentTypeEnum = PreferredContentTypeEnum() # For __getattribute__ + + +class PriceExtensionPriceQualifierEnum(_CreateEnumTypeUponFirstAccess): + PriceExtensionPriceQualifier = '''\ + class PriceExtensionPriceQualifier(enum.IntEnum): + """ + Enums of price extension price qualifier. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + FROM (int): 'From' qualifier for the price. + UP_TO (int): 'Up to' qualifier for the price. + AVERAGE (int): 'Average' qualifier for the price. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FROM = 2 + UP_TO = 3 + AVERAGE = 4 +''' +PriceExtensionPriceQualifierEnum = PriceExtensionPriceQualifierEnum() # For __getattribute__ + + +class PriceExtensionPriceUnitEnum(_CreateEnumTypeUponFirstAccess): + PriceExtensionPriceUnit = '''\ + class PriceExtensionPriceUnit(enum.IntEnum): + """ + Price extension price unit. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PER_HOUR (int): Per hour. + PER_DAY (int): Per day. + PER_WEEK (int): Per week. + PER_MONTH (int): Per month. + PER_YEAR (int): Per year. + PER_NIGHT (int): Per night. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PER_HOUR = 2 + PER_DAY = 3 + PER_WEEK = 4 + PER_MONTH = 5 + PER_YEAR = 6 + PER_NIGHT = 7 +''' +PriceExtensionPriceUnitEnum = PriceExtensionPriceUnitEnum() # For __getattribute__ + + +class PriceExtensionTypeEnum(_CreateEnumTypeUponFirstAccess): + PriceExtensionType = '''\ + class PriceExtensionType(enum.IntEnum): + """ + Price extension type. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BRANDS (int): The type for showing a list of brands. + EVENTS (int): The type for showing a list of events. + LOCATIONS (int): The type for showing locations relevant to your business. + NEIGHBORHOODS (int): The type for showing sub-regions or districts within a city or region. + PRODUCT_CATEGORIES (int): The type for showing a collection of product categories. + PRODUCT_TIERS (int): The type for showing a collection of related product tiers. + SERVICES (int): The type for showing a collection of services offered by your business. + SERVICE_CATEGORIES (int): The type for showing a collection of service categories. + SERVICE_TIERS (int): The type for showing a collection of related service tiers. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BRANDS = 2 + EVENTS = 3 + LOCATIONS = 4 + NEIGHBORHOODS = 5 + PRODUCT_CATEGORIES = 6 + PRODUCT_TIERS = 7 + SERVICES = 8 + SERVICE_CATEGORIES = 9 + SERVICE_TIERS = 10 +''' +PriceExtensionTypeEnum = PriceExtensionTypeEnum() # For __getattribute__ + + +class PricePlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + PricePlaceholderField = '''\ + class PricePlaceholderField(enum.IntEnum): + """ + Possible values for Price placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + TYPE (int): Data Type: STRING. The type of your price feed. Must match one of the + predefined price feed type exactly. + PRICE_QUALIFIER (int): Data Type: STRING. The qualifier of each price. Must match one of the + predefined price qualifiers exactly. + TRACKING_TEMPLATE (int): Data Type: URL. Tracking template for the price feed when using Upgraded + URLs. + LANGUAGE (int): Data Type: STRING. Language of the price feed. Must match one of the + available available locale codes exactly. + FINAL_URL_SUFFIX (int): Data Type: STRING. Final URL suffix for the price feed when using + parallel tracking. + ITEM_1_HEADER (int): Data Type: STRING. The header of item 1 of the table. + ITEM_1_DESCRIPTION (int): Data Type: STRING. The description of item 1 of the table. + ITEM_1_PRICE (int): Data Type: MONEY. The price (money with currency) of item 1 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_1_UNIT (int): Data Type: STRING. The price unit of item 1 of the table. Must match one + of the predefined price units. + ITEM_1_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 1 of the table when using + Upgraded URLs. + ITEM_1_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 1 of the table when + using Upgraded URLs. + ITEM_2_HEADER (int): Data Type: STRING. The header of item 2 of the table. + ITEM_2_DESCRIPTION (int): Data Type: STRING. The description of item 2 of the table. + ITEM_2_PRICE (int): Data Type: MONEY. The price (money with currency) of item 2 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_2_UNIT (int): Data Type: STRING. The price unit of item 2 of the table. Must match one + of the predefined price units. + ITEM_2_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 2 of the table when using + Upgraded URLs. + ITEM_2_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 2 of the table when + using Upgraded URLs. + ITEM_3_HEADER (int): Data Type: STRING. The header of item 3 of the table. + ITEM_3_DESCRIPTION (int): Data Type: STRING. The description of item 3 of the table. + ITEM_3_PRICE (int): Data Type: MONEY. The price (money with currency) of item 3 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_3_UNIT (int): Data Type: STRING. The price unit of item 3 of the table. Must match one + of the predefined price units. + ITEM_3_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 3 of the table when using + Upgraded URLs. + ITEM_3_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 3 of the table when + using Upgraded URLs. + ITEM_4_HEADER (int): Data Type: STRING. The header of item 4 of the table. + ITEM_4_DESCRIPTION (int): Data Type: STRING. The description of item 4 of the table. + ITEM_4_PRICE (int): Data Type: MONEY. The price (money with currency) of item 4 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_4_UNIT (int): Data Type: STRING. The price unit of item 4 of the table. Must match one + of the predefined price units. + ITEM_4_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 4 of the table when using + Upgraded URLs. + ITEM_4_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 4 of the table when + using Upgraded URLs. + ITEM_5_HEADER (int): Data Type: STRING. The header of item 5 of the table. + ITEM_5_DESCRIPTION (int): Data Type: STRING. The description of item 5 of the table. + ITEM_5_PRICE (int): Data Type: MONEY. The price (money with currency) of item 5 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_5_UNIT (int): Data Type: STRING. The price unit of item 5 of the table. Must match one + of the predefined price units. + ITEM_5_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 5 of the table when using + Upgraded URLs. + ITEM_5_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 5 of the table when + using Upgraded URLs. + ITEM_6_HEADER (int): Data Type: STRING. The header of item 6 of the table. + ITEM_6_DESCRIPTION (int): Data Type: STRING. The description of item 6 of the table. + ITEM_6_PRICE (int): Data Type: MONEY. The price (money with currency) of item 6 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_6_UNIT (int): Data Type: STRING. The price unit of item 6 of the table. Must match one + of the predefined price units. + ITEM_6_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 6 of the table when using + Upgraded URLs. + ITEM_6_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 6 of the table when + using Upgraded URLs. + ITEM_7_HEADER (int): Data Type: STRING. The header of item 7 of the table. + ITEM_7_DESCRIPTION (int): Data Type: STRING. The description of item 7 of the table. + ITEM_7_PRICE (int): Data Type: MONEY. The price (money with currency) of item 7 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_7_UNIT (int): Data Type: STRING. The price unit of item 7 of the table. Must match one + of the predefined price units. + ITEM_7_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 7 of the table when using + Upgraded URLs. + ITEM_7_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 7 of the table when + using Upgraded URLs. + ITEM_8_HEADER (int): Data Type: STRING. The header of item 8 of the table. + ITEM_8_DESCRIPTION (int): Data Type: STRING. The description of item 8 of the table. + ITEM_8_PRICE (int): Data Type: MONEY. The price (money with currency) of item 8 of the table, + e.g., 30 USD. The currency must match one of the available currencies. + ITEM_8_UNIT (int): Data Type: STRING. The price unit of item 8 of the table. Must match one + of the predefined price units. + ITEM_8_FINAL_URLS (int): Data Type: URL\_LIST. The final URLs of item 8 of the table when using + Upgraded URLs. + ITEM_8_FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. The final mobile URLs of item 8 of the table when + using Upgraded URLs. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TYPE = 2 + PRICE_QUALIFIER = 3 + TRACKING_TEMPLATE = 4 + LANGUAGE = 5 + FINAL_URL_SUFFIX = 6 + ITEM_1_HEADER = 100 + ITEM_1_DESCRIPTION = 101 + ITEM_1_PRICE = 102 + ITEM_1_UNIT = 103 + ITEM_1_FINAL_URLS = 104 + ITEM_1_FINAL_MOBILE_URLS = 105 + ITEM_2_HEADER = 200 + ITEM_2_DESCRIPTION = 201 + ITEM_2_PRICE = 202 + ITEM_2_UNIT = 203 + ITEM_2_FINAL_URLS = 204 + ITEM_2_FINAL_MOBILE_URLS = 205 + ITEM_3_HEADER = 300 + ITEM_3_DESCRIPTION = 301 + ITEM_3_PRICE = 302 + ITEM_3_UNIT = 303 + ITEM_3_FINAL_URLS = 304 + ITEM_3_FINAL_MOBILE_URLS = 305 + ITEM_4_HEADER = 400 + ITEM_4_DESCRIPTION = 401 + ITEM_4_PRICE = 402 + ITEM_4_UNIT = 403 + ITEM_4_FINAL_URLS = 404 + ITEM_4_FINAL_MOBILE_URLS = 405 + ITEM_5_HEADER = 500 + ITEM_5_DESCRIPTION = 501 + ITEM_5_PRICE = 502 + ITEM_5_UNIT = 503 + ITEM_5_FINAL_URLS = 504 + ITEM_5_FINAL_MOBILE_URLS = 505 + ITEM_6_HEADER = 600 + ITEM_6_DESCRIPTION = 601 + ITEM_6_PRICE = 602 + ITEM_6_UNIT = 603 + ITEM_6_FINAL_URLS = 604 + ITEM_6_FINAL_MOBILE_URLS = 605 + ITEM_7_HEADER = 700 + ITEM_7_DESCRIPTION = 701 + ITEM_7_PRICE = 702 + ITEM_7_UNIT = 703 + ITEM_7_FINAL_URLS = 704 + ITEM_7_FINAL_MOBILE_URLS = 705 + ITEM_8_HEADER = 800 + ITEM_8_DESCRIPTION = 801 + ITEM_8_PRICE = 802 + ITEM_8_UNIT = 803 + ITEM_8_FINAL_URLS = 804 + ITEM_8_FINAL_MOBILE_URLS = 805 +''' +PricePlaceholderFieldEnum = PricePlaceholderFieldEnum() # For __getattribute__ + + +class ProductBiddingCategoryLevelEnum(_CreateEnumTypeUponFirstAccess): + ProductBiddingCategoryLevel = '''\ + class ProductBiddingCategoryLevel(enum.IntEnum): + """ + Enum describing the level of the product bidding category. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LEVEL1 (int): Level 1. + LEVEL2 (int): Level 2. + LEVEL3 (int): Level 3. + LEVEL4 (int): Level 4. + LEVEL5 (int): Level 5. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LEVEL1 = 2 + LEVEL2 = 3 + LEVEL3 = 4 + LEVEL4 = 5 + LEVEL5 = 6 +''' +ProductBiddingCategoryLevelEnum = ProductBiddingCategoryLevelEnum() # For __getattribute__ + + +class ProductBiddingCategoryStatusEnum(_CreateEnumTypeUponFirstAccess): + ProductBiddingCategoryStatus = '''\ + class ProductBiddingCategoryStatus(enum.IntEnum): + """ + Enum describing the status of the product bidding category. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ACTIVE (int): The category is active and can be used for bidding. + OBSOLETE (int): The category is obsolete. Used only for reporting purposes. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACTIVE = 2 + OBSOLETE = 3 +''' +ProductBiddingCategoryStatusEnum = ProductBiddingCategoryStatusEnum() # For __getattribute__ + + +class ProductChannelEnum(_CreateEnumTypeUponFirstAccess): + ProductChannel = '''\ + class ProductChannel(enum.IntEnum): + """ + Enum describing the locality of a product offer. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ONLINE (int): The item is sold online. + LOCAL (int): The item is sold in local stores. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ONLINE = 2 + LOCAL = 3 +''' +ProductChannelEnum = ProductChannelEnum() # For __getattribute__ + + +class ProductChannelExclusivityEnum(_CreateEnumTypeUponFirstAccess): + ProductChannelExclusivity = '''\ + class ProductChannelExclusivity(enum.IntEnum): + """ + Enum describing the availability of a product offer. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SINGLE_CHANNEL (int): The item is sold through one channel only, either local stores or online + as indicated by its ProductChannel. + MULTI_CHANNEL (int): The item is matched to its online or local stores counterpart, indicating + it is available for purchase in both ShoppingProductChannels. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SINGLE_CHANNEL = 2 + MULTI_CHANNEL = 3 +''' +ProductChannelExclusivityEnum = ProductChannelExclusivityEnum() # For __getattribute__ + + +class ProductConditionEnum(_CreateEnumTypeUponFirstAccess): + ProductCondition = '''\ + class ProductCondition(enum.IntEnum): + """ + Enum describing the condition of a product offer. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NEW (int): The product condition is new. + REFURBISHED (int): The product condition is refurbished. + USED (int): The product condition is used. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NEW = 3 + REFURBISHED = 4 + USED = 5 +''' +ProductConditionEnum = ProductConditionEnum() # For __getattribute__ + + +class ProductCustomAttributeIndexEnum(_CreateEnumTypeUponFirstAccess): + ProductCustomAttributeIndex = '''\ + class ProductCustomAttributeIndex(enum.IntEnum): + """ + The index of the product custom attribute. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INDEX0 (int): First product custom attribute. + INDEX1 (int): Second product custom attribute. + INDEX2 (int): Third product custom attribute. + INDEX3 (int): Fourth product custom attribute. + INDEX4 (int): Fifth product custom attribute. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INDEX0 = 7 + INDEX1 = 8 + INDEX2 = 9 + INDEX3 = 10 + INDEX4 = 11 +''' +ProductCustomAttributeIndexEnum = ProductCustomAttributeIndexEnum() # For __getattribute__ + + +class ProductTypeLevelEnum(_CreateEnumTypeUponFirstAccess): + ProductTypeLevel = '''\ + class ProductTypeLevel(enum.IntEnum): + """ + Enum describing the level of the type of a product offer. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LEVEL1 (int): Level 1. + LEVEL2 (int): Level 2. + LEVEL3 (int): Level 3. + LEVEL4 (int): Level 4. + LEVEL5 (int): Level 5. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LEVEL1 = 7 + LEVEL2 = 8 + LEVEL3 = 9 + LEVEL4 = 10 + LEVEL5 = 11 +''' +ProductTypeLevelEnum = ProductTypeLevelEnum() # For __getattribute__ + + +class PromotionExtensionDiscountModifierEnum(_CreateEnumTypeUponFirstAccess): + PromotionExtensionDiscountModifier = '''\ + class PromotionExtensionDiscountModifier(enum.IntEnum): + """ + A promotion extension discount modifier. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + UP_TO (int): 'Up to'. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UP_TO = 2 +''' +PromotionExtensionDiscountModifierEnum = PromotionExtensionDiscountModifierEnum() # For __getattribute__ + + +class PromotionExtensionOccasionEnum(_CreateEnumTypeUponFirstAccess): + PromotionExtensionOccasion = '''\ + class PromotionExtensionOccasion(enum.IntEnum): + """ + A promotion extension occasion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NEW_YEARS (int): New Year's. + CHINESE_NEW_YEAR (int): Chinese New Year. + VALENTINES_DAY (int): Valentine's Day. + EASTER (int): Easter. + MOTHERS_DAY (int): Mother's Day. + FATHERS_DAY (int): Father's Day. + LABOR_DAY (int): Labor Day. + BACK_TO_SCHOOL (int): Back To School. + HALLOWEEN (int): Halloween. + BLACK_FRIDAY (int): Black Friday. + CYBER_MONDAY (int): Cyber Monday. + CHRISTMAS (int): Christmas. + BOXING_DAY (int): Boxing Day. + INDEPENDENCE_DAY (int): Independence Day in any country. + NATIONAL_DAY (int): National Day in any country. + END_OF_SEASON (int): End of any season. + WINTER_SALE (int): Winter Sale. + SUMMER_SALE (int): Summer sale. + FALL_SALE (int): Fall Sale. + SPRING_SALE (int): Spring Sale. + RAMADAN (int): Ramadan. + EID_AL_FITR (int): Eid al-Fitr. + EID_AL_ADHA (int): Eid al-Adha. + SINGLES_DAY (int): Singles Day. + WOMENS_DAY (int): Women's Day. + HOLI (int): Holi. + PARENTS_DAY (int): Parent's Day. + ST_NICHOLAS_DAY (int): St. Nicholas Day. + CARNIVAL (int): Carnival. + EPIPHANY (int): Epiphany, also known as Three Kings' Day. + ROSH_HASHANAH (int): Rosh Hashanah. + PASSOVER (int): Passover. + HANUKKAH (int): Hanukkah. + DIWALI (int): Diwali. + NAVRATRI (int): Navratri. + SONGKRAN (int): Available in Thai: Songkran. + YEAR_END_GIFT (int): Available in Japanese: Year-end Gift. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NEW_YEARS = 2 + CHINESE_NEW_YEAR = 3 + VALENTINES_DAY = 4 + EASTER = 5 + MOTHERS_DAY = 6 + FATHERS_DAY = 7 + LABOR_DAY = 8 + BACK_TO_SCHOOL = 9 + HALLOWEEN = 10 + BLACK_FRIDAY = 11 + CYBER_MONDAY = 12 + CHRISTMAS = 13 + BOXING_DAY = 14 + INDEPENDENCE_DAY = 15 + NATIONAL_DAY = 16 + END_OF_SEASON = 17 + WINTER_SALE = 18 + SUMMER_SALE = 19 + FALL_SALE = 20 + SPRING_SALE = 21 + RAMADAN = 22 + EID_AL_FITR = 23 + EID_AL_ADHA = 24 + SINGLES_DAY = 25 + WOMENS_DAY = 26 + HOLI = 27 + PARENTS_DAY = 28 + ST_NICHOLAS_DAY = 29 + CARNIVAL = 30 + EPIPHANY = 31 + ROSH_HASHANAH = 32 + PASSOVER = 33 + HANUKKAH = 34 + DIWALI = 35 + NAVRATRI = 36 + SONGKRAN = 37 + YEAR_END_GIFT = 38 +''' +PromotionExtensionOccasionEnum = PromotionExtensionOccasionEnum() # For __getattribute__ + + +class PromotionPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + PromotionPlaceholderField = '''\ + class PromotionPlaceholderField(enum.IntEnum): + """ + Possible values for Promotion placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PROMOTION_TARGET (int): Data Type: STRING. The text that appears on the ad when the extension is + shown. + DISCOUNT_MODIFIER (int): Data Type: STRING. Allows you to add "up to" phrase to the promotion, + in case you have variable promotion rates. + PERCENT_OFF (int): Data Type: INT64. Takes a value in micros, where 1 million micros + represents 1%, and is shown as a percentage when rendered. + MONEY_AMOUNT_OFF (int): Data Type: MONEY. Requires a currency and an amount of money. + PROMOTION_CODE (int): Data Type: STRING. A string that the user enters to get the discount. + ORDERS_OVER_AMOUNT (int): Data Type: MONEY. A minimum spend before the user qualifies for the + promotion. + PROMOTION_START (int): Data Type: DATE. The start date of the promotion. + PROMOTION_END (int): Data Type: DATE. The end date of the promotion. + OCCASION (int): Data Type: STRING. Describes the associated event for the promotion + using one of the PromotionExtensionOccasion enum values, for example + NEW\_YEARS. + FINAL_URLS (int): Data Type: URL\_LIST. Final URLs to be used in the ad when using + Upgraded URLs. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + LANGUAGE (int): Data Type: STRING. A string represented by a language code for the + promotion. + FINAL_URL_SUFFIX (int): Data Type: STRING. Final URL suffix for the ad when using parallel + tracking. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PROMOTION_TARGET = 2 + DISCOUNT_MODIFIER = 3 + PERCENT_OFF = 4 + MONEY_AMOUNT_OFF = 5 + PROMOTION_CODE = 6 + ORDERS_OVER_AMOUNT = 7 + PROMOTION_START = 8 + PROMOTION_END = 9 + OCCASION = 10 + FINAL_URLS = 11 + FINAL_MOBILE_URLS = 12 + TRACKING_URL = 13 + LANGUAGE = 14 + FINAL_URL_SUFFIX = 15 +''' +PromotionPlaceholderFieldEnum = PromotionPlaceholderFieldEnum() # For __getattribute__ + + +class ProximityRadiusUnitsEnum(_CreateEnumTypeUponFirstAccess): + ProximityRadiusUnits = '''\ + class ProximityRadiusUnits(enum.IntEnum): + """ + The unit of radius distance in proximity (e.g. MILES) + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + MILES (int): Miles + KILOMETERS (int): Kilometers + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MILES = 2 + KILOMETERS = 3 +''' +ProximityRadiusUnitsEnum = ProximityRadiusUnitsEnum() # For __getattribute__ + + +class QualityScoreBucketEnum(_CreateEnumTypeUponFirstAccess): + QualityScoreBucket = '''\ + class QualityScoreBucket(enum.IntEnum): + """ + Enum listing the possible quality score buckets. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BELOW_AVERAGE (int): Quality of the creative is below average. + AVERAGE (int): Quality of the creative is average. + ABOVE_AVERAGE (int): Quality of the creative is above average. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BELOW_AVERAGE = 2 + AVERAGE = 3 + ABOVE_AVERAGE = 4 +''' +QualityScoreBucketEnum = QualityScoreBucketEnum() # For __getattribute__ + + +class QueryErrorEnum(_CreateEnumTypeUponFirstAccess): + QueryError = '''\ + class QueryError(enum.IntEnum): + """ + Enum describing possible query errors. + + Attributes: + UNSPECIFIED (int): Name unspecified. + UNKNOWN (int): The received error code is not known in this version. + QUERY_ERROR (int): Returned if all other query error reasons are not applicable. + BAD_ENUM_CONSTANT (int): A condition used in the query references an invalid enum constant. + BAD_ESCAPE_SEQUENCE (int): Query contains an invalid escape sequence. + BAD_FIELD_NAME (int): Field name is invalid. + BAD_LIMIT_VALUE (int): Limit value is invalid (i.e. not a number) + BAD_NUMBER (int): Encountered number can not be parsed. + BAD_OPERATOR (int): Invalid operator encountered. + BAD_PARAMETER_NAME (int): Parameter unknown or not supported. + BAD_PARAMETER_VALUE (int): Parameter have invalid value. + BAD_RESOURCE_TYPE_IN_FROM_CLAUSE (int): Invalid resource type was specified in the FROM clause. + BAD_SYMBOL (int): Non-ASCII symbol encountered outside of strings. + BAD_VALUE (int): Value is invalid. + DATE_RANGE_TOO_WIDE (int): Date filters fail to restrict date to a range smaller than 31 days. + Applicable if the query is segmented by date. + DATE_RANGE_TOO_NARROW (int): Filters on date/week/month/quarter have a start date after + end date. + EXPECTED_AND (int): Expected AND between values with BETWEEN operator. + EXPECTED_BY (int): Expecting ORDER BY to have BY. + EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE (int): There was no dimension field selected. + EXPECTED_FILTERS_ON_DATE_RANGE (int): Missing filters on date related fields. + EXPECTED_FROM (int): Missing FROM clause. + EXPECTED_LIST (int): The operator used in the conditions requires the value to be a list. + EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE (int): Fields used in WHERE or ORDER BY clauses are missing from the SELECT + clause. + EXPECTED_SELECT (int): SELECT is missing at the beginning of query. + EXPECTED_SINGLE_VALUE (int): A list was passed as a value to a condition whose operator expects a + single value. + EXPECTED_VALUE_WITH_BETWEEN_OPERATOR (int): Missing one or both values with BETWEEN operator. + INVALID_DATE_FORMAT (int): Invalid date format. Expected 'YYYY-MM-DD'. + INVALID_STRING_VALUE (int): Value passed was not a string when it should have been. I.e., it was a + number or unquoted literal. + INVALID_VALUE_WITH_BETWEEN_OPERATOR (int): A String value passed to the BETWEEN operator does not parse as a date. + INVALID_VALUE_WITH_DURING_OPERATOR (int): The value passed to the DURING operator is not a Date range literal + INVALID_VALUE_WITH_LIKE_OPERATOR (int): A non-string value was passed to the LIKE operator. + OPERATOR_FIELD_MISMATCH (int): An operator was provided that is inapplicable to the field being + filtered. + PROHIBITED_EMPTY_LIST_IN_CONDITION (int): A Condition was found with an empty list. + PROHIBITED_ENUM_CONSTANT (int): A condition used in the query references an unsupported enum constant. + PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE (int): Fields that are not allowed to be selected together were included in + the SELECT clause. + PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE (int): A field that is not orderable was included in the ORDER BY clause. + PROHIBITED_FIELD_IN_SELECT_CLAUSE (int): A field that is not selectable was included in the SELECT clause. + PROHIBITED_FIELD_IN_WHERE_CLAUSE (int): A field that is not filterable was included in the WHERE clause. + PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE (int): Resource type specified in the FROM clause is not supported by this + service. + PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE (int): A field that comes from an incompatible resource was included in the + SELECT clause. + PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE (int): A field that comes from an incompatible resource was included in the + WHERE clause. + PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE (int): A metric incompatible with the main resource or other selected + segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE (int): A segment incompatible with the main resource or other selected + segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE (int): A segment in the SELECT clause is incompatible with a metric in the + SELECT or WHERE clause. + LIMIT_VALUE_TOO_LOW (int): The value passed to the limit clause is too low. + PROHIBITED_NEWLINE_IN_STRING (int): Query has a string containing a newline character. + PROHIBITED_VALUE_COMBINATION_IN_LIST (int): List contains values of different types. + PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR (int): The values passed to the BETWEEN operator are not of the same type. + STRING_NOT_TERMINATED (int): Query contains unterminated string. + TOO_MANY_SEGMENTS (int): Too many segments are specified in SELECT clause. + UNEXPECTED_END_OF_QUERY (int): Query is incomplete and cannot be parsed. + UNEXPECTED_FROM_CLAUSE (int): FROM clause cannot be specified in this query. + UNRECOGNIZED_FIELD (int): Query contains one or more unrecognized fields. + UNEXPECTED_INPUT (int): Query has an unexpected extra part. + REQUESTED_METRICS_FOR_MANAGER (int): Metrics cannot be requested for a manager account. To retrieve metrics, + issue separate requests against each client account under the manager + account. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + QUERY_ERROR = 50 + BAD_ENUM_CONSTANT = 18 + BAD_ESCAPE_SEQUENCE = 7 + BAD_FIELD_NAME = 12 + BAD_LIMIT_VALUE = 15 + BAD_NUMBER = 5 + BAD_OPERATOR = 3 + BAD_PARAMETER_NAME = 61 + BAD_PARAMETER_VALUE = 62 + BAD_RESOURCE_TYPE_IN_FROM_CLAUSE = 45 + BAD_SYMBOL = 2 + BAD_VALUE = 4 + DATE_RANGE_TOO_WIDE = 36 + DATE_RANGE_TOO_NARROW = 60 + EXPECTED_AND = 30 + EXPECTED_BY = 14 + EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE = 37 + EXPECTED_FILTERS_ON_DATE_RANGE = 55 + EXPECTED_FROM = 44 + EXPECTED_LIST = 41 + EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE = 16 + EXPECTED_SELECT = 13 + EXPECTED_SINGLE_VALUE = 42 + EXPECTED_VALUE_WITH_BETWEEN_OPERATOR = 29 + INVALID_DATE_FORMAT = 38 + INVALID_STRING_VALUE = 57 + INVALID_VALUE_WITH_BETWEEN_OPERATOR = 26 + INVALID_VALUE_WITH_DURING_OPERATOR = 22 + INVALID_VALUE_WITH_LIKE_OPERATOR = 56 + OPERATOR_FIELD_MISMATCH = 35 + PROHIBITED_EMPTY_LIST_IN_CONDITION = 28 + PROHIBITED_ENUM_CONSTANT = 54 + PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE = 31 + PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE = 40 + PROHIBITED_FIELD_IN_SELECT_CLAUSE = 23 + PROHIBITED_FIELD_IN_WHERE_CLAUSE = 24 + PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE = 43 + PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE = 48 + PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE = 58 + PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 49 + PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE = 51 + PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 53 + LIMIT_VALUE_TOO_LOW = 25 + PROHIBITED_NEWLINE_IN_STRING = 8 + PROHIBITED_VALUE_COMBINATION_IN_LIST = 10 + PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR = 21 + STRING_NOT_TERMINATED = 6 + TOO_MANY_SEGMENTS = 34 + UNEXPECTED_END_OF_QUERY = 9 + UNEXPECTED_FROM_CLAUSE = 47 + UNRECOGNIZED_FIELD = 32 + UNEXPECTED_INPUT = 11 + REQUESTED_METRICS_FOR_MANAGER = 59 +''' +QueryErrorEnum = QueryErrorEnum() # For __getattribute__ + + +class QuotaErrorDetails(_CreateEnumTypeUponFirstAccess): + QuotaRateScope = '''\ + class QuotaRateScope(enum.IntEnum): + """ + Enum of possible scopes that quota buckets belong to. + + Attributes: + UNSPECIFIED (int): Unspecified enum + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ACCOUNT (int): Per customer account quota + DEVELOPER (int): Per project or DevToken quota + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACCOUNT = 2 + DEVELOPER = 3 +''' +QuotaErrorDetails = QuotaErrorDetails() # For __getattribute__ + + +class QuotaErrorEnum(_CreateEnumTypeUponFirstAccess): + QuotaError = '''\ + class QuotaError(enum.IntEnum): + """ + Enum describing possible quota errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_EXHAUSTED (int): Too many requests. + ACCESS_PROHIBITED (int): Access is prohibited. + RESOURCE_TEMPORARILY_EXHAUSTED (int): Too many requests in a short amount of time. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_EXHAUSTED = 2 + ACCESS_PROHIBITED = 3 + RESOURCE_TEMPORARILY_EXHAUSTED = 4 +''' +QuotaErrorEnum = QuotaErrorEnum() # For __getattribute__ + + +class RangeErrorEnum(_CreateEnumTypeUponFirstAccess): + RangeError = '''\ + class RangeError(enum.IntEnum): + """ + Enum describing possible range errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_LOW (int): Too low. + TOO_HIGH (int): Too high. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_LOW = 2 + TOO_HIGH = 3 +''' +RangeErrorEnum = RangeErrorEnum() # For __getattribute__ + + +class ReachPlanAdLengthEnum(_CreateEnumTypeUponFirstAccess): + ReachPlanAdLength = '''\ + class ReachPlanAdLength(enum.IntEnum): + """ + Possible ad length values. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + SIX_SECONDS (int): 6 seconds long ad. + FIFTEEN_OR_TWENTY_SECONDS (int): 15 or 20 seconds long ad. + TWENTY_SECONDS_OR_MORE (int): More than 20 seconds long ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SIX_SECONDS = 2 + FIFTEEN_OR_TWENTY_SECONDS = 3 + TWENTY_SECONDS_OR_MORE = 4 +''' +ReachPlanAdLengthEnum = ReachPlanAdLengthEnum() # For __getattribute__ + + +class ReachPlanAgeRangeEnum(_CreateEnumTypeUponFirstAccess): + ReachPlanAgeRange = '''\ + class ReachPlanAgeRange(enum.IntEnum): + """ + Possible plannable age range values. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + AGE_RANGE_18_24 (int): Between 18 and 24 years old. + AGE_RANGE_18_34 (int): Between 18 and 34 years old. + AGE_RANGE_18_44 (int): Between 18 and 44 years old. + AGE_RANGE_18_49 (int): Between 18 and 49 years old. + AGE_RANGE_18_54 (int): Between 18 and 54 years old. + AGE_RANGE_18_64 (int): Between 18 and 64 years old. + AGE_RANGE_18_65_UP (int): Between 18 and 65+ years old. + AGE_RANGE_21_34 (int): Between 21 and 34 years old. + AGE_RANGE_25_34 (int): Between 25 and 34 years old. + AGE_RANGE_25_44 (int): Between 25 and 44 years old. + AGE_RANGE_25_49 (int): Between 25 and 49 years old. + AGE_RANGE_25_54 (int): Between 25 and 54 years old. + AGE_RANGE_25_64 (int): Between 25 and 64 years old. + AGE_RANGE_25_65_UP (int): Between 25 and 65+ years old. + AGE_RANGE_35_44 (int): Between 35 and 44 years old. + AGE_RANGE_35_49 (int): Between 35 and 49 years old. + AGE_RANGE_35_54 (int): Between 35 and 54 years old. + AGE_RANGE_35_64 (int): Between 35 and 64 years old. + AGE_RANGE_35_65_UP (int): Between 35 and 65+ years old. + AGE_RANGE_45_54 (int): Between 45 and 54 years old. + AGE_RANGE_45_64 (int): Between 45 and 64 years old. + AGE_RANGE_45_65_UP (int): Between 45 and 65+ years old. + AGE_RANGE_50_65_UP (int): Between 50 and 65+ years old. + AGE_RANGE_55_64 (int): Between 55 and 64 years old. + AGE_RANGE_55_65_UP (int): Between 55 and 65+ years old. + AGE_RANGE_65_UP (int): 65 years old and beyond. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AGE_RANGE_18_24 = 503001 + AGE_RANGE_18_34 = 2 + AGE_RANGE_18_44 = 3 + AGE_RANGE_18_49 = 4 + AGE_RANGE_18_54 = 5 + AGE_RANGE_18_64 = 6 + AGE_RANGE_18_65_UP = 7 + AGE_RANGE_21_34 = 8 + AGE_RANGE_25_34 = 503002 + AGE_RANGE_25_44 = 9 + AGE_RANGE_25_49 = 10 + AGE_RANGE_25_54 = 11 + AGE_RANGE_25_64 = 12 + AGE_RANGE_25_65_UP = 13 + AGE_RANGE_35_44 = 503003 + AGE_RANGE_35_49 = 14 + AGE_RANGE_35_54 = 15 + AGE_RANGE_35_64 = 16 + AGE_RANGE_35_65_UP = 17 + AGE_RANGE_45_54 = 503004 + AGE_RANGE_45_64 = 18 + AGE_RANGE_45_65_UP = 19 + AGE_RANGE_50_65_UP = 20 + AGE_RANGE_55_64 = 503005 + AGE_RANGE_55_65_UP = 21 + AGE_RANGE_65_UP = 503006 +''' +ReachPlanAgeRangeEnum = ReachPlanAgeRangeEnum() # For __getattribute__ + + +class ReachPlanErrorEnum(_CreateEnumTypeUponFirstAccess): + ReachPlanError = '''\ + class ReachPlanError(enum.IntEnum): + """ + Enum describing possible errors from ReachPlanService. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 +''' +ReachPlanErrorEnum = ReachPlanErrorEnum() # For __getattribute__ + + +class ReachPlanNetworkEnum(_CreateEnumTypeUponFirstAccess): + ReachPlanNetwork = '''\ + class ReachPlanNetwork(enum.IntEnum): + """ + Possible plannable network values. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used as a return value only. Represents value unknown in this version. + YOUTUBE (int): YouTube network. + GOOGLE_VIDEO_PARTNERS (int): Google Video Partners (GVP) network. + YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS (int): A combination of the YouTube network and the Google Video Partners + network. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + YOUTUBE = 2 + GOOGLE_VIDEO_PARTNERS = 3 + YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS = 4 +''' +ReachPlanNetworkEnum = ReachPlanNetworkEnum() # For __getattribute__ + + +class RealEstatePlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + RealEstatePlaceholderField = '''\ + class RealEstatePlaceholderField(enum.IntEnum): + """ + Possible values for Real Estate placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LISTING_ID (int): Data Type: STRING. Unique ID. + LISTING_NAME (int): Data Type: STRING. Main headline with listing name to be shown in dynamic + ad. + CITY_NAME (int): Data Type: STRING. City name to be shown in dynamic ad. + DESCRIPTION (int): Data Type: STRING. Description of listing to be shown in dynamic ad. + ADDRESS (int): Data Type: STRING. Complete listing address, including postal code. + PRICE (int): Data Type: STRING. Price to be shown in the ad. + Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. + PROPERTY_TYPE (int): Data Type: STRING. Type of property (house, condo, apartment, etc.) used + to group like items together for recommendation engine. + LISTING_TYPE (int): Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) + used to group like items together for recommendation engine. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + FINAL_URLS (int): Data Type: URL\_LIST. Final URLs to be used in ad when using Upgraded + URLs; the more specific the better (e.g. the individual URL of a + specific listing and its location). + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_LISTING_IDS (int): Data Type: STRING\_LIST. List of recommended listing IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LISTING_ID = 2 + LISTING_NAME = 3 + CITY_NAME = 4 + DESCRIPTION = 5 + ADDRESS = 6 + PRICE = 7 + FORMATTED_PRICE = 8 + IMAGE_URL = 9 + PROPERTY_TYPE = 10 + LISTING_TYPE = 11 + CONTEXTUAL_KEYWORDS = 12 + FINAL_URLS = 13 + FINAL_MOBILE_URLS = 14 + TRACKING_URL = 15 + ANDROID_APP_LINK = 16 + SIMILAR_LISTING_IDS = 17 + IOS_APP_LINK = 18 + IOS_APP_STORE_ID = 19 +''' +RealEstatePlaceholderFieldEnum = RealEstatePlaceholderFieldEnum() # For __getattribute__ + + +class RecommendationErrorEnum(_CreateEnumTypeUponFirstAccess): + RecommendationError = '''\ + class RecommendationError(enum.IntEnum): + """ + Enum describing possible errors from applying a recommendation. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BUDGET_AMOUNT_TOO_SMALL (int): The specified budget amount is too low e.g. lower than minimum currency + unit or lower than ad group minimum cost-per-click. + BUDGET_AMOUNT_TOO_LARGE (int): The specified budget amount is too large. + INVALID_BUDGET_AMOUNT (int): The specified budget amount is not a valid amount. e.g. not a multiple + of minimum currency unit. + POLICY_ERROR (int): The specified keyword or ad violates ad policy. + INVALID_BID_AMOUNT (int): The specified bid amount is not valid. e.g. too many fractional digits, + or negative amount. + ADGROUP_KEYWORD_LIMIT (int): The number of keywords in ad group have reached the maximum allowed. + RECOMMENDATION_ALREADY_APPLIED (int): The recommendation requested to apply has already been applied. + RECOMMENDATION_INVALIDATED (int): The recommendation requested to apply has been invalidated. + TOO_MANY_OPERATIONS (int): The number of operations in a single request exceeds the maximum allowed. + NO_OPERATIONS (int): There are no operations in the request. + DIFFERENT_TYPES_NOT_SUPPORTED (int): Operations with multiple recommendation types are not supported when + partial failure mode is not enabled. + DUPLICATE_RESOURCE_NAME (int): Request contains multiple operations with the same resource\_name. + RECOMMENDATION_ALREADY_DISMISSED (int): The recommendation requested to dismiss has already been dismissed. + INVALID_APPLY_REQUEST (int): The recommendation apply request was malformed and invalid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BUDGET_AMOUNT_TOO_SMALL = 2 + BUDGET_AMOUNT_TOO_LARGE = 3 + INVALID_BUDGET_AMOUNT = 4 + POLICY_ERROR = 5 + INVALID_BID_AMOUNT = 6 + ADGROUP_KEYWORD_LIMIT = 7 + RECOMMENDATION_ALREADY_APPLIED = 8 + RECOMMENDATION_INVALIDATED = 9 + TOO_MANY_OPERATIONS = 10 + NO_OPERATIONS = 11 + DIFFERENT_TYPES_NOT_SUPPORTED = 12 + DUPLICATE_RESOURCE_NAME = 13 + RECOMMENDATION_ALREADY_DISMISSED = 14 + INVALID_APPLY_REQUEST = 15 +''' +RecommendationErrorEnum = RecommendationErrorEnum() # For __getattribute__ + + +class RecommendationTypeEnum(_CreateEnumTypeUponFirstAccess): + RecommendationType = '''\ + class RecommendationType(enum.IntEnum): + """ + Types of recommendations. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CAMPAIGN_BUDGET (int): Budget recommendation for campaigns that are currently + budget-constrained (as opposed to the FORECASTING\_CAMPAIGN\_BUDGET + recommendation, which applies to campaigns that are expected to become + budget-constrained in the future). + KEYWORD (int): Keyword recommendation. + TEXT_AD (int): Recommendation to add a new text ad. + TARGET_CPA_OPT_IN (int): Recommendation to update a campaign to use a Target CPA bidding strategy. + MAXIMIZE_CONVERSIONS_OPT_IN (int): Recommendation to update a campaign to use the Maximize Conversions + bidding strategy. + ENHANCED_CPC_OPT_IN (int): Recommendation to enable Enhanced Cost Per Click for a campaign. + SEARCH_PARTNERS_OPT_IN (int): Recommendation to start showing your campaign's ads on Google Search + Partners Websites. + MAXIMIZE_CLICKS_OPT_IN (int): Recommendation to update a campaign to use a Maximize Clicks bidding + strategy. + OPTIMIZE_AD_ROTATION (int): Recommendation to start using the "Optimize" ad rotation setting for the + given ad group. + CALLOUT_EXTENSION (int): Recommendation to add callout extensions to a campaign. + SITELINK_EXTENSION (int): Recommendation to add sitelink extensions to a campaign. + CALL_EXTENSION (int): Recommendation to add call extensions to a campaign. + KEYWORD_MATCH_TYPE (int): Recommendation to change an existing keyword from one match type to a + broader match type. + MOVE_UNUSED_BUDGET (int): Recommendation to move unused budget from one budget to a constrained + budget. + TARGET_ROAS_OPT_IN (int): Recommendation to update a campaign to use a Target ROAS bidding + strategy. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_BUDGET = 2 + KEYWORD = 3 + TEXT_AD = 4 + TARGET_CPA_OPT_IN = 5 + MAXIMIZE_CONVERSIONS_OPT_IN = 6 + ENHANCED_CPC_OPT_IN = 7 + SEARCH_PARTNERS_OPT_IN = 8 + MAXIMIZE_CLICKS_OPT_IN = 9 + OPTIMIZE_AD_ROTATION = 10 + CALLOUT_EXTENSION = 11 + SITELINK_EXTENSION = 12 + CALL_EXTENSION = 13 + KEYWORD_MATCH_TYPE = 14 + MOVE_UNUSED_BUDGET = 15 + TARGET_ROAS_OPT_IN = 17 +''' +RecommendationTypeEnum = RecommendationTypeEnum() # For __getattribute__ + + +class RegionCodeErrorEnum(_CreateEnumTypeUponFirstAccess): + RegionCodeError = '''\ + class RegionCodeError(enum.IntEnum): + """ + Enum describing possible region code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_REGION_CODE (int): Invalid region code. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_REGION_CODE = 2 +''' +RegionCodeErrorEnum = RegionCodeErrorEnum() # For __getattribute__ + + +class RequestErrorEnum(_CreateEnumTypeUponFirstAccess): + RequestError = '''\ + class RequestError(enum.IntEnum): + """ + Enum describing possible request errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_NAME_MISSING (int): Resource name is required for this request. + RESOURCE_NAME_MALFORMED (int): Resource name provided is malformed. + BAD_RESOURCE_ID (int): Resource name provided is malformed. + INVALID_CUSTOMER_ID (int): Customer ID is invalid. + OPERATION_REQUIRED (int): Mutate operation should have either create, update, or remove specified. + RESOURCE_NOT_FOUND (int): Requested resource not found. + INVALID_PAGE_TOKEN (int): Next page token specified in user request is invalid. + EXPIRED_PAGE_TOKEN (int): Next page token specified in user request has expired. + INVALID_PAGE_SIZE (int): Page size specified in user request is invalid. + REQUIRED_FIELD_MISSING (int): Required field is missing. + IMMUTABLE_FIELD (int): The field cannot be modified because it's immutable. It's also possible + that the field can be modified using 'create' operation but not 'update'. + TOO_MANY_MUTATE_OPERATIONS (int): Received too many entries in request. + CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT (int): Request cannot be executed by a manager account. + CANNOT_MODIFY_FOREIGN_FIELD (int): Mutate request was attempting to modify a readonly field. + For instance, Budget fields can be requested for Ad Group, + but are read-only for adGroups:mutate. + INVALID_ENUM_VALUE (int): Enum value is not permitted. + DEVELOPER_TOKEN_PARAMETER_MISSING (int): The developer-token parameter is required for all requests. + LOGIN_CUSTOMER_ID_PARAMETER_MISSING (int): The login-customer-id parameter is required for this request. + VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN (int): page\_token is set in the validate only request + CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS (int): return\_summary\_row cannot be enabled if request did not select any + metrics field. + CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS (int): return\_summary\_row should not be enabled for validate only requests. + INCONSISTENT_RETURN_SUMMARY_ROW_VALUE (int): return\_summary\_row parameter value should be the same between requests + with page\_token field set and their original request. + TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED (int): The total results count cannot be returned if it was not requested in the + original request. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_NAME_MISSING = 3 + RESOURCE_NAME_MALFORMED = 4 + BAD_RESOURCE_ID = 17 + INVALID_CUSTOMER_ID = 16 + OPERATION_REQUIRED = 5 + RESOURCE_NOT_FOUND = 6 + INVALID_PAGE_TOKEN = 7 + EXPIRED_PAGE_TOKEN = 8 + INVALID_PAGE_SIZE = 22 + REQUIRED_FIELD_MISSING = 9 + IMMUTABLE_FIELD = 11 + TOO_MANY_MUTATE_OPERATIONS = 13 + CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT = 14 + CANNOT_MODIFY_FOREIGN_FIELD = 15 + INVALID_ENUM_VALUE = 18 + DEVELOPER_TOKEN_PARAMETER_MISSING = 19 + LOGIN_CUSTOMER_ID_PARAMETER_MISSING = 20 + VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN = 21 + CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS = 29 + CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS = 30 + INCONSISTENT_RETURN_SUMMARY_ROW_VALUE = 31 + TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED = 32 +''' +RequestErrorEnum = RequestErrorEnum() # For __getattribute__ + + +class ResourceAccessDeniedErrorEnum(_CreateEnumTypeUponFirstAccess): + ResourceAccessDeniedError = '''\ + class ResourceAccessDeniedError(enum.IntEnum): + """ + Enum describing possible resource access denied errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + WRITE_ACCESS_DENIED (int): User did not have write access. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WRITE_ACCESS_DENIED = 3 +''' +ResourceAccessDeniedErrorEnum = ResourceAccessDeniedErrorEnum() # For __getattribute__ + + +class ResourceCountLimitExceededErrorEnum(_CreateEnumTypeUponFirstAccess): + ResourceCountLimitExceededError = '''\ + class ResourceCountLimitExceededError(enum.IntEnum): + """ + Enum describing possible resource count limit exceeded errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ACCOUNT_LIMIT (int): Indicates that this request would exceed the number of allowed resources + for the Google Ads account. The exact resource type and limit being + checked can be inferred from accountLimitType. + CAMPAIGN_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in a Campaign. The exact resource type and limit being checked can be + inferred from accountLimitType, and the numeric id of the + Campaign involved is given by enclosingId. + ADGROUP_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group. The exact resource type and limit being checked can be + inferred from accountLimitType, and the numeric id of the + ad group involved is given by enclosingId. + AD_GROUP_AD_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group ad. The exact resource type and limit being checked can + be inferred from accountLimitType, and the enclosingId + contains the ad group id followed by the ad id, separated by a single + comma (,). + AD_GROUP_CRITERION_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group criterion. The exact resource type and limit being checked + can be inferred from accountLimitType, and the + enclosingId contains the ad group id followed by the + criterion id, separated by a single comma (,). + SHARED_SET_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in this shared set. The exact resource type and limit being checked can + be inferred from accountLimitType, and the numeric id of the + shared set involved is given by enclosingId. + MATCHING_FUNCTION_LIMIT (int): Exceeds a limit related to a matching function. + RESPONSE_ROW_LIMIT_EXCEEDED (int): The response for this request would exceed the maximum number of rows + that can be returned. + RESOURCE_LIMIT (int): This request would exceed a limit on the number of allowed resources. + The details of which type of limit was exceeded will eventually be + returned in ErrorDetails. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACCOUNT_LIMIT = 2 + CAMPAIGN_LIMIT = 3 + ADGROUP_LIMIT = 4 + AD_GROUP_AD_LIMIT = 5 + AD_GROUP_CRITERION_LIMIT = 6 + SHARED_SET_LIMIT = 7 + MATCHING_FUNCTION_LIMIT = 8 + RESPONSE_ROW_LIMIT_EXCEEDED = 9 + RESOURCE_LIMIT = 10 +''' +ResourceCountLimitExceededErrorEnum = ResourceCountLimitExceededErrorEnum() # For __getattribute__ + + +class ResponseContentTypeEnum(_CreateEnumTypeUponFirstAccess): + ResponseContentType = '''\ + class ResponseContentType(enum.IntEnum): + """ + Possible response content types. + + Attributes: + UNSPECIFIED (int): Not specified. Will return the resource name only in the response. + RESOURCE_NAME_ONLY (int): The mutate response will be the resource name. + MUTABLE_RESOURCE (int): The mutate response will be the resource name and the resource with + all mutable fields. + """ + UNSPECIFIED = 0 + RESOURCE_NAME_ONLY = 1 + MUTABLE_RESOURCE = 2 +''' +ResponseContentTypeEnum = ResponseContentTypeEnum() # For __getattribute__ + + +class SearchEngineResultsPageTypeEnum(_CreateEnumTypeUponFirstAccess): + SearchEngineResultsPageType = '''\ + class SearchEngineResultsPageType(enum.IntEnum): + """ + The type of the search engine results page. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADS_ONLY (int): Only ads were contained in the search engine results page. + ORGANIC_ONLY (int): Only organic results were contained in the search engine results page. + ADS_AND_ORGANIC (int): Both ads and organic results were contained in the search engine results + page. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADS_ONLY = 2 + ORGANIC_ONLY = 3 + ADS_AND_ORGANIC = 4 +''' +SearchEngineResultsPageTypeEnum = SearchEngineResultsPageTypeEnum() # For __getattribute__ + + +class SearchTermMatchTypeEnum(_CreateEnumTypeUponFirstAccess): + SearchTermMatchType = '''\ + class SearchTermMatchType(enum.IntEnum): + """ + Possible match types for a keyword triggering an ad, including variants. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BROAD (int): Broad match. + EXACT (int): Exact match. + PHRASE (int): Phrase match. + NEAR_EXACT (int): Exact match (close variant). + NEAR_PHRASE (int): Phrase match (close variant). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BROAD = 2 + EXACT = 3 + PHRASE = 4 + NEAR_EXACT = 5 + NEAR_PHRASE = 6 +''' +SearchTermMatchTypeEnum = SearchTermMatchTypeEnum() # For __getattribute__ + + +class SearchTermTargetingStatusEnum(_CreateEnumTypeUponFirstAccess): + SearchTermTargetingStatus = '''\ + class SearchTermTargetingStatus(enum.IntEnum): + """ + Indicates whether the search term is one of your targeted or excluded + keywords. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADDED (int): Search term is added to targeted keywords. + EXCLUDED (int): Search term matches a negative keyword. + ADDED_EXCLUDED (int): Search term has been both added and excluded. + NONE (int): Search term is neither targeted nor excluded. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADDED = 2 + EXCLUDED = 3 + ADDED_EXCLUDED = 4 + NONE = 5 +''' +SearchTermTargetingStatusEnum = SearchTermTargetingStatusEnum() # For __getattribute__ + + +class ServedAssetFieldTypeEnum(_CreateEnumTypeUponFirstAccess): + ServedAssetFieldType = '''\ + class ServedAssetFieldType(enum.IntEnum): + """ + The possible asset field types. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + This is a response-only value. + HEADLINE_1 (int): The asset is used in headline 1. + HEADLINE_2 (int): The asset is used in headline 2. + HEADLINE_3 (int): The asset is used in headline 3. + DESCRIPTION_1 (int): The asset is used in description 1. + DESCRIPTION_2 (int): The asset is used in description 2. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HEADLINE_1 = 2 + HEADLINE_2 = 3 + HEADLINE_3 = 4 + DESCRIPTION_1 = 5 + DESCRIPTION_2 = 6 +''' +ServedAssetFieldTypeEnum = ServedAssetFieldTypeEnum() # For __getattribute__ + + +class SettingErrorEnum(_CreateEnumTypeUponFirstAccess): + SettingError = '''\ + class SettingError(enum.IntEnum): + """ + Enum describing possible setting errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + SETTING_TYPE_IS_NOT_AVAILABLE (int): The campaign setting is not available for this Google Ads account. + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN (int): The setting is not compatible with the campaign. + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP (int): The supplied TargetingSetting contains an invalid CriterionTypeGroup. See + CriterionTypeGroup documentation for CriterionTypeGroups allowed + in Campaign or AdGroup TargetingSettings. + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL (int): TargetingSetting must not explicitly set any of the Demographic + CriterionTypeGroups (AGE\_RANGE, GENDER, PARENT, INCOME\_RANGE) to false + (it's okay to not set them at all, in which case the system will set + them to true automatically). + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP (int): TargetingSetting cannot change any of the Demographic + CriterionTypeGroups (AGE\_RANGE, GENDER, PARENT, INCOME\_RANGE) from + true to false. + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT (int): At least one feed id should be present. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME (int): The supplied DynamicSearchAdsSetting contains an invalid domain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME (int): The supplied DynamicSearchAdsSetting contains a subdomain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE (int): The supplied DynamicSearchAdsSetting contains an invalid language code. + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN (int): TargetingSettings in search campaigns should not have + CriterionTypeGroup.PLACEMENT set to targetAll. + SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN (int): The setting value is not compatible with the campaign type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SETTING_TYPE_IS_NOT_AVAILABLE = 3 + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4 + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5 + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6 + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7 + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11 + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12 + SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN = 20 +''' +SettingErrorEnum = SettingErrorEnum() # For __getattribute__ + + +class SharedCriterionErrorEnum(_CreateEnumTypeUponFirstAccess): + SharedCriterionError = '''\ + class SharedCriterionError(enum.IntEnum): + """ + Enum describing possible shared criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE (int): The criterion is not appropriate for the shared set type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE = 2 +''' +SharedCriterionErrorEnum = SharedCriterionErrorEnum() # For __getattribute__ + + +class SharedSetErrorEnum(_CreateEnumTypeUponFirstAccess): + SharedSetError = '''\ + class SharedSetError(enum.IntEnum): + """ + Enum describing possible shared set errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE (int): The customer cannot create this type of shared set. + DUPLICATE_NAME (int): A shared set with this name already exists. + SHARED_SET_REMOVED (int): Removed shared sets cannot be mutated. + SHARED_SET_IN_USE (int): The shared set cannot be removed because it is in use. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE = 2 + DUPLICATE_NAME = 3 + SHARED_SET_REMOVED = 4 + SHARED_SET_IN_USE = 5 +''' +SharedSetErrorEnum = SharedSetErrorEnum() # For __getattribute__ + + +class SharedSetStatusEnum(_CreateEnumTypeUponFirstAccess): + SharedSetStatus = '''\ + class SharedSetStatus(enum.IntEnum): + """ + Enum listing the possible shared set statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The shared set is enabled. + REMOVED (int): The shared set is removed and can no longer be used. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 +''' +SharedSetStatusEnum = SharedSetStatusEnum() # For __getattribute__ + + +class SharedSetTypeEnum(_CreateEnumTypeUponFirstAccess): + SharedSetType = '''\ + class SharedSetType(enum.IntEnum): + """ + Enum listing the possible shared set types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NEGATIVE_KEYWORDS (int): A set of keywords that can be excluded from targeting. + NEGATIVE_PLACEMENTS (int): A set of placements that can be excluded from targeting. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NEGATIVE_KEYWORDS = 2 + NEGATIVE_PLACEMENTS = 3 +''' +SharedSetTypeEnum = SharedSetTypeEnum() # For __getattribute__ + + +class SimulationModificationMethodEnum(_CreateEnumTypeUponFirstAccess): + SimulationModificationMethod = '''\ + class SimulationModificationMethod(enum.IntEnum): + """ + Enum describing the method by which a simulation modifies a field. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + UNIFORM (int): The values in a simulation were applied to all children of a given + resource uniformly. Overrides on child resources were not respected. + DEFAULT (int): The values in a simulation were applied to the given resource. + Overrides on child resources were respected, and traffic estimates + do not include these resources. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNIFORM = 2 + DEFAULT = 3 +''' +SimulationModificationMethodEnum = SimulationModificationMethodEnum() # For __getattribute__ + + +class SimulationTypeEnum(_CreateEnumTypeUponFirstAccess): + SimulationType = '''\ + class SimulationType(enum.IntEnum): + """ + Enum describing the field a simulation modifies. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CPC_BID (int): The simulation is for a CPC bid. + CPV_BID (int): The simulation is for a CPV bid. + TARGET_CPA (int): The simulation is for a CPA target. + BID_MODIFIER (int): The simulation is for a bid modifier. + TARGET_ROAS (int): The simulation is for a ROAS target. + PERCENT_CPC_BID (int): The simulation is for a percent CPC bid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CPC_BID = 2 + CPV_BID = 3 + TARGET_CPA = 4 + BID_MODIFIER = 5 + TARGET_ROAS = 6 + PERCENT_CPC_BID = 7 +''' +SimulationTypeEnum = SimulationTypeEnum() # For __getattribute__ + + +class SitelinkPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + SitelinkPlaceholderField = '''\ + class SitelinkPlaceholderField(enum.IntEnum): + """ + Possible values for Sitelink placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + TEXT (int): Data Type: STRING. The link text for your sitelink. + LINE_1 (int): Data Type: STRING. First line of the sitelink description. + LINE_2 (int): Data Type: STRING. Second line of the sitelink description. + FINAL_URLS (int): Data Type: URL\_LIST. Final URLs for the sitelink when using Upgraded + URLs. + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final Mobile URLs for the sitelink when using + Upgraded URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the sitelink when using Upgraded + URLs. + FINAL_URL_SUFFIX (int): Data Type: STRING. Final URL suffix for sitelink when using parallel + tracking. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TEXT = 2 + LINE_1 = 3 + LINE_2 = 4 + FINAL_URLS = 5 + FINAL_MOBILE_URLS = 6 + TRACKING_URL = 7 + FINAL_URL_SUFFIX = 8 +''' +SitelinkPlaceholderFieldEnum = SitelinkPlaceholderFieldEnum() # For __getattribute__ + + +class SizeLimitErrorEnum(_CreateEnumTypeUponFirstAccess): + SizeLimitError = '''\ + class SizeLimitError(enum.IntEnum): + """ + Enum describing possible size limit errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + REQUEST_SIZE_LIMIT_EXCEEDED (int): The number of entries in the request exceeds the system limit. + RESPONSE_SIZE_LIMIT_EXCEEDED (int): The number of entries in the response exceeds the system limit. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUEST_SIZE_LIMIT_EXCEEDED = 2 + RESPONSE_SIZE_LIMIT_EXCEEDED = 3 +''' +SizeLimitErrorEnum = SizeLimitErrorEnum() # For __getattribute__ + + +class SlotEnum(_CreateEnumTypeUponFirstAccess): + Slot = '''\ + class Slot(enum.IntEnum): + """ + Enumerates possible positions of the Ad. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + SEARCH_SIDE (int): Google search: Side. + SEARCH_TOP (int): Google search: Top. + SEARCH_OTHER (int): Google search: Other. + CONTENT (int): Google Display Network. + SEARCH_PARTNER_TOP (int): Search partners: Top. + SEARCH_PARTNER_OTHER (int): Search partners: Other. + MIXED (int): Cross-network. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_SIDE = 2 + SEARCH_TOP = 3 + SEARCH_OTHER = 4 + CONTENT = 5 + SEARCH_PARTNER_TOP = 6 + SEARCH_PARTNER_OTHER = 7 + MIXED = 8 +''' +SlotEnum = SlotEnum() # For __getattribute__ + + +class SpendingLimitTypeEnum(_CreateEnumTypeUponFirstAccess): + SpendingLimitType = '''\ + class SpendingLimitType(enum.IntEnum): + """ + The possible spending limit types used by certain resources as an + alternative to absolute money values in micros. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + INFINITE (int): Infinite, indicates unlimited spending power. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INFINITE = 2 +''' +SpendingLimitTypeEnum = SpendingLimitTypeEnum() # For __getattribute__ + + +class StringFormatErrorEnum(_CreateEnumTypeUponFirstAccess): + StringFormatError = '''\ + class StringFormatError(enum.IntEnum): + """ + Enum describing possible string format errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ILLEGAL_CHARS (int): The input string value contains disallowed characters. + INVALID_FORMAT (int): The input string value is invalid for the associated field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ILLEGAL_CHARS = 2 + INVALID_FORMAT = 3 +''' +StringFormatErrorEnum = StringFormatErrorEnum() # For __getattribute__ + + +class StringLengthErrorEnum(_CreateEnumTypeUponFirstAccess): + StringLengthError = '''\ + class StringLengthError(enum.IntEnum): + """ + Enum describing possible string length errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + EMPTY (int): The specified field should have a least one non-whitespace character in + it. + TOO_SHORT (int): Too short. + TOO_LONG (int): Too long. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EMPTY = 4 + TOO_SHORT = 2 + TOO_LONG = 3 +''' +StringLengthErrorEnum = StringLengthErrorEnum() # For __getattribute__ + + +class StructuredSnippetPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + StructuredSnippetPlaceholderField = '''\ + class StructuredSnippetPlaceholderField(enum.IntEnum): + """ + Possible values for Structured Snippet placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + HEADER (int): Data Type: STRING. The category of snippet of your products/services. + Must match exactly one of the predefined structured snippets headers. + For a list, visit + https://developers.google.com/adwords/api/docs/appendix/structured-snippet-headers + SNIPPETS (int): Data Type: STRING\_LIST. Text values that describe your + products/services. All text must be family safe. Special or non-ASCII + characters are not permitted. A snippet can be at most 25 characters. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HEADER = 2 + SNIPPETS = 3 +''' +StructuredSnippetPlaceholderFieldEnum = StructuredSnippetPlaceholderFieldEnum() # For __getattribute__ + + +class SummaryRowSettingEnum(_CreateEnumTypeUponFirstAccess): + SummaryRowSetting = '''\ + class SummaryRowSetting(enum.IntEnum): + """ + Enum describing return summary row settings. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Represent unknown values of return summary row. + NO_SUMMARY_ROW (int): Do not return summary row. + SUMMARY_ROW_WITH_RESULTS (int): Return summary row along with results. The summary row will be returned + in the last batch alone (last batch will contain no results). + SUMMARY_ROW_ONLY (int): Return summary row only and return no results. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NO_SUMMARY_ROW = 2 + SUMMARY_ROW_WITH_RESULTS = 3 + SUMMARY_ROW_ONLY = 4 +''' +SummaryRowSettingEnum = SummaryRowSettingEnum() # For __getattribute__ + + +class SystemManagedResourceSourceEnum(_CreateEnumTypeUponFirstAccess): + SystemManagedResourceSource = '''\ + class SystemManagedResourceSource(enum.IntEnum): + """ + Enum listing the possible system managed entity sources. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AD_VARIATIONS (int): Generated ad variations experiment ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_VARIATIONS = 2 +''' +SystemManagedResourceSourceEnum = SystemManagedResourceSourceEnum() # For __getattribute__ + + +class TargetCpaOptInRecommendationGoalEnum(_CreateEnumTypeUponFirstAccess): + TargetCpaOptInRecommendationGoal = '''\ + class TargetCpaOptInRecommendationGoal(enum.IntEnum): + """ + Goal of TargetCpaOptIn recommendation. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SAME_COST (int): Recommendation to set Target CPA to maintain the same cost. + SAME_CONVERSIONS (int): Recommendation to set Target CPA to maintain the same conversions. + SAME_CPA (int): Recommendation to set Target CPA to maintain the same CPA. + CLOSEST_CPA (int): Recommendation to set Target CPA to a value that is as close as possible + to, yet lower than, the actual CPA (computed for past 28 days). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SAME_COST = 2 + SAME_CONVERSIONS = 3 + SAME_CPA = 4 + CLOSEST_CPA = 5 +''' +TargetCpaOptInRecommendationGoalEnum = TargetCpaOptInRecommendationGoalEnum() # For __getattribute__ + + +class TargetImpressionShareLocationEnum(_CreateEnumTypeUponFirstAccess): + TargetImpressionShareLocation = '''\ + class TargetImpressionShareLocation(enum.IntEnum): + """ + Enum describing possible goals. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ANYWHERE_ON_PAGE (int): Any location on the web page. + TOP_OF_PAGE (int): Top box of ads. + ABSOLUTE_TOP_OF_PAGE (int): Top slot in the top box of ads. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ANYWHERE_ON_PAGE = 2 + TOP_OF_PAGE = 3 + ABSOLUTE_TOP_OF_PAGE = 4 +''' +TargetImpressionShareLocationEnum = TargetImpressionShareLocationEnum() # For __getattribute__ + + +class TargetRestrictionOperation(_CreateEnumTypeUponFirstAccess): + Operator = '''\ + class Operator(enum.IntEnum): + """ + The operator. + + Attributes: + UNSPECIFIED (int): Unspecified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADD (int): Add the restriction to the existing restrictions. + REMOVE (int): Remove the restriction from the existing restrictions. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADD = 2 + REMOVE = 3 +''' +TargetRestrictionOperation = TargetRestrictionOperation() # For __getattribute__ + + +class TargetingDimensionEnum(_CreateEnumTypeUponFirstAccess): + TargetingDimension = '''\ + class TargetingDimension(enum.IntEnum): + """ + Enum describing possible targeting dimensions. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + KEYWORD (int): Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid + dimension. Keywords are always a targeting dimension, so may not be set + as a target "ALL" dimension with TargetRestriction. + AUDIENCE (int): Audience criteria, which include user list, user interest, custom + affinity, and custom in market. + TOPIC (int): Topic criteria for targeting categories of content, e.g. + 'category::Animals>Pets' Used for Display and Video targeting. + GENDER (int): Criteria for targeting gender. + AGE_RANGE (int): Criteria for targeting age ranges. + PLACEMENT (int): Placement criteria, which include websites like 'www.flowers4sale.com', + as well as mobile applications, mobile app categories, YouTube videos, + and YouTube channels. + PARENTAL_STATUS (int): Criteria for parental status targeting. + INCOME_RANGE (int): Criteria for income range targeting. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + KEYWORD = 2 + AUDIENCE = 3 + TOPIC = 4 + GENDER = 5 + AGE_RANGE = 6 + PLACEMENT = 7 + PARENTAL_STATUS = 8 + INCOME_RANGE = 9 +''' +TargetingDimensionEnum = TargetingDimensionEnum() # For __getattribute__ + + +class ThirdPartyAppAnalyticsLinkErrorEnum(_CreateEnumTypeUponFirstAccess): + ThirdPartyAppAnalyticsLinkError = '''\ + class ThirdPartyAppAnalyticsLinkError(enum.IntEnum): + """ + Enum describing possible third party app analytics link errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_ANALYTICS_PROVIDER_ID (int): The provided analytics provider ID is invalid. + INVALID_MOBILE_APP_ID (int): The provided mobile app ID is invalid. + MOBILE_APP_IS_NOT_ENABLED (int): The mobile app corresponding to the provided app ID is not + active/enabled. + CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK (int): Regenerating shareable link ID is only allowed on active links + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_ANALYTICS_PROVIDER_ID = 2 + INVALID_MOBILE_APP_ID = 3 + MOBILE_APP_IS_NOT_ENABLED = 4 + CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK = 5 +''' +ThirdPartyAppAnalyticsLinkErrorEnum = ThirdPartyAppAnalyticsLinkErrorEnum() # For __getattribute__ + + +class TimeTypeEnum(_CreateEnumTypeUponFirstAccess): + TimeType = '''\ + class TimeType(enum.IntEnum): + """ + The possible time types used by certain resources as an alternative to + absolute timestamps. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + NOW (int): As soon as possible. + FOREVER (int): An infinite point in the future. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NOW = 2 + FOREVER = 3 +''' +TimeTypeEnum = TimeTypeEnum() # For __getattribute__ + + +class TimeZoneErrorEnum(_CreateEnumTypeUponFirstAccess): + TimeZoneError = '''\ + class TimeZoneError(enum.IntEnum): + """ + Enum describing possible currency code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_TIME_ZONE (int): Time zone is not valid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_TIME_ZONE = 5 +''' +TimeZoneErrorEnum = TimeZoneErrorEnum() # For __getattribute__ + + +class TrackingCodePageFormatEnum(_CreateEnumTypeUponFirstAccess): + TrackingCodePageFormat = '''\ + class TrackingCodePageFormat(enum.IntEnum): + """ + The format of the web page where the tracking tag and snippet will be + installed. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + HTML (int): Standard HTML page format. + AMP (int): Google AMP page format. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + HTML = 2 + AMP = 3 +''' +TrackingCodePageFormatEnum = TrackingCodePageFormatEnum() # For __getattribute__ + + +class TrackingCodeTypeEnum(_CreateEnumTypeUponFirstAccess): + TrackingCodeType = '''\ + class TrackingCodeType(enum.IntEnum): + """ + The type of the generated tag snippets for tracking conversions. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + WEBPAGE (int): The snippet that is fired as a result of a website page loading. + WEBPAGE_ONCLICK (int): The snippet contains a JavaScript function which fires the tag. This + function is typically called from an onClick handler added to a link or + button element on the page. + CLICK_TO_CALL (int): For embedding on a mobile webpage. The snippet contains a JavaScript + function which fires the tag. + WEBSITE_CALL (int): The snippet that is used to replace the phone number on your website with + a Google forwarding number for call tracking purposes. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WEBPAGE = 2 + WEBPAGE_ONCLICK = 3 + CLICK_TO_CALL = 4 + WEBSITE_CALL = 5 +''' +TrackingCodeTypeEnum = TrackingCodeTypeEnum() # For __getattribute__ + + +class TravelPlaceholderFieldEnum(_CreateEnumTypeUponFirstAccess): + TravelPlaceholderField = '''\ + class TravelPlaceholderField(enum.IntEnum): + """ + Possible values for Travel placeholder fields. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + DESTINATION_ID (int): Data Type: STRING. Required. Destination id. Example: PAR, LON. + For feed items that only have destination id, destination id must be a + unique key. For feed items that have both destination id and origin id, + then the combination must be a unique key. + ORIGIN_ID (int): Data Type: STRING. Origin id. Example: PAR, LON. Combination of + DESTINATION\_ID and ORIGIN\_ID must be unique per offer. + TITLE (int): Data Type: STRING. Required. Main headline with name to be shown in + dynamic ad. + DESTINATION_NAME (int): Data Type: STRING. The destination name. Shorter names are recommended. + ORIGIN_NAME (int): Data Type: STRING. Origin name. Shorter names are recommended. + PRICE (int): Data Type: STRING. Price to be shown in the ad. Highly recommended for + dynamic ads. + Example: "100.00 USD" + FORMATTED_PRICE (int): Data Type: STRING. Formatted price to be shown in the ad. + Example: "Starting at $100.00 USD", "$80 - $100" + SALE_PRICE (int): Data Type: STRING. Sale price to be shown in the ad. + Example: "80.00 USD" + FORMATTED_SALE_PRICE (int): Data Type: STRING. Formatted sale price to be shown in the ad. + Example: "On sale for $80.00", "$60 - $80" + IMAGE_URL (int): Data Type: URL. Image to be displayed in the ad. + CATEGORY (int): Data Type: STRING. Category of travel offer used to group like items + together for recommendation engine. + CONTEXTUAL_KEYWORDS (int): Data Type: STRING\_LIST. Keywords used for product retrieval. + DESTINATION_ADDRESS (int): Data Type: STRING. Address of travel offer, including postal code. + FINAL_URL (int): Data Type: URL\_LIST. Required. Final URLs to be used in ad, when using + Upgraded URLs; the more specific the better (e.g. the individual URL of + a specific travel offer and its location). + FINAL_MOBILE_URLS (int): Data Type: URL\_LIST. Final mobile URLs for the ad when using Upgraded + URLs. + TRACKING_URL (int): Data Type: URL. Tracking template for the ad when using Upgraded URLs. + ANDROID_APP_LINK (int): Data Type: STRING. Android app link. Must be formatted as: + android-app://{package\_id}/{scheme}/{host\_path}. The components are + defined as follows: package\_id: app ID as specified in Google Play. + scheme: the scheme to pass to the application. Can be HTTP, or a custom + scheme. host\_path: identifies the specific content within your + application. + SIMILAR_DESTINATION_IDS (int): Data Type: STRING\_LIST. List of recommended destination IDs to show + together with this item. + IOS_APP_LINK (int): Data Type: STRING. iOS app link. + IOS_APP_STORE_ID (int): Data Type: INT64. iOS app store ID. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DESTINATION_ID = 2 + ORIGIN_ID = 3 + TITLE = 4 + DESTINATION_NAME = 5 + ORIGIN_NAME = 6 + PRICE = 7 + FORMATTED_PRICE = 8 + SALE_PRICE = 9 + FORMATTED_SALE_PRICE = 10 + IMAGE_URL = 11 + CATEGORY = 12 + CONTEXTUAL_KEYWORDS = 13 + DESTINATION_ADDRESS = 14 + FINAL_URL = 15 + FINAL_MOBILE_URLS = 16 + TRACKING_URL = 17 + ANDROID_APP_LINK = 18 + SIMILAR_DESTINATION_IDS = 19 + IOS_APP_LINK = 20 + IOS_APP_STORE_ID = 21 +''' +TravelPlaceholderFieldEnum = TravelPlaceholderFieldEnum() # For __getattribute__ + + +class UrlFieldErrorEnum(_CreateEnumTypeUponFirstAccess): + UrlFieldError = '''\ + class UrlFieldError(enum.IntEnum): + """ + Enum describing possible url field errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_TRACKING_URL_TEMPLATE (int): The tracking url template is invalid. + INVALID_TAG_IN_TRACKING_URL_TEMPLATE (int): The tracking url template contains invalid tag. + MISSING_TRACKING_URL_TEMPLATE_TAG (int): The tracking url template must contain at least one tag (e.g. {lpurl}), + This applies only to tracking url template associated with website ads or + product ads. + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE (int): The tracking url template must start with a valid protocol (or lpurl + tag). + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE (int): The tracking url template starts with an invalid protocol. + MALFORMED_TRACKING_URL_TEMPLATE (int): The tracking url template contains illegal characters. + MISSING_HOST_IN_TRACKING_URL_TEMPLATE (int): The tracking url template must contain a host name (or lpurl tag). + INVALID_TLD_IN_TRACKING_URL_TEMPLATE (int): The tracking url template has an invalid or missing top level domain + extension. + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG (int): The tracking url template contains nested occurrences of the same + conditional tag (i.e. {ifmobile:{ifmobile:x}}). + INVALID_FINAL_URL (int): The final url is invalid. + INVALID_TAG_IN_FINAL_URL (int): The final url contains invalid tag. + REDUNDANT_NESTED_FINAL_URL_TAG (int): The final url contains nested occurrences of the same conditional tag + (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL_IN_FINAL_URL (int): The final url must start with a valid protocol. + INVALID_PROTOCOL_IN_FINAL_URL (int): The final url starts with an invalid protocol. + MALFORMED_FINAL_URL (int): The final url contains illegal characters. + MISSING_HOST_IN_FINAL_URL (int): The final url must contain a host name. + INVALID_TLD_IN_FINAL_URL (int): The tracking url template has an invalid or missing top level domain + extension. + INVALID_FINAL_MOBILE_URL (int): The final mobile url is invalid. + INVALID_TAG_IN_FINAL_MOBILE_URL (int): The final mobile url contains invalid tag. + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG (int): The final mobile url contains nested occurrences of the same conditional + tag (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL (int): The final mobile url must start with a valid protocol. + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL (int): The final mobile url starts with an invalid protocol. + MALFORMED_FINAL_MOBILE_URL (int): The final mobile url contains illegal characters. + MISSING_HOST_IN_FINAL_MOBILE_URL (int): The final mobile url must contain a host name. + INVALID_TLD_IN_FINAL_MOBILE_URL (int): The tracking url template has an invalid or missing top level domain + extension. + INVALID_FINAL_APP_URL (int): The final app url is invalid. + INVALID_TAG_IN_FINAL_APP_URL (int): The final app url contains invalid tag. + REDUNDANT_NESTED_FINAL_APP_URL_TAG (int): The final app url contains nested occurrences of the same conditional tag + (i.e. {ifmobile:{ifmobile:x}}). + MULTIPLE_APP_URLS_FOR_OSTYPE (int): More than one app url found for the same OS type. + INVALID_OSTYPE (int): The OS type given for an app url is not valid. + INVALID_PROTOCOL_FOR_APP_URL (int): The protocol given for an app url is not valid. (E.g. "android-app://") + INVALID_PACKAGE_ID_FOR_APP_URL (int): The package id (app id) given for an app url is not valid. + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT (int): The number of url custom parameters for an resource exceeds the maximum + limit allowed. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY (int): An invalid character appears in the parameter key. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE (int): An invalid character appears in the parameter value. + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE (int): The url custom parameter value fails url tag validation. + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG (int): The custom parameter contains nested occurrences of the same conditional + tag (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL (int): The protocol (http:// or https://) is missing. + INVALID_PROTOCOL (int): Unsupported protocol in URL. Only http and https are supported. + INVALID_URL (int): The url is invalid. + DESTINATION_URL_DEPRECATED (int): Destination Url is deprecated. + INVALID_TAG_IN_URL (int): The url contains invalid tag. + MISSING_URL_TAG (int): The url must contain at least one tag (e.g. {lpurl}), This applies only + to urls associated with website ads or product ads. + DUPLICATE_URL_ID (int): Duplicate url id. + INVALID_URL_ID (int): Invalid url id. + FINAL_URL_SUFFIX_MALFORMED (int): The final url suffix cannot begin with '?' or '&' characters and must be + a valid query string. + INVALID_TAG_IN_FINAL_URL_SUFFIX (int): The final url suffix cannot contain {lpurl} related or {ignore} tags. + INVALID_TOP_LEVEL_DOMAIN (int): The top level domain is invalid, e.g, not a public top level domain + listed in publicsuffix.org. + MALFORMED_TOP_LEVEL_DOMAIN (int): Malformed top level domain in URL. + MALFORMED_URL (int): Malformed URL. + MISSING_HOST (int): No host found in URL. + NULL_CUSTOM_PARAMETER_VALUE (int): Custom parameter value cannot be null. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_TRACKING_URL_TEMPLATE = 2 + INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3 + MISSING_TRACKING_URL_TEMPLATE_TAG = 4 + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5 + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6 + MALFORMED_TRACKING_URL_TEMPLATE = 7 + MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8 + INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9 + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10 + INVALID_FINAL_URL = 11 + INVALID_TAG_IN_FINAL_URL = 12 + REDUNDANT_NESTED_FINAL_URL_TAG = 13 + MISSING_PROTOCOL_IN_FINAL_URL = 14 + INVALID_PROTOCOL_IN_FINAL_URL = 15 + MALFORMED_FINAL_URL = 16 + MISSING_HOST_IN_FINAL_URL = 17 + INVALID_TLD_IN_FINAL_URL = 18 + INVALID_FINAL_MOBILE_URL = 19 + INVALID_TAG_IN_FINAL_MOBILE_URL = 20 + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21 + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22 + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23 + MALFORMED_FINAL_MOBILE_URL = 24 + MISSING_HOST_IN_FINAL_MOBILE_URL = 25 + INVALID_TLD_IN_FINAL_MOBILE_URL = 26 + INVALID_FINAL_APP_URL = 27 + INVALID_TAG_IN_FINAL_APP_URL = 28 + REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29 + MULTIPLE_APP_URLS_FOR_OSTYPE = 30 + INVALID_OSTYPE = 31 + INVALID_PROTOCOL_FOR_APP_URL = 32 + INVALID_PACKAGE_ID_FOR_APP_URL = 33 + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34 + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39 + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40 + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41 + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42 + MISSING_PROTOCOL = 43 + INVALID_PROTOCOL = 52 + INVALID_URL = 44 + DESTINATION_URL_DEPRECATED = 45 + INVALID_TAG_IN_URL = 46 + MISSING_URL_TAG = 47 + DUPLICATE_URL_ID = 48 + INVALID_URL_ID = 49 + FINAL_URL_SUFFIX_MALFORMED = 50 + INVALID_TAG_IN_FINAL_URL_SUFFIX = 51 + INVALID_TOP_LEVEL_DOMAIN = 53 + MALFORMED_TOP_LEVEL_DOMAIN = 54 + MALFORMED_URL = 55 + MISSING_HOST = 56 + NULL_CUSTOM_PARAMETER_VALUE = 57 +''' +UrlFieldErrorEnum = UrlFieldErrorEnum() # For __getattribute__ + + +class UserDataErrorEnum(_CreateEnumTypeUponFirstAccess): + UserDataError = '''\ + class UserDataError(enum.IntEnum): + """ + Enum describing possible request errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED (int): Customer is not allowed to perform operations related to Customer Match. + TOO_MANY_USER_IDENTIFIERS (int): Maximum number of user identifiers allowed for each mutate is 100. + USER_LIST_NOT_APPLICABLE (int): Current user list is not applicable for the given customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED = 2 + TOO_MANY_USER_IDENTIFIERS = 3 + USER_LIST_NOT_APPLICABLE = 4 +''' +UserDataErrorEnum = UserDataErrorEnum() # For __getattribute__ + + +class UserInterestTaxonomyTypeEnum(_CreateEnumTypeUponFirstAccess): + UserInterestTaxonomyType = '''\ + class UserInterestTaxonomyType(enum.IntEnum): + """ + Enum containing the possible UserInterestTaxonomyTypes. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AFFINITY (int): The affinity for this user interest. + IN_MARKET (int): The market for this user interest. + MOBILE_APP_INSTALL_USER (int): Users known to have installed applications in the specified categories. + VERTICAL_GEO (int): The geographical location of the interest-based vertical. + NEW_SMART_PHONE_USER (int): User interest criteria for new smart phone users. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AFFINITY = 2 + IN_MARKET = 3 + MOBILE_APP_INSTALL_USER = 4 + VERTICAL_GEO = 5 + NEW_SMART_PHONE_USER = 6 +''' +UserInterestTaxonomyTypeEnum = UserInterestTaxonomyTypeEnum() # For __getattribute__ + + +class UserListAccessStatusEnum(_CreateEnumTypeUponFirstAccess): + UserListAccessStatus = '''\ + class UserListAccessStatus(enum.IntEnum): + """ + Enum containing possible user list access statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): The access is enabled. + DISABLED (int): The access is disabled. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + DISABLED = 3 +''' +UserListAccessStatusEnum = UserListAccessStatusEnum() # For __getattribute__ + + +class UserListClosingReasonEnum(_CreateEnumTypeUponFirstAccess): + UserListClosingReason = '''\ + class UserListClosingReason(enum.IntEnum): + """ + Enum describing possible user list closing reasons. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + UNUSED (int): The userlist was closed because of not being used for over one year. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNUSED = 2 +''' +UserListClosingReasonEnum = UserListClosingReasonEnum() # For __getattribute__ + + +class UserListCombinedRuleOperatorEnum(_CreateEnumTypeUponFirstAccess): + UserListCombinedRuleOperator = '''\ + class UserListCombinedRuleOperator(enum.IntEnum): + """ + Enum describing possible user list combined rule operators. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AND (int): A AND B. + AND_NOT (int): A AND NOT B. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AND = 2 + AND_NOT = 3 +''' +UserListCombinedRuleOperatorEnum = UserListCombinedRuleOperatorEnum() # For __getattribute__ + + +class UserListCrmDataSourceTypeEnum(_CreateEnumTypeUponFirstAccess): + UserListCrmDataSourceType = '''\ + class UserListCrmDataSourceType(enum.IntEnum): + """ + Enum describing possible user list crm data source type. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + FIRST_PARTY (int): The uploaded data is first-party data. + THIRD_PARTY_CREDIT_BUREAU (int): The uploaded data is from a third-party credit bureau. + THIRD_PARTY_VOTER_FILE (int): The uploaded data is from a third-party voter file. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FIRST_PARTY = 2 + THIRD_PARTY_CREDIT_BUREAU = 3 + THIRD_PARTY_VOTER_FILE = 4 +''' +UserListCrmDataSourceTypeEnum = UserListCrmDataSourceTypeEnum() # For __getattribute__ + + +class UserListDateRuleItemOperatorEnum(_CreateEnumTypeUponFirstAccess): + UserListDateRuleItemOperator = '''\ + class UserListDateRuleItemOperator(enum.IntEnum): + """ + Enum describing possible user list date rule item operators. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EQUALS (int): Equals. + NOT_EQUALS (int): Not Equals. + BEFORE (int): Before. + AFTER (int): After. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EQUALS = 2 + NOT_EQUALS = 3 + BEFORE = 4 + AFTER = 5 +''' +UserListDateRuleItemOperatorEnum = UserListDateRuleItemOperatorEnum() # For __getattribute__ + + +class UserListErrorEnum(_CreateEnumTypeUponFirstAccess): + UserListError = '''\ + class UserListError(enum.IntEnum): + """ + Enum describing possible user list errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED (int): Creating and updating external remarketing user lists is not supported. + CONCRETE_TYPE_REQUIRED (int): Concrete type of user list is required. + CONVERSION_TYPE_ID_REQUIRED (int): Creating/updating user list conversion types requires specifying the + conversion type Id. + DUPLICATE_CONVERSION_TYPES (int): Remarketing user list cannot have duplicate conversion types. + INVALID_CONVERSION_TYPE (int): Conversion type is invalid/unknown. + INVALID_DESCRIPTION (int): User list description is empty or invalid. + INVALID_NAME (int): User list name is empty or invalid. + INVALID_TYPE (int): Type of the UserList does not match. + CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND (int): Embedded logical user lists are not allowed. + INVALID_USER_LIST_LOGICAL_RULE_OPERAND (int): User list rule operand is invalid. + NAME_ALREADY_USED (int): Name is already being used for another user list for the account. + NEW_CONVERSION_TYPE_NAME_REQUIRED (int): Name is required when creating a new conversion type. + CONVERSION_TYPE_NAME_ALREADY_USED (int): The given conversion type name has been used. + OWNERSHIP_REQUIRED_FOR_SET (int): Only an owner account may edit a user list. + USER_LIST_MUTATE_NOT_SUPPORTED (int): Creating user list without setting type in oneof user\_list field, or + creating/updating read-only user list types is not allowed. + INVALID_RULE (int): Rule is invalid. + INVALID_DATE_RANGE (int): The specified date range is empty. + CAN_NOT_MUTATE_SENSITIVE_USERLIST (int): A UserList which is privacy sensitive or legal rejected cannot be mutated + by external users. + MAX_NUM_RULEBASED_USERLISTS (int): Maximum number of rulebased user lists a customer can have. + CANNOT_MODIFY_BILLABLE_RECORD_COUNT (int): BasicUserList's billable record field cannot be modified once it is set. + APP_ID_NOT_SET (int): crm\_based\_user\_list.app\_id field must be set when upload\_key\_type + is MOBILE\_ADVERTISING\_ID. + USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST (int): Name of the user list is reserved for system generated lists and cannot + be used. + ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA (int): Advertiser needs to be on the allow-list to use remarketing lists created + from advertiser uploaded data (e.g., Customer Match lists). + RULE_TYPE_IS_NOT_SUPPORTED (int): The provided rule\_type is not supported for the user list. + CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND (int): Similar user list cannot be used as a logical user list operand. + CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS (int): Logical user list should not have a mix of CRM based user list and other + types of lists in its rules. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED = 2 + CONCRETE_TYPE_REQUIRED = 3 + CONVERSION_TYPE_ID_REQUIRED = 4 + DUPLICATE_CONVERSION_TYPES = 5 + INVALID_CONVERSION_TYPE = 6 + INVALID_DESCRIPTION = 7 + INVALID_NAME = 8 + INVALID_TYPE = 9 + CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND = 10 + INVALID_USER_LIST_LOGICAL_RULE_OPERAND = 11 + NAME_ALREADY_USED = 12 + NEW_CONVERSION_TYPE_NAME_REQUIRED = 13 + CONVERSION_TYPE_NAME_ALREADY_USED = 14 + OWNERSHIP_REQUIRED_FOR_SET = 15 + USER_LIST_MUTATE_NOT_SUPPORTED = 16 + INVALID_RULE = 17 + INVALID_DATE_RANGE = 27 + CAN_NOT_MUTATE_SENSITIVE_USERLIST = 28 + MAX_NUM_RULEBASED_USERLISTS = 29 + CANNOT_MODIFY_BILLABLE_RECORD_COUNT = 30 + APP_ID_NOT_SET = 31 + USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST = 32 + ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA = 37 + RULE_TYPE_IS_NOT_SUPPORTED = 34 + CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND = 35 + CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS = 36 +''' +UserListErrorEnum = UserListErrorEnum() # For __getattribute__ + + +class UserListLogicalRuleOperatorEnum(_CreateEnumTypeUponFirstAccess): + UserListLogicalRuleOperator = '''\ + class UserListLogicalRuleOperator(enum.IntEnum): + """ + Enum describing possible user list logical rule operators. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ALL (int): And - all of the operands. + ANY (int): Or - at least one of the operands. + NONE (int): Not - none of the operands. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ALL = 2 + ANY = 3 + NONE = 4 +''' +UserListLogicalRuleOperatorEnum = UserListLogicalRuleOperatorEnum() # For __getattribute__ + + +class UserListMembershipStatusEnum(_CreateEnumTypeUponFirstAccess): + UserListMembershipStatus = '''\ + class UserListMembershipStatus(enum.IntEnum): + """ + Enum containing possible user list membership statuses. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + OPEN (int): Open status - List is accruing members and can be targeted to. + CLOSED (int): Closed status - No new members being added. Cannot be used for targeting. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPEN = 2 + CLOSED = 3 +''' +UserListMembershipStatusEnum = UserListMembershipStatusEnum() # For __getattribute__ + + +class UserListNumberRuleItemOperatorEnum(_CreateEnumTypeUponFirstAccess): + UserListNumberRuleItemOperator = '''\ + class UserListNumberRuleItemOperator(enum.IntEnum): + """ + Enum describing possible user list number rule item operators. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + GREATER_THAN (int): Greater than. + GREATER_THAN_OR_EQUAL (int): Greater than or equal. + EQUALS (int): Equals. + NOT_EQUALS (int): Not equals. + LESS_THAN (int): Less than. + LESS_THAN_OR_EQUAL (int): Less than or equal. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + GREATER_THAN = 2 + GREATER_THAN_OR_EQUAL = 3 + EQUALS = 4 + NOT_EQUALS = 5 + LESS_THAN = 6 + LESS_THAN_OR_EQUAL = 7 +''' +UserListNumberRuleItemOperatorEnum = UserListNumberRuleItemOperatorEnum() # For __getattribute__ + + +class UserListPrepopulationStatusEnum(_CreateEnumTypeUponFirstAccess): + UserListPrepopulationStatus = '''\ + class UserListPrepopulationStatus(enum.IntEnum): + """ + Enum describing possible user list prepopulation status. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + REQUESTED (int): Prepopoulation is being requested. + FINISHED (int): Prepopulation is finished. + FAILED (int): Prepopulation failed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUESTED = 2 + FINISHED = 3 + FAILED = 4 +''' +UserListPrepopulationStatusEnum = UserListPrepopulationStatusEnum() # For __getattribute__ + + +class UserListRuleTypeEnum(_CreateEnumTypeUponFirstAccess): + UserListRuleType = '''\ + class UserListRuleType(enum.IntEnum): + """ + Enum describing possible user list rule types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + AND_OF_ORS (int): Conjunctive normal form. + OR_OF_ANDS (int): Disjunctive normal form. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AND_OF_ORS = 2 + OR_OF_ANDS = 3 +''' +UserListRuleTypeEnum = UserListRuleTypeEnum() # For __getattribute__ + + +class UserListSizeRangeEnum(_CreateEnumTypeUponFirstAccess): + UserListSizeRange = '''\ + class UserListSizeRange(enum.IntEnum): + """ + Enum containing possible user list size ranges. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + LESS_THAN_FIVE_HUNDRED (int): User list has less than 500 users. + LESS_THAN_ONE_THOUSAND (int): User list has number of users in range of 500 to 1000. + ONE_THOUSAND_TO_TEN_THOUSAND (int): User list has number of users in range of 1000 to 10000. + TEN_THOUSAND_TO_FIFTY_THOUSAND (int): User list has number of users in range of 10000 to 50000. + FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND (int): User list has number of users in range of 50000 to 100000. + ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND (int): User list has number of users in range of 100000 to 300000. + THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND (int): User list has number of users in range of 300000 to 500000. + FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION (int): User list has number of users in range of 500000 to 1 million. + ONE_MILLION_TO_TWO_MILLION (int): User list has number of users in range of 1 to 2 millions. + TWO_MILLION_TO_THREE_MILLION (int): User list has number of users in range of 2 to 3 millions. + THREE_MILLION_TO_FIVE_MILLION (int): User list has number of users in range of 3 to 5 millions. + FIVE_MILLION_TO_TEN_MILLION (int): User list has number of users in range of 5 to 10 millions. + TEN_MILLION_TO_TWENTY_MILLION (int): User list has number of users in range of 10 to 20 millions. + TWENTY_MILLION_TO_THIRTY_MILLION (int): User list has number of users in range of 20 to 30 millions. + THIRTY_MILLION_TO_FIFTY_MILLION (int): User list has number of users in range of 30 to 50 millions. + OVER_FIFTY_MILLION (int): User list has over 50 million users. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + LESS_THAN_FIVE_HUNDRED = 2 + LESS_THAN_ONE_THOUSAND = 3 + ONE_THOUSAND_TO_TEN_THOUSAND = 4 + TEN_THOUSAND_TO_FIFTY_THOUSAND = 5 + FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND = 6 + ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND = 7 + THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND = 8 + FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION = 9 + ONE_MILLION_TO_TWO_MILLION = 10 + TWO_MILLION_TO_THREE_MILLION = 11 + THREE_MILLION_TO_FIVE_MILLION = 12 + FIVE_MILLION_TO_TEN_MILLION = 13 + TEN_MILLION_TO_TWENTY_MILLION = 14 + TWENTY_MILLION_TO_THIRTY_MILLION = 15 + THIRTY_MILLION_TO_FIFTY_MILLION = 16 + OVER_FIFTY_MILLION = 17 +''' +UserListSizeRangeEnum = UserListSizeRangeEnum() # For __getattribute__ + + +class UserListStringRuleItemOperatorEnum(_CreateEnumTypeUponFirstAccess): + UserListStringRuleItemOperator = '''\ + class UserListStringRuleItemOperator(enum.IntEnum): + """ + Enum describing possible user list string rule item operators. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CONTAINS (int): Contains. + EQUALS (int): Equals. + STARTS_WITH (int): Starts with. + ENDS_WITH (int): Ends with. + NOT_EQUALS (int): Not equals. + NOT_CONTAINS (int): Not contains. + NOT_STARTS_WITH (int): Not starts with. + NOT_ENDS_WITH (int): Not ends with. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONTAINS = 2 + EQUALS = 3 + STARTS_WITH = 4 + ENDS_WITH = 5 + NOT_EQUALS = 6 + NOT_CONTAINS = 7 + NOT_STARTS_WITH = 8 + NOT_ENDS_WITH = 9 +''' +UserListStringRuleItemOperatorEnum = UserListStringRuleItemOperatorEnum() # For __getattribute__ + + +class UserListTypeEnum(_CreateEnumTypeUponFirstAccess): + UserListType = '''\ + class UserListType(enum.IntEnum): + """ + Enum containing possible user list types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + REMARKETING (int): UserList represented as a collection of conversion types. + LOGICAL (int): UserList represented as a combination of other user lists/interests. + EXTERNAL_REMARKETING (int): UserList created in the Google Ad Manager platform. + RULE_BASED (int): UserList associated with a rule. + SIMILAR (int): UserList with users similar to users of another UserList. + CRM_BASED (int): UserList of first-party CRM data provided by advertiser in the form of + emails or other formats. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REMARKETING = 2 + LOGICAL = 3 + EXTERNAL_REMARKETING = 4 + RULE_BASED = 5 + SIMILAR = 6 + CRM_BASED = 7 +''' +UserListTypeEnum = UserListTypeEnum() # For __getattribute__ + + +class VanityPharmaDisplayUrlModeEnum(_CreateEnumTypeUponFirstAccess): + VanityPharmaDisplayUrlMode = '''\ + class VanityPharmaDisplayUrlMode(enum.IntEnum): + """ + Enum describing possible display modes for vanity pharma URLs. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + MANUFACTURER_WEBSITE_URL (int): Replace vanity pharma URL with manufacturer website url. + WEBSITE_DESCRIPTION (int): Replace vanity pharma URL with description of the website. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MANUFACTURER_WEBSITE_URL = 2 + WEBSITE_DESCRIPTION = 3 +''' +VanityPharmaDisplayUrlModeEnum = VanityPharmaDisplayUrlModeEnum() # For __getattribute__ + + +class VanityPharmaTextEnum(_CreateEnumTypeUponFirstAccess): + VanityPharmaText = '''\ + class VanityPharmaText(enum.IntEnum): + """ + Enum describing possible text. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + PRESCRIPTION_TREATMENT_WEBSITE_EN (int): Prescription treatment website with website content in English. + PRESCRIPTION_TREATMENT_WEBSITE_ES (int): Prescription treatment website with website content in Spanish + (Sitio de tratamientos con receta). + PRESCRIPTION_DEVICE_WEBSITE_EN (int): Prescription device website with website content in English. + PRESCRIPTION_DEVICE_WEBSITE_ES (int): Prescription device website with website content in Spanish (Sitio de + dispositivos con receta). + MEDICAL_DEVICE_WEBSITE_EN (int): Medical device website with website content in English. + MEDICAL_DEVICE_WEBSITE_ES (int): Medical device website with website content in Spanish (Sitio de + dispositivos médicos). + PREVENTATIVE_TREATMENT_WEBSITE_EN (int): Preventative treatment website with website content in English. + PREVENTATIVE_TREATMENT_WEBSITE_ES (int): Preventative treatment website with website content in Spanish (Sitio de + tratamientos preventivos). + PRESCRIPTION_CONTRACEPTION_WEBSITE_EN (int): Prescription contraception website with website content in English. + PRESCRIPTION_CONTRACEPTION_WEBSITE_ES (int): Prescription contraception website with website content in Spanish (Sitio + de anticonceptivos con receta). + PRESCRIPTION_VACCINE_WEBSITE_EN (int): Prescription vaccine website with website content in English. + PRESCRIPTION_VACCINE_WEBSITE_ES (int): Prescription vaccine website with website content in Spanish (Sitio de + vacunas con receta). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + PRESCRIPTION_TREATMENT_WEBSITE_EN = 2 + PRESCRIPTION_TREATMENT_WEBSITE_ES = 3 + PRESCRIPTION_DEVICE_WEBSITE_EN = 4 + PRESCRIPTION_DEVICE_WEBSITE_ES = 5 + MEDICAL_DEVICE_WEBSITE_EN = 6 + MEDICAL_DEVICE_WEBSITE_ES = 7 + PREVENTATIVE_TREATMENT_WEBSITE_EN = 8 + PREVENTATIVE_TREATMENT_WEBSITE_ES = 9 + PRESCRIPTION_CONTRACEPTION_WEBSITE_EN = 10 + PRESCRIPTION_CONTRACEPTION_WEBSITE_ES = 11 + PRESCRIPTION_VACCINE_WEBSITE_EN = 12 + PRESCRIPTION_VACCINE_WEBSITE_ES = 13 +''' +VanityPharmaTextEnum = VanityPharmaTextEnum() # For __getattribute__ + + +class WebpageConditionOperandEnum(_CreateEnumTypeUponFirstAccess): + WebpageConditionOperand = '''\ + class WebpageConditionOperand(enum.IntEnum): + """ + The webpage condition operand in webpage criterion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + URL (int): Operand denoting a webpage URL targeting condition. + CATEGORY (int): Operand denoting a webpage category targeting condition. + PAGE_TITLE (int): Operand denoting a webpage title targeting condition. + PAGE_CONTENT (int): Operand denoting a webpage content targeting condition. + CUSTOM_LABEL (int): Operand denoting a webpage custom label targeting condition. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + URL = 2 + CATEGORY = 3 + PAGE_TITLE = 4 + PAGE_CONTENT = 5 + CUSTOM_LABEL = 6 +''' +WebpageConditionOperandEnum = WebpageConditionOperandEnum() # For __getattribute__ + + +class WebpageConditionOperatorEnum(_CreateEnumTypeUponFirstAccess): + WebpageConditionOperator = '''\ + class WebpageConditionOperator(enum.IntEnum): + """ + The webpage condition operator in webpage criterion. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EQUALS (int): The argument web condition is equal to the compared web condition. + CONTAINS (int): The argument web condition is part of the compared web condition. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EQUALS = 2 + CONTAINS = 3 +''' +WebpageConditionOperatorEnum = WebpageConditionOperatorEnum() # For __getattribute__ + + +class YoutubeVideoRegistrationErrorEnum(_CreateEnumTypeUponFirstAccess): + YoutubeVideoRegistrationError = '''\ + class YoutubeVideoRegistrationError(enum.IntEnum): + """ + Enum describing YouTube video registration errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + VIDEO_NOT_FOUND (int): Video to be registered wasn't found. + VIDEO_NOT_ACCESSIBLE (int): Video to be registered is not accessible (e.g. private). + VIDEO_NOT_ELIGIBLE (int): Video to be registered is not eligible (e.g. mature content). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + VIDEO_NOT_FOUND = 2 + VIDEO_NOT_ACCESSIBLE = 3 + VIDEO_NOT_ELIGIBLE = 4 +''' +YoutubeVideoRegistrationErrorEnum = YoutubeVideoRegistrationErrorEnum() # For __getattribute__ + + diff --git a/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client.py b/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client.py new file mode 100644 index 000000000..9e9ce188e --- /dev/null +++ b/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ExpandedLandingPageViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import expanded_landing_page_view_service_client_config +from google.ads.google_ads.v5.services.transports import expanded_landing_page_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import expanded_landing_page_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ExpandedLandingPageViewServiceClient(object): + """Service to fetch expanded landing page views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ExpandedLandingPageViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ExpandedLandingPageViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def expanded_landing_page_view_path(cls, customer, expanded_landing_page_view): + """Return a fully-qualified expanded_landing_page_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/expandedLandingPageViews/{expanded_landing_page_view}', + customer=customer, + expanded_landing_page_view=expanded_landing_page_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ExpandedLandingPageViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ExpandedLandingPageViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = expanded_landing_page_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=expanded_landing_page_view_service_grpc_transport.ExpandedLandingPageViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = expanded_landing_page_view_service_grpc_transport.ExpandedLandingPageViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_expanded_landing_page_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested expanded landing page view in full detail. + + Args: + resource_name (str): Required. The resource name of the expanded landing page view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ExpandedLandingPageView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_expanded_landing_page_view' not in self._inner_api_calls: + self._inner_api_calls['get_expanded_landing_page_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_expanded_landing_page_view, + default_retry=self._method_configs['GetExpandedLandingPageView'].retry, + default_timeout=self._method_configs['GetExpandedLandingPageView'].timeout, + client_info=self._client_info, + ) + + request = expanded_landing_page_view_service_pb2.GetExpandedLandingPageViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_expanded_landing_page_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client_config.py b/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client_config.py new file mode 100644 index 000000000..73a69d21d --- /dev/null +++ b/google/ads/google_ads/v5/services/expanded_landing_page_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ExpandedLandingPageViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetExpandedLandingPageView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/extension_feed_item_service_client.py b/google/ads/google_ads/v5/services/extension_feed_item_service_client.py new file mode 100644 index 000000000..cd0735aa7 --- /dev/null +++ b/google/ads/google_ads/v5/services/extension_feed_item_service_client.py @@ -0,0 +1,315 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ExtensionFeedItemService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import extension_feed_item_service_client_config +from google.ads.google_ads.v5.services.transports import extension_feed_item_service_grpc_transport +from google.ads.google_ads.v5.proto.services import extension_feed_item_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ExtensionFeedItemServiceClient(object): + """Service to manage extension feed items.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ExtensionFeedItemService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ExtensionFeedItemServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def extension_feed_item_path(cls, customer, extension_feed_item): + """Return a fully-qualified extension_feed_item string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/extensionFeedItems/{extension_feed_item}', + customer=customer, + extension_feed_item=extension_feed_item, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ExtensionFeedItemServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ExtensionFeedItemServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = extension_feed_item_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=extension_feed_item_service_grpc_transport.ExtensionFeedItemServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = extension_feed_item_service_grpc_transport.ExtensionFeedItemServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_extension_feed_item( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested extension feed item in full detail. + + Args: + resource_name (str): Required. The resource name of the extension feed item to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ExtensionFeedItem` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_extension_feed_item' not in self._inner_api_calls: + self._inner_api_calls['get_extension_feed_item'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_extension_feed_item, + default_retry=self._method_configs['GetExtensionFeedItem'].retry, + default_timeout=self._method_configs['GetExtensionFeedItem'].timeout, + client_info=self._client_info, + ) + + request = extension_feed_item_service_pb2.GetExtensionFeedItemRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_extension_feed_item'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_extension_feed_items( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes extension feed items. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose extension feed items are being + modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.ExtensionFeedItemOperation]]): Required. The list of operations to perform on individual extension feed items. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.ExtensionFeedItemOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateExtensionFeedItemsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_extension_feed_items' not in self._inner_api_calls: + self._inner_api_calls['mutate_extension_feed_items'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_extension_feed_items, + default_retry=self._method_configs['MutateExtensionFeedItems'].retry, + default_timeout=self._method_configs['MutateExtensionFeedItems'].timeout, + client_info=self._client_info, + ) + + request = extension_feed_item_service_pb2.MutateExtensionFeedItemsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_extension_feed_items'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/extension_feed_item_service_client_config.py b/google/ads/google_ads/v5/services/extension_feed_item_service_client_config.py new file mode 100644 index 000000000..f74d62a68 --- /dev/null +++ b/google/ads/google_ads/v5/services/extension_feed_item_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ExtensionFeedItemService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetExtensionFeedItem": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateExtensionFeedItems": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/feed_item_service_client.py b/google/ads/google_ads/v5/services/feed_item_service_client.py new file mode 100644 index 000000000..be405c0e4 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_item_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services FeedItemService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import feed_item_service_client_config +from google.ads.google_ads.v5.services.transports import feed_item_service_grpc_transport +from google.ads.google_ads.v5.proto.services import feed_item_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class FeedItemServiceClient(object): + """Service to manage feed items.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.FeedItemService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + FeedItemServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def feed_item_path(cls, customer, feed_item): + """Return a fully-qualified feed_item string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/feedItems/{feed_item}', + customer=customer, + feed_item=feed_item, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.FeedItemServiceGrpcTransport, + Callable[[~.Credentials, type], ~.FeedItemServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = feed_item_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=feed_item_service_grpc_transport.FeedItemServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = feed_item_service_grpc_transport.FeedItemServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_feed_item( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested feed item in full detail. + + Args: + resource_name (str): Required. The resource name of the feed item to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.FeedItem` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_feed_item' not in self._inner_api_calls: + self._inner_api_calls['get_feed_item'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_feed_item, + default_retry=self._method_configs['GetFeedItem'].retry, + default_timeout=self._method_configs['GetFeedItem'].timeout, + client_info=self._client_info, + ) + + request = feed_item_service_pb2.GetFeedItemRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_feed_item'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_feed_items( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes feed items. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose feed items are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.FeedItemOperation]]): Required. The list of operations to perform on individual feed items. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.FeedItemOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateFeedItemsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_feed_items' not in self._inner_api_calls: + self._inner_api_calls['mutate_feed_items'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_feed_items, + default_retry=self._method_configs['MutateFeedItems'].retry, + default_timeout=self._method_configs['MutateFeedItems'].timeout, + client_info=self._client_info, + ) + + request = feed_item_service_pb2.MutateFeedItemsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_feed_items'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/feed_item_service_client_config.py b/google/ads/google_ads/v5/services/feed_item_service_client_config.py new file mode 100644 index 000000000..821c02a71 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_item_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.FeedItemService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetFeedItem": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateFeedItems": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/feed_item_target_service_client.py b/google/ads/google_ads/v5/services/feed_item_target_service_client.py new file mode 100644 index 000000000..b8e2b43a9 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_item_target_service_client.py @@ -0,0 +1,299 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services FeedItemTargetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import feed_item_target_service_client_config +from google.ads.google_ads.v5.services.transports import feed_item_target_service_grpc_transport +from google.ads.google_ads.v5.proto.services import feed_item_target_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class FeedItemTargetServiceClient(object): + """Service to manage feed item targets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.FeedItemTargetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + FeedItemTargetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def feed_item_target_path(cls, customer, feed_item_target): + """Return a fully-qualified feed_item_target string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/feedItemTargets/{feed_item_target}', + customer=customer, + feed_item_target=feed_item_target, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.FeedItemTargetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.FeedItemTargetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = feed_item_target_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=feed_item_target_service_grpc_transport.FeedItemTargetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = feed_item_target_service_grpc_transport.FeedItemTargetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_feed_item_target( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested feed item targets in full detail. + + Args: + resource_name (str): Required. The resource name of the feed item targets to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.FeedItemTarget` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_feed_item_target' not in self._inner_api_calls: + self._inner_api_calls['get_feed_item_target'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_feed_item_target, + default_retry=self._method_configs['GetFeedItemTarget'].retry, + default_timeout=self._method_configs['GetFeedItemTarget'].timeout, + client_info=self._client_info, + ) + + request = feed_item_target_service_pb2.GetFeedItemTargetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_feed_item_target'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_feed_item_targets( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes feed item targets. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose feed item targets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.FeedItemTargetOperation]]): Required. The list of operations to perform on individual feed item targets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.FeedItemTargetOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateFeedItemTargetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_feed_item_targets' not in self._inner_api_calls: + self._inner_api_calls['mutate_feed_item_targets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_feed_item_targets, + default_retry=self._method_configs['MutateFeedItemTargets'].retry, + default_timeout=self._method_configs['MutateFeedItemTargets'].timeout, + client_info=self._client_info, + ) + + request = feed_item_target_service_pb2.MutateFeedItemTargetsRequest( + customer_id=customer_id, + operations=operations, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_feed_item_targets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/feed_item_target_service_client_config.py b/google/ads/google_ads/v5/services/feed_item_target_service_client_config.py new file mode 100644 index 000000000..b757f1143 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_item_target_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.FeedItemTargetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetFeedItemTarget": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateFeedItemTargets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/feed_mapping_service_client.py b/google/ads/google_ads/v5/services/feed_mapping_service_client.py new file mode 100644 index 000000000..d269cc7bc --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_mapping_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services FeedMappingService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import feed_mapping_service_client_config +from google.ads.google_ads.v5.services.transports import feed_mapping_service_grpc_transport +from google.ads.google_ads.v5.proto.services import feed_mapping_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class FeedMappingServiceClient(object): + """Service to manage feed mappings.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.FeedMappingService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + FeedMappingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def feed_mapping_path(cls, customer, feed_mapping): + """Return a fully-qualified feed_mapping string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/feedMappings/{feed_mapping}', + customer=customer, + feed_mapping=feed_mapping, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.FeedMappingServiceGrpcTransport, + Callable[[~.Credentials, type], ~.FeedMappingServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = feed_mapping_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=feed_mapping_service_grpc_transport.FeedMappingServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = feed_mapping_service_grpc_transport.FeedMappingServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_feed_mapping( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested feed mapping in full detail. + + Args: + resource_name (str): Required. The resource name of the feed mapping to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.FeedMapping` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_feed_mapping' not in self._inner_api_calls: + self._inner_api_calls['get_feed_mapping'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_feed_mapping, + default_retry=self._method_configs['GetFeedMapping'].retry, + default_timeout=self._method_configs['GetFeedMapping'].timeout, + client_info=self._client_info, + ) + + request = feed_mapping_service_pb2.GetFeedMappingRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_feed_mapping'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_feed_mappings( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes feed mappings. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose feed mappings are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.FeedMappingOperation]]): Required. The list of operations to perform on individual feed mappings. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.FeedMappingOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateFeedMappingsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_feed_mappings' not in self._inner_api_calls: + self._inner_api_calls['mutate_feed_mappings'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_feed_mappings, + default_retry=self._method_configs['MutateFeedMappings'].retry, + default_timeout=self._method_configs['MutateFeedMappings'].timeout, + client_info=self._client_info, + ) + + request = feed_mapping_service_pb2.MutateFeedMappingsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_feed_mappings'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/feed_mapping_service_client_config.py b/google/ads/google_ads/v5/services/feed_mapping_service_client_config.py new file mode 100644 index 000000000..3e6c28a75 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_mapping_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.FeedMappingService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetFeedMapping": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateFeedMappings": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/feed_placeholder_view_service_client.py b/google/ads/google_ads/v5/services/feed_placeholder_view_service_client.py new file mode 100644 index 000000000..87df07211 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_placeholder_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services FeedPlaceholderViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import feed_placeholder_view_service_client_config +from google.ads.google_ads.v5.services.transports import feed_placeholder_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import feed_placeholder_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class FeedPlaceholderViewServiceClient(object): + """Service to fetch feed placeholder views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.FeedPlaceholderViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + FeedPlaceholderViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def feed_placeholder_view_path(cls, customer, feed_placeholder_view): + """Return a fully-qualified feed_placeholder_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/feedPlaceholderViews/{feed_placeholder_view}', + customer=customer, + feed_placeholder_view=feed_placeholder_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.FeedPlaceholderViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.FeedPlaceholderViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = feed_placeholder_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=feed_placeholder_view_service_grpc_transport.FeedPlaceholderViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = feed_placeholder_view_service_grpc_transport.FeedPlaceholderViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_feed_placeholder_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested feed placeholder view in full detail. + + Args: + resource_name (str): Required. The resource name of the feed placeholder view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.FeedPlaceholderView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_feed_placeholder_view' not in self._inner_api_calls: + self._inner_api_calls['get_feed_placeholder_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_feed_placeholder_view, + default_retry=self._method_configs['GetFeedPlaceholderView'].retry, + default_timeout=self._method_configs['GetFeedPlaceholderView'].timeout, + client_info=self._client_info, + ) + + request = feed_placeholder_view_service_pb2.GetFeedPlaceholderViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_feed_placeholder_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/feed_placeholder_view_service_client_config.py b/google/ads/google_ads/v5/services/feed_placeholder_view_service_client_config.py new file mode 100644 index 000000000..337702352 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_placeholder_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.FeedPlaceholderViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetFeedPlaceholderView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/feed_service_client.py b/google/ads/google_ads/v5/services/feed_service_client.py new file mode 100644 index 000000000..32901bd86 --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_service_client.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services FeedService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import feed_service_client_config +from google.ads.google_ads.v5.services.transports import feed_service_grpc_transport +from google.ads.google_ads.v5.proto.services import feed_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class FeedServiceClient(object): + """Service to manage feeds.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.FeedService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + FeedServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def feed_path(cls, customer, feed): + """Return a fully-qualified feed string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/feeds/{feed}', + customer=customer, + feed=feed, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.FeedServiceGrpcTransport, + Callable[[~.Credentials, type], ~.FeedServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = feed_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=feed_service_grpc_transport.FeedServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = feed_service_grpc_transport.FeedServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_feed( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested feed in full detail. + + Args: + resource_name (str): Required. The resource name of the feed to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Feed` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_feed' not in self._inner_api_calls: + self._inner_api_calls['get_feed'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_feed, + default_retry=self._method_configs['GetFeed'].retry, + default_timeout=self._method_configs['GetFeed'].timeout, + client_info=self._client_info, + ) + + request = feed_service_pb2.GetFeedRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_feed'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_feeds( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes feeds. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose feeds are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.FeedOperation]]): Required. The list of operations to perform on individual feeds. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.FeedOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateFeedsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_feeds' not in self._inner_api_calls: + self._inner_api_calls['mutate_feeds'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_feeds, + default_retry=self._method_configs['MutateFeeds'].retry, + default_timeout=self._method_configs['MutateFeeds'].timeout, + client_info=self._client_info, + ) + + request = feed_service_pb2.MutateFeedsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_feeds'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/feed_service_client_config.py b/google/ads/google_ads/v5/services/feed_service_client_config.py new file mode 100644 index 000000000..b9f669aba --- /dev/null +++ b/google/ads/google_ads/v5/services/feed_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.FeedService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetFeed": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateFeeds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/gender_view_service_client.py b/google/ads/google_ads/v5/services/gender_view_service_client.py new file mode 100644 index 000000000..d6ddd392f --- /dev/null +++ b/google/ads/google_ads/v5/services/gender_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GenderViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import gender_view_service_client_config +from google.ads.google_ads.v5.services.transports import gender_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import gender_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GenderViewServiceClient(object): + """Service to manage gender views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GenderViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GenderViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def gender_view_path(cls, customer, gender_view): + """Return a fully-qualified gender_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/genderViews/{gender_view}', + customer=customer, + gender_view=gender_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GenderViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GenderViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = gender_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=gender_view_service_grpc_transport.GenderViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = gender_view_service_grpc_transport.GenderViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_gender_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested gender view in full detail. + + Args: + resource_name (str): Required. The resource name of the gender view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenderView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_gender_view' not in self._inner_api_calls: + self._inner_api_calls['get_gender_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_gender_view, + default_retry=self._method_configs['GetGenderView'].retry, + default_timeout=self._method_configs['GetGenderView'].timeout, + client_info=self._client_info, + ) + + request = gender_view_service_pb2.GetGenderViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_gender_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/gender_view_service_client_config.py b/google/ads/google_ads/v5/services/gender_view_service_client_config.py new file mode 100644 index 000000000..4ed743288 --- /dev/null +++ b/google/ads/google_ads/v5/services/gender_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GenderViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetGenderView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/geo_target_constant_service_client.py b/google/ads/google_ads/v5/services/geo_target_constant_service_client.py new file mode 100644 index 000000000..03d240d2d --- /dev/null +++ b/google/ads/google_ads/v5/services/geo_target_constant_service_client.py @@ -0,0 +1,318 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GeoTargetConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template +import google.api_core.protobuf_helpers + +from google.ads.google_ads.v5.services import geo_target_constant_service_client_config +from google.ads.google_ads.v5.services.transports import geo_target_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import geo_target_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GeoTargetConstantServiceClient(object): + """Service to fetch geo target constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GeoTargetConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GeoTargetConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def geo_target_constant_path(cls, geo_target_constant): + """Return a fully-qualified geo_target_constant string.""" + return google.api_core.path_template.expand( + 'geoTargetConstants/{geo_target_constant}', + geo_target_constant=geo_target_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GeoTargetConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GeoTargetConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = geo_target_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=geo_target_constant_service_grpc_transport.GeoTargetConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = geo_target_constant_service_grpc_transport.GeoTargetConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_geo_target_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested geo target constant in full detail. + + Args: + resource_name (str): Required. The resource name of the geo target constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GeoTargetConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_geo_target_constant' not in self._inner_api_calls: + self._inner_api_calls['get_geo_target_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_geo_target_constant, + default_retry=self._method_configs['GetGeoTargetConstant'].retry, + default_timeout=self._method_configs['GetGeoTargetConstant'].timeout, + client_info=self._client_info, + ) + + request = geo_target_constant_service_pb2.GetGeoTargetConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_geo_target_constant'](request, retry=retry, timeout=timeout, metadata=metadata) + + def suggest_geo_target_constants( + self, + locale=None, + country_code=None, + location_names=None, + geo_targets=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns GeoTargetConstant suggestions by location name or by resource name. + + Args: + locale (str): If possible, returned geo targets are translated using this locale. If not, + en is used by default. This is also used as a hint for returned geo + targets. + country_code (str): Returned geo targets are restricted to this country code. + location_names (Union[dict, ~google.ads.googleads_v5.types.LocationNames]): The location names to search by. At most 25 names can be set. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.LocationNames` + geo_targets (Union[dict, ~google.ads.googleads_v5.types.GeoTargets]): The geo target constant resource names to filter by. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.GeoTargets` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.SuggestGeoTargetConstantsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'suggest_geo_target_constants' not in self._inner_api_calls: + self._inner_api_calls['suggest_geo_target_constants'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.suggest_geo_target_constants, + default_retry=self._method_configs['SuggestGeoTargetConstants'].retry, + default_timeout=self._method_configs['SuggestGeoTargetConstants'].timeout, + client_info=self._client_info, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + locale=locale, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + country_code=country_code, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + location_names=location_names, + geo_targets=geo_targets, + ) + + request = geo_target_constant_service_pb2.SuggestGeoTargetConstantsRequest( + locale=locale, + country_code=country_code, + location_names=location_names, + geo_targets=geo_targets, + ) + return self._inner_api_calls['suggest_geo_target_constants'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/geo_target_constant_service_client_config.py b/google/ads/google_ads/v5/services/geo_target_constant_service_client_config.py new file mode 100644 index 000000000..4d26ffd33 --- /dev/null +++ b/google/ads/google_ads/v5/services/geo_target_constant_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GeoTargetConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetGeoTargetConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "SuggestGeoTargetConstants": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/geographic_view_service_client.py b/google/ads/google_ads/v5/services/geographic_view_service_client.py new file mode 100644 index 000000000..e57ded29c --- /dev/null +++ b/google/ads/google_ads/v5/services/geographic_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GeographicViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import geographic_view_service_client_config +from google.ads.google_ads.v5.services.transports import geographic_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import geographic_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GeographicViewServiceClient(object): + """Service to manage geographic views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GeographicViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GeographicViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def geographic_view_path(cls, customer, geographic_view): + """Return a fully-qualified geographic_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/geographicViews/{geographic_view}', + customer=customer, + geographic_view=geographic_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GeographicViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GeographicViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = geographic_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=geographic_view_service_grpc_transport.GeographicViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = geographic_view_service_grpc_transport.GeographicViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_geographic_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested geographic view in full detail. + + Args: + resource_name (str): Required. The resource name of the geographic view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GeographicView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_geographic_view' not in self._inner_api_calls: + self._inner_api_calls['get_geographic_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_geographic_view, + default_retry=self._method_configs['GetGeographicView'].retry, + default_timeout=self._method_configs['GetGeographicView'].timeout, + client_info=self._client_info, + ) + + request = geographic_view_service_pb2.GetGeographicViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_geographic_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/geographic_view_service_client_config.py b/google/ads/google_ads/v5/services/geographic_view_service_client_config.py new file mode 100644 index 000000000..dd94f68a5 --- /dev/null +++ b/google/ads/google_ads/v5/services/geographic_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GeographicViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetGeographicView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/google_ads_field_service_client.py b/google/ads/google_ads/v5/services/google_ads_field_service_client.py new file mode 100644 index 000000000..bb5992a3b --- /dev/null +++ b/google/ads/google_ads/v5/services/google_ads_field_service_client.py @@ -0,0 +1,301 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GoogleAdsFieldService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.page_iterator +import google.api_core.path_template + +from google.ads.google_ads.v5.services import google_ads_field_service_client_config +from google.ads.google_ads.v5.services.transports import google_ads_field_service_grpc_transport +from google.ads.google_ads.v5.proto.services import google_ads_field_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GoogleAdsFieldServiceClient(object): + """Service to fetch Google Ads API fields.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GoogleAdsFieldService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GoogleAdsFieldServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def google_ads_field_path(cls, google_ads_field): + """Return a fully-qualified google_ads_field string.""" + return google.api_core.path_template.expand( + 'googleAdsFields/{google_ads_field}', + google_ads_field=google_ads_field, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GoogleAdsFieldServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GoogleAdsFieldServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = google_ads_field_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=google_ads_field_service_grpc_transport.GoogleAdsFieldServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = google_ads_field_service_grpc_transport.GoogleAdsFieldServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_google_ads_field( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns just the requested field. + + Args: + resource_name (str): Required. The resource name of the field to get. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GoogleAdsField` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_google_ads_field' not in self._inner_api_calls: + self._inner_api_calls['get_google_ads_field'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_google_ads_field, + default_retry=self._method_configs['GetGoogleAdsField'].retry, + default_timeout=self._method_configs['GetGoogleAdsField'].timeout, + client_info=self._client_info, + ) + + request = google_ads_field_service_pb2.GetGoogleAdsFieldRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_google_ads_field'](request, retry=retry, timeout=timeout, metadata=metadata) + + def search_google_ads_fields( + self, + query, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all fields that match the search query. + + Args: + query (str): Required. The query string. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.GoogleAdsField` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'search_google_ads_fields' not in self._inner_api_calls: + self._inner_api_calls['search_google_ads_fields'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_google_ads_fields, + default_retry=self._method_configs['SearchGoogleAdsFields'].retry, + default_timeout=self._method_configs['SearchGoogleAdsFields'].timeout, + client_info=self._client_info, + ) + + request = google_ads_field_service_pb2.SearchGoogleAdsFieldsRequest( + query=query, + page_size=page_size, + ) + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['search_google_ads_fields'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v5/services/google_ads_field_service_client_config.py b/google/ads/google_ads/v5/services/google_ads_field_service_client_config.py new file mode 100644 index 000000000..0f573b019 --- /dev/null +++ b/google/ads/google_ads/v5/services/google_ads_field_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GoogleAdsFieldService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetGoogleAdsField": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "SearchGoogleAdsFields": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/google_ads_service_client.py b/google/ads/google_ads/v5/services/google_ads_service_client.py new file mode 100644 index 000000000..02c6d3eb0 --- /dev/null +++ b/google/ads/google_ads/v5/services/google_ads_service_client.py @@ -0,0 +1,454 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GoogleAdsService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.page_iterator + +from google.ads.google_ads.v5.services import google_ads_service_client_config +from google.ads.google_ads.v5.services.transports import google_ads_service_grpc_transport +from google.ads.google_ads.v5.proto.services import google_ads_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GoogleAdsServiceClient(object): + """Service to fetch data and metrics across resources.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GoogleAdsService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GoogleAdsServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GoogleAdsServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GoogleAdsServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = google_ads_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=google_ads_service_grpc_transport.GoogleAdsServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = google_ads_service_grpc_transport.GoogleAdsServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def search( + self, + customer_id, + query, + page_size=None, + validate_only=None, + return_total_results_count=None, + summary_row_setting=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all rows that match the search query. + + Args: + customer_id (str): Required. The ID of the customer being queried. + query (str): Required. The query string. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + validate_only (bool): If true, the request is validated but not executed. + return_total_results_count (bool): If true, the total number of results that match the query ignoring the + LIMIT clause will be included in the response. + Default is false. + summary_row_setting (~google.ads.googleads_v5.types.SummaryRowSetting): Determines whether a summary row will be returned. By default, summary row + is not returned. If requested, the summary row will be sent in a response + by itself after all other query results are returned. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.GoogleAdsRow` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'search' not in self._inner_api_calls: + self._inner_api_calls['search'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search, + default_retry=self._method_configs['Search'].retry, + default_timeout=self._method_configs['Search'].timeout, + client_info=self._client_info, + ) + + request = google_ads_service_pb2.SearchGoogleAdsRequest( + customer_id=customer_id, + query=query, + page_size=page_size, + validate_only=validate_only, + return_total_results_count=return_total_results_count, + summary_row_setting=summary_row_setting, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['search'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator + + def search_stream( + self, + customer_id, + query, + summary_row_setting=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all rows that match the search stream query. + + Args: + customer_id (str): Required. The ID of the customer being queried. + query (str): Required. The query string. + summary_row_setting (~google.ads.googleads_v5.types.SummaryRowSetting): Determines whether a summary row will be returned. By default, summary row + is not returned. If requested, the summary row will be sent in a response + by itself after all other query results are returned. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + Iterable[~google.ads.googleads_v5.types.SearchGoogleAdsStreamResponse]. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'search_stream' not in self._inner_api_calls: + self._inner_api_calls['search_stream'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_stream, + default_retry=self._method_configs['SearchStream'].retry, + default_timeout=self._method_configs['SearchStream'].timeout, + client_info=self._client_info, + ) + + request = google_ads_service_pb2.SearchGoogleAdsStreamRequest( + customer_id=customer_id, + query=query, + summary_row_setting=summary_row_setting, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['search_stream'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate( + self, + customer_id, + mutate_operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes resources. This method supports atomic + transactions with multiple types of resources. For example, you can + atomically create a campaign and a campaign budget, or perform up to + thousands of mutates atomically. + + This method is essentially a wrapper around a series of mutate methods. + The only features it offers over calling those methods directly are: + + - Atomic transactions + - Temp resource names (described below) + - Somewhat reduced latency over making a series of mutate calls + + Note: Only resources that support atomic transactions are included, so + this method can't replace all calls to individual services. + + ## Atomic Transaction Benefits + + Atomicity makes error handling much easier. If you're making a series of + changes and one fails, it can leave your account in an inconsistent + state. With atomicity, you either reach the desired state directly, or + the request fails and you can retry. + + ## Temp Resource Names + + Temp resource names are a special type of resource name used to create a + resource and reference that resource in the same request. For example, + if a campaign budget is created with ``resource_name`` equal to + ``customers/123/campaignBudgets/-1``, that resource name can be reused + in the ``Campaign.budget`` field in the same request. That way, the two + resources are created and linked atomically. + + To create a temp resource name, put a negative number in the part of the + name that the server would normally allocate. + + Note: + + - Resources must be created with a temp name before the name can be + reused. For example, the previous CampaignBudget+Campaign example + would fail if the mutate order was reversed. + - Temp names are not remembered across requests. + - There's no limit to the number of temp names in a request. + - Each temp name must use a unique negative number, even if the + resource types differ. + + ## Latency + + It's important to group mutates by resource type or the request may time + out and fail. Latency is roughly equal to a series of calls to + individual mutate methods, where each change in resource type is a new + call. For example, mutating 10 campaigns then 10 ad groups is like 2 + calls, while mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is + like 4 calls. + + Args: + customer_id (str): Required. The ID of the customer whose resources are being modified. + mutate_operations (list[Union[dict, ~google.ads.googleads_v5.types.MutateOperation]]): Required. The list of operations to perform on individual resources. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.MutateOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. The mutable + resource will only be returned if the resource has the appropriate response + field. E.g. MutateCampaignResult.campaign. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateGoogleAdsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate' not in self._inner_api_calls: + self._inner_api_calls['mutate'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate, + default_retry=self._method_configs['Mutate'].retry, + default_timeout=self._method_configs['Mutate'].timeout, + client_info=self._client_info, + ) + + request = google_ads_service_pb2.MutateGoogleAdsRequest( + customer_id=customer_id, + mutate_operations=mutate_operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/google_ads_service_client_config.py b/google/ads/google_ads/v5/services/google_ads_service_client_config.py new file mode 100644 index 000000000..32fcee05f --- /dev/null +++ b/google/ads/google_ads/v5/services/google_ads_service_client_config.py @@ -0,0 +1,41 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GoogleAdsService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "Search": { + "timeout_millis": 3600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "SearchStream": { + "timeout_millis": 3600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "Mutate": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/group_placement_view_service_client.py b/google/ads/google_ads/v5/services/group_placement_view_service_client.py new file mode 100644 index 000000000..8bcdd2c9a --- /dev/null +++ b/google/ads/google_ads/v5/services/group_placement_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services GroupPlacementViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import group_placement_view_service_client_config +from google.ads.google_ads.v5.services.transports import group_placement_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import group_placement_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class GroupPlacementViewServiceClient(object): + """Service to fetch Group Placement views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.GroupPlacementViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GroupPlacementViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def group_placement_view_path(cls, customer, group_placement_view): + """Return a fully-qualified group_placement_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/groupPlacementViews/{group_placement_view}', + customer=customer, + group_placement_view=group_placement_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.GroupPlacementViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GroupPlacementViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = group_placement_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=group_placement_view_service_grpc_transport.GroupPlacementViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = group_placement_view_service_grpc_transport.GroupPlacementViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_group_placement_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Group Placement view in full detail. + + Args: + resource_name (str): Required. The resource name of the Group Placement view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GroupPlacementView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_group_placement_view' not in self._inner_api_calls: + self._inner_api_calls['get_group_placement_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_group_placement_view, + default_retry=self._method_configs['GetGroupPlacementView'].retry, + default_timeout=self._method_configs['GetGroupPlacementView'].timeout, + client_info=self._client_info, + ) + + request = group_placement_view_service_pb2.GetGroupPlacementViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_group_placement_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/group_placement_view_service_client_config.py b/google/ads/google_ads/v5/services/group_placement_view_service_client_config.py new file mode 100644 index 000000000..043071a55 --- /dev/null +++ b/google/ads/google_ads/v5/services/group_placement_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.GroupPlacementViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetGroupPlacementView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/hotel_group_view_service_client.py b/google/ads/google_ads/v5/services/hotel_group_view_service_client.py new file mode 100644 index 000000000..6bb4076be --- /dev/null +++ b/google/ads/google_ads/v5/services/hotel_group_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services HotelGroupViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import hotel_group_view_service_client_config +from google.ads.google_ads.v5.services.transports import hotel_group_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import hotel_group_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class HotelGroupViewServiceClient(object): + """Service to manage Hotel Group Views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.HotelGroupViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HotelGroupViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def hotel_group_view_path(cls, customer, hotel_group_view): + """Return a fully-qualified hotel_group_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/hotelGroupViews/{hotel_group_view}', + customer=customer, + hotel_group_view=hotel_group_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.HotelGroupViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.HotelGroupViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = hotel_group_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=hotel_group_view_service_grpc_transport.HotelGroupViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = hotel_group_view_service_grpc_transport.HotelGroupViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_hotel_group_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Hotel Group View in full detail. + + Args: + resource_name (str): Required. Resource name of the Hotel Group View to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.HotelGroupView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_hotel_group_view' not in self._inner_api_calls: + self._inner_api_calls['get_hotel_group_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_hotel_group_view, + default_retry=self._method_configs['GetHotelGroupView'].retry, + default_timeout=self._method_configs['GetHotelGroupView'].timeout, + client_info=self._client_info, + ) + + request = hotel_group_view_service_pb2.GetHotelGroupViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_hotel_group_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/hotel_group_view_service_client_config.py b/google/ads/google_ads/v5/services/hotel_group_view_service_client_config.py new file mode 100644 index 000000000..2838de9d6 --- /dev/null +++ b/google/ads/google_ads/v5/services/hotel_group_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.HotelGroupViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetHotelGroupView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/hotel_performance_view_service_client.py b/google/ads/google_ads/v5/services/hotel_performance_view_service_client.py new file mode 100644 index 000000000..2ee39c9b1 --- /dev/null +++ b/google/ads/google_ads/v5/services/hotel_performance_view_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services HotelPerformanceViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import hotel_performance_view_service_client_config +from google.ads.google_ads.v5.services.transports import hotel_performance_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import hotel_performance_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class HotelPerformanceViewServiceClient(object): + """Service to manage Hotel Performance Views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.HotelPerformanceViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HotelPerformanceViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def hotel_performance_view_path(cls, customer): + """Return a fully-qualified hotel_performance_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/hotelPerformanceView', + customer=customer, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.HotelPerformanceViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.HotelPerformanceViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = hotel_performance_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=hotel_performance_view_service_grpc_transport.HotelPerformanceViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = hotel_performance_view_service_grpc_transport.HotelPerformanceViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_hotel_performance_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Hotel Performance View in full detail. + + Args: + resource_name (str): Required. Resource name of the Hotel Performance View to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.HotelPerformanceView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_hotel_performance_view' not in self._inner_api_calls: + self._inner_api_calls['get_hotel_performance_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_hotel_performance_view, + default_retry=self._method_configs['GetHotelPerformanceView'].retry, + default_timeout=self._method_configs['GetHotelPerformanceView'].timeout, + client_info=self._client_info, + ) + + request = hotel_performance_view_service_pb2.GetHotelPerformanceViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_hotel_performance_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/hotel_performance_view_service_client_config.py b/google/ads/google_ads/v5/services/hotel_performance_view_service_client_config.py new file mode 100644 index 000000000..c817981ff --- /dev/null +++ b/google/ads/google_ads/v5/services/hotel_performance_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.HotelPerformanceViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetHotelPerformanceView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/income_range_view_service_client.py b/google/ads/google_ads/v5/services/income_range_view_service_client.py new file mode 100644 index 000000000..ce8acf6d4 --- /dev/null +++ b/google/ads/google_ads/v5/services/income_range_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services IncomeRangeViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import income_range_view_service_client_config +from google.ads.google_ads.v5.services.transports import income_range_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import income_range_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class IncomeRangeViewServiceClient(object): + """Service to manage income range views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.IncomeRangeViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + IncomeRangeViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def income_range_view_path(cls, customer, income_range_view): + """Return a fully-qualified income_range_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/incomeRangeViews/{income_range_view}', + customer=customer, + income_range_view=income_range_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.IncomeRangeViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.IncomeRangeViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = income_range_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=income_range_view_service_grpc_transport.IncomeRangeViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = income_range_view_service_grpc_transport.IncomeRangeViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_income_range_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested income range view in full detail. + + Args: + resource_name (str): Required. The resource name of the income range view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.IncomeRangeView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_income_range_view' not in self._inner_api_calls: + self._inner_api_calls['get_income_range_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_income_range_view, + default_retry=self._method_configs['GetIncomeRangeView'].retry, + default_timeout=self._method_configs['GetIncomeRangeView'].timeout, + client_info=self._client_info, + ) + + request = income_range_view_service_pb2.GetIncomeRangeViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_income_range_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/income_range_view_service_client_config.py b/google/ads/google_ads/v5/services/income_range_view_service_client_config.py new file mode 100644 index 000000000..ed2ebcb86 --- /dev/null +++ b/google/ads/google_ads/v5/services/income_range_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.IncomeRangeViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetIncomeRangeView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/invoice_service_client.py b/google/ads/google_ads/v5/services/invoice_service_client.py new file mode 100644 index 000000000..4de9a6faf --- /dev/null +++ b/google/ads/google_ads/v5/services/invoice_service_client.py @@ -0,0 +1,239 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services InvoiceService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.services import invoice_service_client_config +from google.ads.google_ads.v5.services.transports import invoice_service_grpc_transport +from google.ads.google_ads.v5.proto.services import invoice_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class InvoiceServiceClient(object): + """A service to fetch invoices issued for a billing setup during a given month.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.InvoiceService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + InvoiceServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.InvoiceServiceGrpcTransport, + Callable[[~.Credentials, type], ~.InvoiceServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = invoice_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=invoice_service_grpc_transport.InvoiceServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = invoice_service_grpc_transport.InvoiceServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def list_invoices( + self, + customer_id, + billing_setup, + issue_year, + issue_month, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all invoices associated with a billing setup, for a given month. + + Args: + customer_id (str): Required. The ID of the customer to fetch invoices for. + billing_setup (str): Required. The billing setup resource name of the requested invoices. + + ``customers/{customer_id}/billingSetups/{billing_setup_id}`` + issue_year (str): Required. The issue year to retrieve invoices, in yyyy format. Only + invoices issued in 2019 or later can be retrieved. + issue_month (~google.ads.googleads_v5.types.MonthOfYear): Required. The issue month to retrieve invoices. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListInvoicesResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_invoices' not in self._inner_api_calls: + self._inner_api_calls['list_invoices'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_invoices, + default_retry=self._method_configs['ListInvoices'].retry, + default_timeout=self._method_configs['ListInvoices'].timeout, + client_info=self._client_info, + ) + + request = invoice_service_pb2.ListInvoicesRequest( + customer_id=customer_id, + billing_setup=billing_setup, + issue_year=issue_year, + issue_month=issue_month, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['list_invoices'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/invoice_service_client_config.py b/google/ads/google_ads/v5/services/invoice_service_client_config.py new file mode 100644 index 000000000..671aed50c --- /dev/null +++ b/google/ads/google_ads/v5/services/invoice_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.InvoiceService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "ListInvoices": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client.py new file mode 100644 index 000000000..adb048283 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client.py @@ -0,0 +1,318 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanAdGroupKeywordService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_plan_ad_group_keyword_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_ad_group_keyword_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_keyword_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanAdGroupKeywordServiceClient(object): + """ + Service to manage Keyword Plan ad group keywords. KeywordPlanAdGroup is + required to add ad group keywords. Positive and negative keywords are + supported. A maximum of 10,000 positive keywords are allowed per keyword + plan. A maximum of 1,000 negative keywords are allower per keyword plan. This + includes campaign negative keywords and ad group negative keywords. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanAdGroupKeywordService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanAdGroupKeywordServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_plan_ad_group_keyword_path(cls, customer, keyword_plan_ad_group_keyword): + """Return a fully-qualified keyword_plan_ad_group_keyword string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword}', + customer=customer, + keyword_plan_ad_group_keyword=keyword_plan_ad_group_keyword, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanAdGroupKeywordServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanAdGroupKeywordServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_ad_group_keyword_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_ad_group_keyword_service_grpc_transport.KeywordPlanAdGroupKeywordServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_ad_group_keyword_service_grpc_transport.KeywordPlanAdGroupKeywordServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_plan_ad_group_keyword( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan ad group keyword in full detail. + + Args: + resource_name (str): Required. The resource name of the ad group keyword to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordPlanAdGroupKeyword` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_plan_ad_group_keyword' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_plan_ad_group_keyword'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_plan_ad_group_keyword, + default_retry=self._method_configs['GetKeywordPlanAdGroupKeyword'].retry, + default_timeout=self._method_configs['GetKeywordPlanAdGroupKeyword'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_ad_group_keyword_service_pb2.GetKeywordPlanAdGroupKeywordRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_plan_ad_group_keyword'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_keyword_plan_ad_group_keywords( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes Keyword Plan ad group keywords. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose Keyword Plan ad group keywords are being + modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.KeywordPlanAdGroupKeywordOperation]]): Required. The list of operations to perform on individual Keyword Plan ad group + keywords. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordPlanAdGroupKeywordOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateKeywordPlanAdGroupKeywordsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_keyword_plan_ad_group_keywords' not in self._inner_api_calls: + self._inner_api_calls['mutate_keyword_plan_ad_group_keywords'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_keyword_plan_ad_group_keywords, + default_retry=self._method_configs['MutateKeywordPlanAdGroupKeywords'].retry, + default_timeout=self._method_configs['MutateKeywordPlanAdGroupKeywords'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_ad_group_keyword_service_pb2.MutateKeywordPlanAdGroupKeywordsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_keyword_plan_ad_group_keywords'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client_config.py new file mode 100644 index 000000000..d703e9c26 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_ad_group_keyword_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanAdGroupKeywordService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordPlanAdGroupKeyword": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateKeywordPlanAdGroupKeywords": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client.py new file mode 100644 index 000000000..512c8a1d7 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanAdGroupService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_plan_ad_group_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_ad_group_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanAdGroupServiceClient(object): + """Service to manage Keyword Plan ad groups.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanAdGroupService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanAdGroupServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_plan_ad_group_path(cls, customer, keyword_plan_ad_group): + """Return a fully-qualified keyword_plan_ad_group string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordPlanAdGroups/{keyword_plan_ad_group}', + customer=customer, + keyword_plan_ad_group=keyword_plan_ad_group, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanAdGroupServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanAdGroupServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_ad_group_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_ad_group_service_grpc_transport.KeywordPlanAdGroupServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_ad_group_service_grpc_transport.KeywordPlanAdGroupServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_plan_ad_group( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan ad group in full detail. + + Args: + resource_name (str): Required. The resource name of the Keyword Plan ad group to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordPlanAdGroup` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_plan_ad_group' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_plan_ad_group'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_plan_ad_group, + default_retry=self._method_configs['GetKeywordPlanAdGroup'].retry, + default_timeout=self._method_configs['GetKeywordPlanAdGroup'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_ad_group_service_pb2.GetKeywordPlanAdGroupRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_plan_ad_group'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_keyword_plan_ad_groups( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose Keyword Plan ad groups are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.KeywordPlanAdGroupOperation]]): Required. The list of operations to perform on individual Keyword Plan ad groups. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordPlanAdGroupOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateKeywordPlanAdGroupsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_keyword_plan_ad_groups' not in self._inner_api_calls: + self._inner_api_calls['mutate_keyword_plan_ad_groups'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_keyword_plan_ad_groups, + default_retry=self._method_configs['MutateKeywordPlanAdGroups'].retry, + default_timeout=self._method_configs['MutateKeywordPlanAdGroups'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_ad_group_service_pb2.MutateKeywordPlanAdGroupsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_keyword_plan_ad_groups'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client_config.py new file mode 100644 index 000000000..21d751623 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_ad_group_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanAdGroupService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordPlanAdGroup": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateKeywordPlanAdGroups": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client.py new file mode 100644 index 000000000..3a2875b1b --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client.py @@ -0,0 +1,316 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanCampaignKeywordService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_plan_campaign_keyword_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_campaign_keyword_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_keyword_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanCampaignKeywordServiceClient(object): + """ + Service to manage Keyword Plan campaign keywords. KeywordPlanCampaign is + required to add the campaign keywords. Only negative keywords are supported. + A maximum of 1000 negative keywords are allowed per plan. This includes both + campaign negative keywords and ad group negative keywords. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanCampaignKeywordServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_plan_campaign_keyword_path(cls, customer, keyword_plan_campaign_keyword): + """Return a fully-qualified keyword_plan_campaign_keyword string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordPlanCampaignKeywords/{keyword_plan_campaign_keyword}', + customer=customer, + keyword_plan_campaign_keyword=keyword_plan_campaign_keyword, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanCampaignKeywordServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanCampaignKeywordServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_campaign_keyword_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_campaign_keyword_service_grpc_transport.KeywordPlanCampaignKeywordServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_campaign_keyword_service_grpc_transport.KeywordPlanCampaignKeywordServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_plan_campaign_keyword( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested plan in full detail. + + Args: + resource_name (str): Required. The resource name of the plan to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordPlanCampaignKeyword` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_plan_campaign_keyword' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_plan_campaign_keyword'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_plan_campaign_keyword, + default_retry=self._method_configs['GetKeywordPlanCampaignKeyword'].retry, + default_timeout=self._method_configs['GetKeywordPlanCampaignKeyword'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_campaign_keyword_service_pb2.GetKeywordPlanCampaignKeywordRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_plan_campaign_keyword'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_keyword_plan_campaign_keywords( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes Keyword Plan campaign keywords. Operation + statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose campaign keywords are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.KeywordPlanCampaignKeywordOperation]]): Required. The list of operations to perform on individual Keyword Plan campaign + keywords. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordPlanCampaignKeywordOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateKeywordPlanCampaignKeywordsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_keyword_plan_campaign_keywords' not in self._inner_api_calls: + self._inner_api_calls['mutate_keyword_plan_campaign_keywords'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_keyword_plan_campaign_keywords, + default_retry=self._method_configs['MutateKeywordPlanCampaignKeywords'].retry, + default_timeout=self._method_configs['MutateKeywordPlanCampaignKeywords'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_campaign_keyword_service_pb2.MutateKeywordPlanCampaignKeywordsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_keyword_plan_campaign_keywords'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client_config.py new file mode 100644 index 000000000..719d37db9 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_campaign_keyword_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanCampaignKeywordService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordPlanCampaignKeyword": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateKeywordPlanCampaignKeywords": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client.py new file mode 100644 index 000000000..3dfb6b38b --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client.py @@ -0,0 +1,310 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanCampaignService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_plan_campaign_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_campaign_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanCampaignServiceClient(object): + """Service to manage Keyword Plan campaigns.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanCampaignService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanCampaignServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_plan_campaign_path(cls, customer, keyword_plan_campaign): + """Return a fully-qualified keyword_plan_campaign string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordPlanCampaigns/{keyword_plan_campaign}', + customer=customer, + keyword_plan_campaign=keyword_plan_campaign, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanCampaignServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanCampaignServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_campaign_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_campaign_service_grpc_transport.KeywordPlanCampaignServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_campaign_service_grpc_transport.KeywordPlanCampaignServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_plan_campaign( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan campaign in full detail. + + Args: + resource_name (str): Required. The resource name of the Keyword Plan campaign to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordPlanCampaign` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_plan_campaign' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_plan_campaign'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_plan_campaign, + default_retry=self._method_configs['GetKeywordPlanCampaign'].retry, + default_timeout=self._method_configs['GetKeywordPlanCampaign'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_campaign_service_pb2.GetKeywordPlanCampaignRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_plan_campaign'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_keyword_plan_campaigns( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose Keyword Plan campaigns are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.KeywordPlanCampaignOperation]]): Required. The list of operations to perform on individual Keyword Plan campaigns. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordPlanCampaignOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateKeywordPlanCampaignsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_keyword_plan_campaigns' not in self._inner_api_calls: + self._inner_api_calls['mutate_keyword_plan_campaigns'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_keyword_plan_campaigns, + default_retry=self._method_configs['MutateKeywordPlanCampaigns'].retry, + default_timeout=self._method_configs['MutateKeywordPlanCampaigns'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_campaign_service_pb2.MutateKeywordPlanCampaignsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_keyword_plan_campaigns'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client_config.py new file mode 100644 index 000000000..ae8c00cd3 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_campaign_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanCampaignService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordPlanCampaign": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateKeywordPlanCampaigns": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_idea_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_idea_service_client.py new file mode 100644 index 000000000..4a91de199 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_idea_service_client.py @@ -0,0 +1,303 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanIdeaService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.page_iterator +import google.api_core.protobuf_helpers + +from google.ads.google_ads.v5.services import keyword_plan_idea_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_idea_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_idea_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanIdeaServiceClient(object): + """Service to generate keyword ideas.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanIdeaService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanIdeaServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanIdeaServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanIdeaServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_idea_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_idea_service_grpc_transport.KeywordPlanIdeaServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_idea_service_grpc_transport.KeywordPlanIdeaServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def generate_keyword_ideas( + self, + customer_id, + language, + geo_target_constants, + include_adult_keywords, + keyword_plan_network, + page_size=None, + keyword_and_url_seed=None, + keyword_seed=None, + url_seed=None, + site_seed=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns a list of keyword ideas. + + Args: + customer_id (str): The ID of the customer with the recommendation. + language (Union[dict, ~google.ads.googleads_v5.types.StringValue]): Required. The resource name of the language to target. + Required + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + geo_target_constants (list[Union[dict, ~google.ads.googleads_v5.types.StringValue]]): The resource names of the location to target. + Max 10 + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + include_adult_keywords (bool): If true, adult keywords will be included in response. + The default value is false. + keyword_plan_network (~google.ads.googleads_v5.types.KeywordPlanNetwork): Targeting network. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + keyword_and_url_seed (Union[dict, ~google.ads.googleads_v5.types.KeywordAndUrlSeed]): A Keyword and a specific Url to generate ideas from + e.g. cars, www.example.com/cars. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordAndUrlSeed` + keyword_seed (Union[dict, ~google.ads.googleads_v5.types.KeywordSeed]): A Keyword or phrase to generate ideas from, e.g. cars. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordSeed` + url_seed (Union[dict, ~google.ads.googleads_v5.types.UrlSeed]): A specific url to generate ideas from, e.g. www.example.com/cars. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.UrlSeed` + site_seed (Union[dict, ~google.ads.googleads_v5.types.SiteSeed]): The site to generate ideas from, e.g. www.example.com. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.SiteSeed` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.api_core.page_iterator.PageIterator` instance. + An iterable of :class:`~google.ads.googleads_v5.types.GenerateKeywordIdeaResult` instances. + You can also iterate over the pages of the response + using its `pages` property. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_keyword_ideas' not in self._inner_api_calls: + self._inner_api_calls['generate_keyword_ideas'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_keyword_ideas, + default_retry=self._method_configs['GenerateKeywordIdeas'].retry, + default_timeout=self._method_configs['GenerateKeywordIdeas'].timeout, + client_info=self._client_info, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + keyword_and_url_seed=keyword_and_url_seed, + keyword_seed=keyword_seed, + url_seed=url_seed, + site_seed=site_seed, + ) + + request = keyword_plan_idea_service_pb2.GenerateKeywordIdeasRequest( + customer_id=customer_id, + language=language, + geo_target_constants=geo_target_constants, + include_adult_keywords=include_adult_keywords, + keyword_plan_network=keyword_plan_network, + page_size=page_size, + keyword_and_url_seed=keyword_and_url_seed, + keyword_seed=keyword_seed, + url_seed=url_seed, + site_seed=site_seed, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial(self._inner_api_calls['generate_keyword_ideas'], retry=retry, timeout=timeout, metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v5/services/keyword_plan_idea_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_idea_service_client_config.py new file mode 100644 index 000000000..f76ee283a --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_idea_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanIdeaService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GenerateKeywordIdeas": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_plan_service_client.py b/google/ads/google_ads/v5/services/keyword_plan_service_client.py new file mode 100644 index 000000000..28b2dc9d3 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_service_client.py @@ -0,0 +1,542 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordPlanService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_plan_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_plan_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_plan_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordPlanServiceClient(object): + """Service to manage keyword plans.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordPlanService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordPlanServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_plan_path(cls, customer, keyword_plan): + """Return a fully-qualified keyword_plan string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordPlans/{keyword_plan}', + customer=customer, + keyword_plan=keyword_plan, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordPlanServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordPlanServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_plan_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_plan_service_grpc_transport.KeywordPlanServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_plan_service_grpc_transport.KeywordPlanServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_plan( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested plan in full detail. + + Args: + resource_name (str): Required. The resource name of the plan to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordPlan` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_plan' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_plan'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_plan, + default_retry=self._method_configs['GetKeywordPlan'].retry, + default_timeout=self._method_configs['GetKeywordPlan'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.GetKeywordPlanRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_plan'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_keyword_plans( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes keyword plans. Operation statuses are + returned. + + Args: + customer_id (str): Required. The ID of the customer whose keyword plans are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.KeywordPlanOperation]]): Required. The list of operations to perform on individual keyword plans. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.KeywordPlanOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateKeywordPlansResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_keyword_plans' not in self._inner_api_calls: + self._inner_api_calls['mutate_keyword_plans'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_keyword_plans, + default_retry=self._method_configs['MutateKeywordPlans'].retry, + default_timeout=self._method_configs['MutateKeywordPlans'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.MutateKeywordPlansRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_keyword_plans'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_forecast_curve( + self, + keyword_plan, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan forecast curve. + Only the bidding strategy is considered for generating forecast curve. + The bidding strategy value specified in the plan is ignored. + + To generate a forecast at a value specified in the plan, use + KeywordPlanService.GenerateForecastMetrics. + + Args: + keyword_plan (str): Required. The resource name of the keyword plan to be forecasted. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateForecastCurveResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_forecast_curve' not in self._inner_api_calls: + self._inner_api_calls['generate_forecast_curve'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_forecast_curve, + default_retry=self._method_configs['GenerateForecastCurve'].retry, + default_timeout=self._method_configs['GenerateForecastCurve'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.GenerateForecastCurveRequest( + keyword_plan=keyword_plan, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('keyword_plan', keyword_plan)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_forecast_curve'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_forecast_time_series( + self, + keyword_plan, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns a forecast in the form of a time series for the Keyword Plan over + the next 52 weeks. + (1) Forecasts closer to the current date are generally more accurate than + further out. + + (2) The forecast reflects seasonal trends using current and + prior traffic patterns. The forecast period of the plan is ignored. + + Args: + keyword_plan (str): Required. The resource name of the keyword plan to be forecasted. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateForecastTimeSeriesResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_forecast_time_series' not in self._inner_api_calls: + self._inner_api_calls['generate_forecast_time_series'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_forecast_time_series, + default_retry=self._method_configs['GenerateForecastTimeSeries'].retry, + default_timeout=self._method_configs['GenerateForecastTimeSeries'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.GenerateForecastTimeSeriesRequest( + keyword_plan=keyword_plan, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('keyword_plan', keyword_plan)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_forecast_time_series'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_forecast_metrics( + self, + keyword_plan, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan forecasts. + + Args: + keyword_plan (str): Required. The resource name of the keyword plan to be forecasted. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateForecastMetricsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_forecast_metrics' not in self._inner_api_calls: + self._inner_api_calls['generate_forecast_metrics'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_forecast_metrics, + default_retry=self._method_configs['GenerateForecastMetrics'].retry, + default_timeout=self._method_configs['GenerateForecastMetrics'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.GenerateForecastMetricsRequest( + keyword_plan=keyword_plan, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('keyword_plan', keyword_plan)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_forecast_metrics'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_historical_metrics( + self, + keyword_plan, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Keyword Plan historical metrics. + + Args: + keyword_plan (str): Required. The resource name of the keyword plan of which historical metrics are + requested. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateHistoricalMetricsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_historical_metrics' not in self._inner_api_calls: + self._inner_api_calls['generate_historical_metrics'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_historical_metrics, + default_retry=self._method_configs['GenerateHistoricalMetrics'].retry, + default_timeout=self._method_configs['GenerateHistoricalMetrics'].timeout, + client_info=self._client_info, + ) + + request = keyword_plan_service_pb2.GenerateHistoricalMetricsRequest( + keyword_plan=keyword_plan, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('keyword_plan', keyword_plan)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_historical_metrics'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_plan_service_client_config.py b/google/ads/google_ads/v5/services/keyword_plan_service_client_config.py new file mode 100644 index 000000000..d81f57b31 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_plan_service_client_config.py @@ -0,0 +1,56 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordPlanService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordPlan": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateKeywordPlans": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GenerateForecastCurve": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GenerateForecastTimeSeries": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GenerateForecastMetrics": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "GenerateHistoricalMetrics": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/keyword_view_service_client.py b/google/ads/google_ads/v5/services/keyword_view_service_client.py new file mode 100644 index 000000000..3516d4827 --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services KeywordViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import keyword_view_service_client_config +from google.ads.google_ads.v5.services.transports import keyword_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import keyword_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class KeywordViewServiceClient(object): + """Service to manage keyword views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.KeywordViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def keyword_view_path(cls, customer, keyword_view): + """Return a fully-qualified keyword_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordViews/{keyword_view}', + customer=customer, + keyword_view=keyword_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.KeywordViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = keyword_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_view_service_grpc_transport.KeywordViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = keyword_view_service_grpc_transport.KeywordViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested keyword view in full detail. + + Args: + resource_name (str): Required. The resource name of the keyword view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.KeywordView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_view' not in self._inner_api_calls: + self._inner_api_calls['get_keyword_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_view, + default_retry=self._method_configs['GetKeywordView'].retry, + default_timeout=self._method_configs['GetKeywordView'].timeout, + client_info=self._client_info, + ) + + request = keyword_view_service_pb2.GetKeywordViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_keyword_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/keyword_view_service_client_config.py b/google/ads/google_ads/v5/services/keyword_view_service_client_config.py new file mode 100644 index 000000000..a1cc81dbb --- /dev/null +++ b/google/ads/google_ads/v5/services/keyword_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.KeywordViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetKeywordView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/label_service_client.py b/google/ads/google_ads/v5/services/label_service_client.py new file mode 100644 index 000000000..3d641fef0 --- /dev/null +++ b/google/ads/google_ads/v5/services/label_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services LabelService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import label_service_client_config +from google.ads.google_ads.v5.services.transports import label_service_grpc_transport +from google.ads.google_ads.v5.proto.services import label_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class LabelServiceClient(object): + """Service to manage labels.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.LabelService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + LabelServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def label_path(cls, customer, label): + """Return a fully-qualified label string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/labels/{label}', + customer=customer, + label=label, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.LabelServiceGrpcTransport, + Callable[[~.Credentials, type], ~.LabelServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = label_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=label_service_grpc_transport.LabelServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = label_service_grpc_transport.LabelServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_label( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested label in full detail. + + Args: + resource_name (str): Required. The resource name of the label to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Label` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_label' not in self._inner_api_calls: + self._inner_api_calls['get_label'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_label, + default_retry=self._method_configs['GetLabel'].retry, + default_timeout=self._method_configs['GetLabel'].timeout, + client_info=self._client_info, + ) + + request = label_service_pb2.GetLabelRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_label'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_labels( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes labels. Operation statuses are returned. + + Args: + customer_id (str): Required. ID of the customer whose labels are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.LabelOperation]]): Required. The list of operations to perform on labels. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.LabelOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateLabelsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_labels' not in self._inner_api_calls: + self._inner_api_calls['mutate_labels'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_labels, + default_retry=self._method_configs['MutateLabels'].retry, + default_timeout=self._method_configs['MutateLabels'].timeout, + client_info=self._client_info, + ) + + request = label_service_pb2.MutateLabelsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_labels'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/label_service_client_config.py b/google/ads/google_ads/v5/services/label_service_client_config.py new file mode 100644 index 000000000..749ea0a6e --- /dev/null +++ b/google/ads/google_ads/v5/services/label_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.LabelService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetLabel": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateLabels": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/landing_page_view_service_client.py b/google/ads/google_ads/v5/services/landing_page_view_service_client.py new file mode 100644 index 000000000..e10bc8644 --- /dev/null +++ b/google/ads/google_ads/v5/services/landing_page_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services LandingPageViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import landing_page_view_service_client_config +from google.ads.google_ads.v5.services.transports import landing_page_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import landing_page_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class LandingPageViewServiceClient(object): + """Service to fetch landing page views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.LandingPageViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + LandingPageViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def landing_page_view_path(cls, customer, landing_page_view): + """Return a fully-qualified landing_page_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/landingPageViews/{landing_page_view}', + customer=customer, + landing_page_view=landing_page_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.LandingPageViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.LandingPageViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = landing_page_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=landing_page_view_service_grpc_transport.LandingPageViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = landing_page_view_service_grpc_transport.LandingPageViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_landing_page_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested landing page view in full detail. + + Args: + resource_name (str): Required. The resource name of the landing page view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.LandingPageView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_landing_page_view' not in self._inner_api_calls: + self._inner_api_calls['get_landing_page_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_landing_page_view, + default_retry=self._method_configs['GetLandingPageView'].retry, + default_timeout=self._method_configs['GetLandingPageView'].timeout, + client_info=self._client_info, + ) + + request = landing_page_view_service_pb2.GetLandingPageViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_landing_page_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/landing_page_view_service_client_config.py b/google/ads/google_ads/v5/services/landing_page_view_service_client_config.py new file mode 100644 index 000000000..b41b62c5e --- /dev/null +++ b/google/ads/google_ads/v5/services/landing_page_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.LandingPageViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetLandingPageView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/language_constant_service_client.py b/google/ads/google_ads/v5/services/language_constant_service_client.py new file mode 100644 index 000000000..a35957613 --- /dev/null +++ b/google/ads/google_ads/v5/services/language_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services LanguageConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import language_constant_service_client_config +from google.ads.google_ads.v5.services.transports import language_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import language_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class LanguageConstantServiceClient(object): + """Service to fetch language constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.LanguageConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + LanguageConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def language_constant_path(cls, language_constant): + """Return a fully-qualified language_constant string.""" + return google.api_core.path_template.expand( + 'languageConstants/{language_constant}', + language_constant=language_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.LanguageConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.LanguageConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = language_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=language_constant_service_grpc_transport.LanguageConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = language_constant_service_grpc_transport.LanguageConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_language_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested language constant. + + Args: + resource_name (str): Required. Resource name of the language constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.LanguageConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_language_constant' not in self._inner_api_calls: + self._inner_api_calls['get_language_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_language_constant, + default_retry=self._method_configs['GetLanguageConstant'].retry, + default_timeout=self._method_configs['GetLanguageConstant'].timeout, + client_info=self._client_info, + ) + + request = language_constant_service_pb2.GetLanguageConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_language_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/language_constant_service_client_config.py b/google/ads/google_ads/v5/services/language_constant_service_client_config.py new file mode 100644 index 000000000..7c93c5290 --- /dev/null +++ b/google/ads/google_ads/v5/services/language_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.LanguageConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetLanguageConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/location_view_service_client.py b/google/ads/google_ads/v5/services/location_view_service_client.py new file mode 100644 index 000000000..5321ee172 --- /dev/null +++ b/google/ads/google_ads/v5/services/location_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services LocationViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import location_view_service_client_config +from google.ads.google_ads.v5.services.transports import location_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import location_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class LocationViewServiceClient(object): + """Service to fetch location views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.LocationViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + LocationViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def location_view_path(cls, customer, location_view): + """Return a fully-qualified location_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/locationViews/{location_view}', + customer=customer, + location_view=location_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.LocationViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.LocationViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = location_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=location_view_service_grpc_transport.LocationViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = location_view_service_grpc_transport.LocationViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_location_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested location view in full detail. + + Args: + resource_name (str): Required. The resource name of the location view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.LocationView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_location_view' not in self._inner_api_calls: + self._inner_api_calls['get_location_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_location_view, + default_retry=self._method_configs['GetLocationView'].retry, + default_timeout=self._method_configs['GetLocationView'].timeout, + client_info=self._client_info, + ) + + request = location_view_service_pb2.GetLocationViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_location_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/location_view_service_client_config.py b/google/ads/google_ads/v5/services/location_view_service_client_config.py new file mode 100644 index 000000000..08982e5fe --- /dev/null +++ b/google/ads/google_ads/v5/services/location_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.LocationViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetLocationView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/managed_placement_view_service_client.py b/google/ads/google_ads/v5/services/managed_placement_view_service_client.py new file mode 100644 index 000000000..cb3798939 --- /dev/null +++ b/google/ads/google_ads/v5/services/managed_placement_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ManagedPlacementViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import managed_placement_view_service_client_config +from google.ads.google_ads.v5.services.transports import managed_placement_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import managed_placement_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ManagedPlacementViewServiceClient(object): + """Service to manage Managed Placement views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ManagedPlacementViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ManagedPlacementViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def managed_placement_view_path(cls, customer, managed_placement_view): + """Return a fully-qualified managed_placement_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/managedPlacementViews/{managed_placement_view}', + customer=customer, + managed_placement_view=managed_placement_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ManagedPlacementViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ManagedPlacementViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = managed_placement_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=managed_placement_view_service_grpc_transport.ManagedPlacementViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = managed_placement_view_service_grpc_transport.ManagedPlacementViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_managed_placement_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Managed Placement view in full detail. + + Args: + resource_name (str): Required. The resource name of the Managed Placement View to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ManagedPlacementView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_managed_placement_view' not in self._inner_api_calls: + self._inner_api_calls['get_managed_placement_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_managed_placement_view, + default_retry=self._method_configs['GetManagedPlacementView'].retry, + default_timeout=self._method_configs['GetManagedPlacementView'].timeout, + client_info=self._client_info, + ) + + request = managed_placement_view_service_pb2.GetManagedPlacementViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_managed_placement_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/managed_placement_view_service_client_config.py b/google/ads/google_ads/v5/services/managed_placement_view_service_client_config.py new file mode 100644 index 000000000..fd74cc85b --- /dev/null +++ b/google/ads/google_ads/v5/services/managed_placement_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ManagedPlacementViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetManagedPlacementView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/media_file_service_client.py b/google/ads/google_ads/v5/services/media_file_service_client.py new file mode 100644 index 000000000..c5c712427 --- /dev/null +++ b/google/ads/google_ads/v5/services/media_file_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services MediaFileService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import media_file_service_client_config +from google.ads.google_ads.v5.services.transports import media_file_service_grpc_transport +from google.ads.google_ads.v5.proto.services import media_file_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class MediaFileServiceClient(object): + """Service to manage media files.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.MediaFileService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + MediaFileServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def media_file_path(cls, customer, media_file): + """Return a fully-qualified media_file string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/mediaFiles/{media_file}', + customer=customer, + media_file=media_file, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.MediaFileServiceGrpcTransport, + Callable[[~.Credentials, type], ~.MediaFileServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = media_file_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=media_file_service_grpc_transport.MediaFileServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = media_file_service_grpc_transport.MediaFileServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_media_file( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested media file in full detail. + + Args: + resource_name (str): Required. The resource name of the media file to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MediaFile` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_media_file' not in self._inner_api_calls: + self._inner_api_calls['get_media_file'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_media_file, + default_retry=self._method_configs['GetMediaFile'].retry, + default_timeout=self._method_configs['GetMediaFile'].timeout, + client_info=self._client_info, + ) + + request = media_file_service_pb2.GetMediaFileRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_media_file'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_media_files( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates media files. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose media files are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.MediaFileOperation]]): Required. The list of operations to perform on individual media file. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.MediaFileOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateMediaFilesResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_media_files' not in self._inner_api_calls: + self._inner_api_calls['mutate_media_files'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_media_files, + default_retry=self._method_configs['MutateMediaFiles'].retry, + default_timeout=self._method_configs['MutateMediaFiles'].timeout, + client_info=self._client_info, + ) + + request = media_file_service_pb2.MutateMediaFilesRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_media_files'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/media_file_service_client_config.py b/google/ads/google_ads/v5/services/media_file_service_client_config.py new file mode 100644 index 000000000..35ff2317b --- /dev/null +++ b/google/ads/google_ads/v5/services/media_file_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.MediaFileService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetMediaFile": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateMediaFiles": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/merchant_center_link_service_client.py b/google/ads/google_ads/v5/services/merchant_center_link_service_client.py new file mode 100644 index 000000000..6bd59db3c --- /dev/null +++ b/google/ads/google_ads/v5/services/merchant_center_link_service_client.py @@ -0,0 +1,358 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services MerchantCenterLinkService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import merchant_center_link_service_client_config +from google.ads.google_ads.v5.services.transports import merchant_center_link_service_grpc_transport +from google.ads.google_ads.v5.proto.services import merchant_center_link_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class MerchantCenterLinkServiceClient(object): + """ + This service allows management of links between Google Ads and Google + Merchant Center. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.MerchantCenterLinkService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + MerchantCenterLinkServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def merchant_center_link_path(cls, customer, merchant_center_link): + """Return a fully-qualified merchant_center_link string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/merchantCenterLinks/{merchant_center_link}', + customer=customer, + merchant_center_link=merchant_center_link, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.MerchantCenterLinkServiceGrpcTransport, + Callable[[~.Credentials, type], ~.MerchantCenterLinkServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = merchant_center_link_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=merchant_center_link_service_grpc_transport.MerchantCenterLinkServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = merchant_center_link_service_grpc_transport.MerchantCenterLinkServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def list_merchant_center_links( + self, + customer_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns Merchant Center links available for this customer. + + Args: + customer_id (str): Required. The ID of the customer onto which to apply the Merchant Center link list + operation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListMerchantCenterLinksResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_merchant_center_links' not in self._inner_api_calls: + self._inner_api_calls['list_merchant_center_links'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_merchant_center_links, + default_retry=self._method_configs['ListMerchantCenterLinks'].retry, + default_timeout=self._method_configs['ListMerchantCenterLinks'].timeout, + client_info=self._client_info, + ) + + request = merchant_center_link_service_pb2.ListMerchantCenterLinksRequest( + customer_id=customer_id, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['list_merchant_center_links'](request, retry=retry, timeout=timeout, metadata=metadata) + + def get_merchant_center_link( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the Merchant Center link in full detail. + + Args: + resource_name (str): Required. Resource name of the Merchant Center link. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MerchantCenterLink` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_merchant_center_link' not in self._inner_api_calls: + self._inner_api_calls['get_merchant_center_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_merchant_center_link, + default_retry=self._method_configs['GetMerchantCenterLink'].retry, + default_timeout=self._method_configs['GetMerchantCenterLink'].timeout, + client_info=self._client_info, + ) + + request = merchant_center_link_service_pb2.GetMerchantCenterLinkRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_merchant_center_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_merchant_center_link( + self, + customer_id, + operation_, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Updates status or removes a Merchant Center link. + + Args: + customer_id (str): Required. The ID of the customer being modified. + operation_ (Union[dict, ~google.ads.googleads_v5.types.MerchantCenterLinkOperation]): Required. The operation to perform on the link + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.MerchantCenterLinkOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateMerchantCenterLinkResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_merchant_center_link' not in self._inner_api_calls: + self._inner_api_calls['mutate_merchant_center_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_merchant_center_link, + default_retry=self._method_configs['MutateMerchantCenterLink'].retry, + default_timeout=self._method_configs['MutateMerchantCenterLink'].timeout, + client_info=self._client_info, + ) + + request = merchant_center_link_service_pb2.MutateMerchantCenterLinkRequest( + customer_id=customer_id, + operation=operation_, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_merchant_center_link'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/merchant_center_link_service_client_config.py b/google/ads/google_ads/v5/services/merchant_center_link_service_client_config.py new file mode 100644 index 000000000..9d422eac5 --- /dev/null +++ b/google/ads/google_ads/v5/services/merchant_center_link_service_client_config.py @@ -0,0 +1,41 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.MerchantCenterLinkService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "ListMerchantCenterLinks": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "GetMerchantCenterLink": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateMerchantCenterLink": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client.py b/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client.py new file mode 100644 index 000000000..b5b7d4232 --- /dev/null +++ b/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services MobileAppCategoryConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import mobile_app_category_constant_service_client_config +from google.ads.google_ads.v5.services.transports import mobile_app_category_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import mobile_app_category_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class MobileAppCategoryConstantServiceClient(object): + """Service to fetch mobile app category constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.MobileAppCategoryConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + MobileAppCategoryConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def mobile_app_category_constant_path(cls, mobile_app_category_constant): + """Return a fully-qualified mobile_app_category_constant string.""" + return google.api_core.path_template.expand( + 'mobileAppCategoryConstants/{mobile_app_category_constant}', + mobile_app_category_constant=mobile_app_category_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.MobileAppCategoryConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.MobileAppCategoryConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = mobile_app_category_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=mobile_app_category_constant_service_grpc_transport.MobileAppCategoryConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = mobile_app_category_constant_service_grpc_transport.MobileAppCategoryConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_mobile_app_category_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested mobile app category constant. + + Args: + resource_name (str): Required. Resource name of the mobile app category constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MobileAppCategoryConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_mobile_app_category_constant' not in self._inner_api_calls: + self._inner_api_calls['get_mobile_app_category_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_mobile_app_category_constant, + default_retry=self._method_configs['GetMobileAppCategoryConstant'].retry, + default_timeout=self._method_configs['GetMobileAppCategoryConstant'].timeout, + client_info=self._client_info, + ) + + request = mobile_app_category_constant_service_pb2.GetMobileAppCategoryConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_mobile_app_category_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client_config.py b/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client_config.py new file mode 100644 index 000000000..c94b29618 --- /dev/null +++ b/google/ads/google_ads/v5/services/mobile_app_category_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.MobileAppCategoryConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetMobileAppCategoryConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/mobile_device_constant_service_client.py b/google/ads/google_ads/v5/services/mobile_device_constant_service_client.py new file mode 100644 index 000000000..32cd25313 --- /dev/null +++ b/google/ads/google_ads/v5/services/mobile_device_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services MobileDeviceConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import mobile_device_constant_service_client_config +from google.ads.google_ads.v5.services.transports import mobile_device_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import mobile_device_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class MobileDeviceConstantServiceClient(object): + """Service to fetch mobile device constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.MobileDeviceConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + MobileDeviceConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def mobile_device_constant_path(cls, mobile_device_constant): + """Return a fully-qualified mobile_device_constant string.""" + return google.api_core.path_template.expand( + 'mobileDeviceConstants/{mobile_device_constant}', + mobile_device_constant=mobile_device_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.MobileDeviceConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.MobileDeviceConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = mobile_device_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=mobile_device_constant_service_grpc_transport.MobileDeviceConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = mobile_device_constant_service_grpc_transport.MobileDeviceConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_mobile_device_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested mobile device constant in full detail. + + Args: + resource_name (str): Required. Resource name of the mobile device to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MobileDeviceConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_mobile_device_constant' not in self._inner_api_calls: + self._inner_api_calls['get_mobile_device_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_mobile_device_constant, + default_retry=self._method_configs['GetMobileDeviceConstant'].retry, + default_timeout=self._method_configs['GetMobileDeviceConstant'].timeout, + client_info=self._client_info, + ) + + request = mobile_device_constant_service_pb2.GetMobileDeviceConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_mobile_device_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/mobile_device_constant_service_client_config.py b/google/ads/google_ads/v5/services/mobile_device_constant_service_client_config.py new file mode 100644 index 000000000..6c9e91b2e --- /dev/null +++ b/google/ads/google_ads/v5/services/mobile_device_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.MobileDeviceConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetMobileDeviceConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/offline_user_data_job_service_client.py b/google/ads/google_ads/v5/services/offline_user_data_job_service_client.py new file mode 100644 index 000000000..1944da9d3 --- /dev/null +++ b/google/ads/google_ads/v5/services/offline_user_data_job_service_client.py @@ -0,0 +1,433 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services OfflineUserDataJobService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.operation +import google.api_core.operations_v1 +import google.api_core.path_template + +from google.ads.google_ads.v5.services import offline_user_data_job_service_client_config +from google.ads.google_ads.v5.services.transports import offline_user_data_job_service_grpc_transport +from google.ads.google_ads.v5.proto.services import offline_user_data_job_service_pb2 +from google.protobuf import empty_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class OfflineUserDataJobServiceClient(object): + """Service to manage offline user data jobs.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.OfflineUserDataJobService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + OfflineUserDataJobServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def offline_user_data_job_path(cls, customer, offline_user_data_job): + """Return a fully-qualified offline_user_data_job string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/offlineUserDataJobs/{offline_user_data_job}', + customer=customer, + offline_user_data_job=offline_user_data_job, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.OfflineUserDataJobServiceGrpcTransport, + Callable[[~.Credentials, type], ~.OfflineUserDataJobServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = offline_user_data_job_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=offline_user_data_job_service_grpc_transport.OfflineUserDataJobServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = offline_user_data_job_service_grpc_transport.OfflineUserDataJobServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def create_offline_user_data_job( + self, + customer_id, + job, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates an offline user data job. + + Args: + customer_id (str): Required. The ID of the customer for which to create an offline user data job. + job (Union[dict, ~google.ads.googleads_v5.types.OfflineUserDataJob]): Required. The offline user data job to be created. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.OfflineUserDataJob` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.CreateOfflineUserDataJobResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'create_offline_user_data_job' not in self._inner_api_calls: + self._inner_api_calls['create_offline_user_data_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_offline_user_data_job, + default_retry=self._method_configs['CreateOfflineUserDataJob'].retry, + default_timeout=self._method_configs['CreateOfflineUserDataJob'].timeout, + client_info=self._client_info, + ) + + request = offline_user_data_job_service_pb2.CreateOfflineUserDataJobRequest( + customer_id=customer_id, + job=job, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['create_offline_user_data_job'](request, retry=retry, timeout=timeout, metadata=metadata) + + def get_offline_user_data_job( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the offline user data job. + + Args: + resource_name (str): Required. The resource name of the OfflineUserDataJob to get. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.OfflineUserDataJob` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_offline_user_data_job' not in self._inner_api_calls: + self._inner_api_calls['get_offline_user_data_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_offline_user_data_job, + default_retry=self._method_configs['GetOfflineUserDataJob'].retry, + default_timeout=self._method_configs['GetOfflineUserDataJob'].timeout, + client_info=self._client_info, + ) + + request = offline_user_data_job_service_pb2.GetOfflineUserDataJobRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_offline_user_data_job'](request, retry=retry, timeout=timeout, metadata=metadata) + + def add_offline_user_data_job_operations( + self, + resource_name, + enable_partial_failure, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Adds operations to the offline user data job. + + Args: + resource_name (str): Required. The resource name of the OfflineUserDataJob. + enable_partial_failure (Union[dict, ~google.ads.googleads_v5.types.BoolValue]): True to enable partial failure for the offline user data job. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.BoolValue` + operations (list[Union[dict, ~google.ads.googleads_v5.types.OfflineUserDataJobOperation]]): Required. The list of operations to be done. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.OfflineUserDataJobOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.AddOfflineUserDataJobOperationsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'add_offline_user_data_job_operations' not in self._inner_api_calls: + self._inner_api_calls['add_offline_user_data_job_operations'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.add_offline_user_data_job_operations, + default_retry=self._method_configs['AddOfflineUserDataJobOperations'].retry, + default_timeout=self._method_configs['AddOfflineUserDataJobOperations'].timeout, + client_info=self._client_info, + ) + + request = offline_user_data_job_service_pb2.AddOfflineUserDataJobOperationsRequest( + resource_name=resource_name, + enable_partial_failure=enable_partial_failure, + operations=operations, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['add_offline_user_data_job_operations'](request, retry=retry, timeout=timeout, metadata=metadata) + + def run_offline_user_data_job( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Runs the offline user data job. + + When finished, the long running operation will contain the processing + result or failure information, if any. + + Args: + resource_name (str): Required. The resource name of the OfflineUserDataJob to run. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types._OperationFuture` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'run_offline_user_data_job' not in self._inner_api_calls: + self._inner_api_calls['run_offline_user_data_job'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_offline_user_data_job, + default_retry=self._method_configs['RunOfflineUserDataJob'].retry, + default_timeout=self._method_configs['RunOfflineUserDataJob'].timeout, + client_info=self._client_info, + ) + + request = offline_user_data_job_service_pb2.RunOfflineUserDataJobRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + operation = self._inner_api_calls['run_offline_user_data_job'](request, retry=retry, timeout=timeout, metadata=metadata) + return google.api_core.operation.from_gapic( + operation, + self.transport._operations_client, + empty_pb2.Empty, + metadata_type=empty_pb2.Empty, + ) diff --git a/google/ads/google_ads/v5/services/offline_user_data_job_service_client_config.py b/google/ads/google_ads/v5/services/offline_user_data_job_service_client_config.py new file mode 100644 index 000000000..2a3c92248 --- /dev/null +++ b/google/ads/google_ads/v5/services/offline_user_data_job_service_client_config.py @@ -0,0 +1,46 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.OfflineUserDataJobService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "CreateOfflineUserDataJob": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GetOfflineUserDataJob": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "AddOfflineUserDataJobOperations": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "RunOfflineUserDataJob": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/operating_system_version_constant_service_client.py b/google/ads/google_ads/v5/services/operating_system_version_constant_service_client.py new file mode 100644 index 000000000..0d7ea14b8 --- /dev/null +++ b/google/ads/google_ads/v5/services/operating_system_version_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services OperatingSystemVersionConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import operating_system_version_constant_service_client_config +from google.ads.google_ads.v5.services.transports import operating_system_version_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import operating_system_version_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class OperatingSystemVersionConstantServiceClient(object): + """Service to fetch Operating System Version constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.OperatingSystemVersionConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + OperatingSystemVersionConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def operating_system_version_constant_path(cls, operating_system_version_constant): + """Return a fully-qualified operating_system_version_constant string.""" + return google.api_core.path_template.expand( + 'operatingSystemVersionConstants/{operating_system_version_constant}', + operating_system_version_constant=operating_system_version_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.OperatingSystemVersionConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.OperatingSystemVersionConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = operating_system_version_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=operating_system_version_constant_service_grpc_transport.OperatingSystemVersionConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = operating_system_version_constant_service_grpc_transport.OperatingSystemVersionConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_operating_system_version_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested OS version constant in full detail. + + Args: + resource_name (str): Required. Resource name of the OS version to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.OperatingSystemVersionConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_operating_system_version_constant' not in self._inner_api_calls: + self._inner_api_calls['get_operating_system_version_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_operating_system_version_constant, + default_retry=self._method_configs['GetOperatingSystemVersionConstant'].retry, + default_timeout=self._method_configs['GetOperatingSystemVersionConstant'].timeout, + client_info=self._client_info, + ) + + request = operating_system_version_constant_service_pb2.GetOperatingSystemVersionConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_operating_system_version_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/operating_system_version_constant_service_client_config.py b/google/ads/google_ads/v5/services/operating_system_version_constant_service_client_config.py new file mode 100644 index 000000000..77bb54009 --- /dev/null +++ b/google/ads/google_ads/v5/services/operating_system_version_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.OperatingSystemVersionConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetOperatingSystemVersionConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client.py b/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client.py new file mode 100644 index 000000000..752da1170 --- /dev/null +++ b/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services PaidOrganicSearchTermViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import paid_organic_search_term_view_service_client_config +from google.ads.google_ads.v5.services.transports import paid_organic_search_term_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import paid_organic_search_term_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class PaidOrganicSearchTermViewServiceClient(object): + """Service to fetch paid organic search term views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.PaidOrganicSearchTermViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PaidOrganicSearchTermViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def paid_organic_search_term_view_path(cls, customer, paid_organic_search_term_view): + """Return a fully-qualified paid_organic_search_term_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/paidOrganicSearchTermViews/{paid_organic_search_term_view}', + customer=customer, + paid_organic_search_term_view=paid_organic_search_term_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.PaidOrganicSearchTermViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.PaidOrganicSearchTermViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = paid_organic_search_term_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=paid_organic_search_term_view_service_grpc_transport.PaidOrganicSearchTermViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = paid_organic_search_term_view_service_grpc_transport.PaidOrganicSearchTermViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_paid_organic_search_term_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested paid organic search term view in full detail. + + Args: + resource_name (str): Required. The resource name of the paid organic search term view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.PaidOrganicSearchTermView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_paid_organic_search_term_view' not in self._inner_api_calls: + self._inner_api_calls['get_paid_organic_search_term_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_paid_organic_search_term_view, + default_retry=self._method_configs['GetPaidOrganicSearchTermView'].retry, + default_timeout=self._method_configs['GetPaidOrganicSearchTermView'].timeout, + client_info=self._client_info, + ) + + request = paid_organic_search_term_view_service_pb2.GetPaidOrganicSearchTermViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_paid_organic_search_term_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client_config.py b/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client_config.py new file mode 100644 index 000000000..ec6744f1a --- /dev/null +++ b/google/ads/google_ads/v5/services/paid_organic_search_term_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.PaidOrganicSearchTermViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetPaidOrganicSearchTermView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/parental_status_view_service_client.py b/google/ads/google_ads/v5/services/parental_status_view_service_client.py new file mode 100644 index 000000000..ef5a9519d --- /dev/null +++ b/google/ads/google_ads/v5/services/parental_status_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ParentalStatusViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import parental_status_view_service_client_config +from google.ads.google_ads.v5.services.transports import parental_status_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import parental_status_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ParentalStatusViewServiceClient(object): + """Service to manage parental status views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ParentalStatusViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ParentalStatusViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def parental_status_view_path(cls, customer, parental_status_view): + """Return a fully-qualified parental_status_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/parentalStatusViews/{parental_status_view}', + customer=customer, + parental_status_view=parental_status_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ParentalStatusViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ParentalStatusViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = parental_status_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=parental_status_view_service_grpc_transport.ParentalStatusViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = parental_status_view_service_grpc_transport.ParentalStatusViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_parental_status_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested parental status view in full detail. + + Args: + resource_name (str): Required. The resource name of the parental status view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ParentalStatusView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_parental_status_view' not in self._inner_api_calls: + self._inner_api_calls['get_parental_status_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_parental_status_view, + default_retry=self._method_configs['GetParentalStatusView'].retry, + default_timeout=self._method_configs['GetParentalStatusView'].timeout, + client_info=self._client_info, + ) + + request = parental_status_view_service_pb2.GetParentalStatusViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_parental_status_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/parental_status_view_service_client_config.py b/google/ads/google_ads/v5/services/parental_status_view_service_client_config.py new file mode 100644 index 000000000..4be392e2e --- /dev/null +++ b/google/ads/google_ads/v5/services/parental_status_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ParentalStatusViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetParentalStatusView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/payments_account_service_client.py b/google/ads/google_ads/v5/services/payments_account_service_client.py new file mode 100644 index 000000000..8b7b22929 --- /dev/null +++ b/google/ads/google_ads/v5/services/payments_account_service_client.py @@ -0,0 +1,232 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services PaymentsAccountService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.services import payments_account_service_client_config +from google.ads.google_ads.v5.services.transports import payments_account_service_grpc_transport +from google.ads.google_ads.v5.proto.services import payments_account_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class PaymentsAccountServiceClient(object): + """ + Service to provide payments accounts that can be used to set up consolidated + billing. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.PaymentsAccountService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PaymentsAccountServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.PaymentsAccountServiceGrpcTransport, + Callable[[~.Credentials, type], ~.PaymentsAccountServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = payments_account_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=payments_account_service_grpc_transport.PaymentsAccountServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = payments_account_service_grpc_transport.PaymentsAccountServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def list_payments_accounts( + self, + customer_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all payments accounts associated with all managers + between the login customer ID and specified serving customer in the + hierarchy, inclusive. + + Args: + customer_id (str): Required. The ID of the customer to apply the PaymentsAccount list operation to. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListPaymentsAccountsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_payments_accounts' not in self._inner_api_calls: + self._inner_api_calls['list_payments_accounts'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_payments_accounts, + default_retry=self._method_configs['ListPaymentsAccounts'].retry, + default_timeout=self._method_configs['ListPaymentsAccounts'].timeout, + client_info=self._client_info, + ) + + request = payments_account_service_pb2.ListPaymentsAccountsRequest( + customer_id=customer_id, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['list_payments_accounts'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/payments_account_service_client_config.py b/google/ads/google_ads/v5/services/payments_account_service_client_config.py new file mode 100644 index 000000000..52f4488e9 --- /dev/null +++ b/google/ads/google_ads/v5/services/payments_account_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.PaymentsAccountService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "ListPaymentsAccounts": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client.py b/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client.py new file mode 100644 index 000000000..25c8bf738 --- /dev/null +++ b/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ProductBiddingCategoryConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import product_bidding_category_constant_service_client_config +from google.ads.google_ads.v5.services.transports import product_bidding_category_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import product_bidding_category_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ProductBiddingCategoryConstantServiceClient(object): + """Service to fetch Product Bidding Categories.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ProductBiddingCategoryConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ProductBiddingCategoryConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def product_bidding_category_constant_path(cls, product_bidding_category_constant): + """Return a fully-qualified product_bidding_category_constant string.""" + return google.api_core.path_template.expand( + 'productBiddingCategoryConstants/{product_bidding_category_constant}', + product_bidding_category_constant=product_bidding_category_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ProductBiddingCategoryConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ProductBiddingCategoryConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = product_bidding_category_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=product_bidding_category_constant_service_grpc_transport.ProductBiddingCategoryConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = product_bidding_category_constant_service_grpc_transport.ProductBiddingCategoryConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_product_bidding_category_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Product Bidding Category in full detail. + + Args: + resource_name (str): Required. Resource name of the Product Bidding Category to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ProductBiddingCategoryConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_product_bidding_category_constant' not in self._inner_api_calls: + self._inner_api_calls['get_product_bidding_category_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product_bidding_category_constant, + default_retry=self._method_configs['GetProductBiddingCategoryConstant'].retry, + default_timeout=self._method_configs['GetProductBiddingCategoryConstant'].timeout, + client_info=self._client_info, + ) + + request = product_bidding_category_constant_service_pb2.GetProductBiddingCategoryConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_product_bidding_category_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client_config.py b/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client_config.py new file mode 100644 index 000000000..9682d00f4 --- /dev/null +++ b/google/ads/google_ads/v5/services/product_bidding_category_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ProductBiddingCategoryConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetProductBiddingCategoryConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/product_group_view_service_client.py b/google/ads/google_ads/v5/services/product_group_view_service_client.py new file mode 100644 index 000000000..87f013aa4 --- /dev/null +++ b/google/ads/google_ads/v5/services/product_group_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ProductGroupViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import product_group_view_service_client_config +from google.ads.google_ads.v5.services.transports import product_group_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import product_group_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ProductGroupViewServiceClient(object): + """Service to manage product group views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ProductGroupViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ProductGroupViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def product_group_view_path(cls, customer, product_group_view): + """Return a fully-qualified product_group_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/productGroupViews/{product_group_view}', + customer=customer, + product_group_view=product_group_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ProductGroupViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ProductGroupViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = product_group_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=product_group_view_service_grpc_transport.ProductGroupViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = product_group_view_service_grpc_transport.ProductGroupViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_product_group_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested product group view in full detail. + + Args: + resource_name (str): Required. The resource name of the product group view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ProductGroupView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_product_group_view' not in self._inner_api_calls: + self._inner_api_calls['get_product_group_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product_group_view, + default_retry=self._method_configs['GetProductGroupView'].retry, + default_timeout=self._method_configs['GetProductGroupView'].timeout, + client_info=self._client_info, + ) + + request = product_group_view_service_pb2.GetProductGroupViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_product_group_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/product_group_view_service_client_config.py b/google/ads/google_ads/v5/services/product_group_view_service_client_config.py new file mode 100644 index 000000000..b820ac859 --- /dev/null +++ b/google/ads/google_ads/v5/services/product_group_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ProductGroupViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetProductGroupView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/reach_plan_service_client.py b/google/ads/google_ads/v5/services/reach_plan_service_client.py new file mode 100644 index 000000000..91c373a3a --- /dev/null +++ b/google/ads/google_ads/v5/services/reach_plan_service_client.py @@ -0,0 +1,474 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ReachPlanService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.services import reach_plan_service_client_config +from google.ads.google_ads.v5.services.transports import reach_plan_service_grpc_transport +from google.ads.google_ads.v5.proto.services import reach_plan_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ReachPlanServiceClient(object): + """ + Reach Plan Service gives users information about audience size that can + be reached through advertisement on YouTube. In particular, + GenerateReachForecast provides estimated number of people of specified + demographics that can be reached by an ad in a given market by a campaign of + certain duration with a defined budget. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ReachPlanService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ReachPlanServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ReachPlanServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ReachPlanServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = reach_plan_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=reach_plan_service_grpc_transport.ReachPlanServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = reach_plan_service_grpc_transport.ReachPlanServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def list_plannable_locations( + self, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the list of plannable locations (for example, countries & DMAs). + + Args: + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListPlannableLocationsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_plannable_locations' not in self._inner_api_calls: + self._inner_api_calls['list_plannable_locations'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_plannable_locations, + default_retry=self._method_configs['ListPlannableLocations'].retry, + default_timeout=self._method_configs['ListPlannableLocations'].timeout, + client_info=self._client_info, + ) + + request = reach_plan_service_pb2.ListPlannableLocationsRequest() + return self._inner_api_calls['list_plannable_locations'](request, retry=retry, timeout=timeout, metadata=metadata) + + def list_plannable_products( + self, + plannable_location_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the list of per-location plannable YouTube ad formats with allowed + targeting. + + Args: + plannable_location_id (Union[dict, ~google.ads.googleads_v5.types.StringValue]): Required. The ID of the selected location for planning. To list the available + plannable location ids use ListPlannableLocations. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ListPlannableProductsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'list_plannable_products' not in self._inner_api_calls: + self._inner_api_calls['list_plannable_products'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_plannable_products, + default_retry=self._method_configs['ListPlannableProducts'].retry, + default_timeout=self._method_configs['ListPlannableProducts'].timeout, + client_info=self._client_info, + ) + + request = reach_plan_service_pb2.ListPlannableProductsRequest( + plannable_location_id=plannable_location_id, + ) + return self._inner_api_calls['list_plannable_products'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_product_mix_ideas( + self, + customer_id, + plannable_location_id, + currency_code, + budget_micros, + preferences=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Generates a product mix ideas given a set of preferences. This method + helps the advertiser to obtain a good mix of ad formats and budget + allocations based on its preferences. + + Args: + customer_id (str): Required. The ID of the customer. + plannable_location_id (Union[dict, ~google.ads.googleads_v5.types.StringValue]): Required. The ID of the location, this is one of the ids returned by + ListPlannableLocations. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + currency_code (Union[dict, ~google.ads.googleads_v5.types.StringValue]): Required. Currency code. + Three-character ISO 4217 currency code. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + budget_micros (Union[dict, ~google.ads.googleads_v5.types.Int64Value]): Required. Total budget. + Amount in micros. One million is equivalent to one unit. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Int64Value` + preferences (Union[dict, ~google.ads.googleads_v5.types.Preferences]): The preferences of the suggested product mix. + An unset preference is interpreted as all possible values are allowed, + unless explicitly specified. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Preferences` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateProductMixIdeasResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_product_mix_ideas' not in self._inner_api_calls: + self._inner_api_calls['generate_product_mix_ideas'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_product_mix_ideas, + default_retry=self._method_configs['GenerateProductMixIdeas'].retry, + default_timeout=self._method_configs['GenerateProductMixIdeas'].timeout, + client_info=self._client_info, + ) + + request = reach_plan_service_pb2.GenerateProductMixIdeasRequest( + customer_id=customer_id, + plannable_location_id=plannable_location_id, + currency_code=currency_code, + budget_micros=budget_micros, + preferences=preferences, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_product_mix_ideas'](request, retry=retry, timeout=timeout, metadata=metadata) + + def generate_reach_forecast( + self, + customer_id, + campaign_duration, + planned_products, + currency_code=None, + cookie_frequency_cap=None, + cookie_frequency_cap_setting=None, + min_effective_frequency=None, + targeting=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Generates a reach forecast for a given targeting / product mix. + + Args: + customer_id (str): Required. The ID of the customer. + campaign_duration (Union[dict, ~google.ads.googleads_v5.types.CampaignDuration]): Required. Campaign duration. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CampaignDuration` + planned_products (list[Union[dict, ~google.ads.googleads_v5.types.PlannedProduct]]): Required. The products to be forecast. + The max number of allowed planned products is 15. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.PlannedProduct` + currency_code (Union[dict, ~google.ads.googleads_v5.types.StringValue]): The currency code. + Three-character ISO 4217 currency code. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.StringValue` + cookie_frequency_cap (Union[dict, ~google.ads.googleads_v5.types.Int32Value]): Desired cookie frequency cap that will be applied to each planned + product. This is equivalent to the frequency cap exposed in Google Ads + when creating a campaign, it represents the maximum number of times an + ad can be shown to the same user. If not specified no cap is applied. + + This field is deprecated in v4 and will eventually be removed. Please + use cookie\_frequency\_cap\_setting instead. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Int32Value` + cookie_frequency_cap_setting (Union[dict, ~google.ads.googleads_v5.types.FrequencyCap]): Desired cookie frequency cap that will be applied to each planned + product. This is equivalent to the frequency cap exposed in Google Ads + when creating a campaign, it represents the maximum number of times an + ad can be shown to the same user during a specified time interval. If + not specified, no cap is applied. + + This field replaces the deprecated cookie\_frequency\_cap field. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.FrequencyCap` + min_effective_frequency (Union[dict, ~google.ads.googleads_v5.types.Int32Value]): Desired minimum effective frequency (the number of times a person was + exposed to the ad) for the reported reach metrics [1-10]. This won't + affect the targeting, but just the reporting. If not specified, a + default of 1 is applied. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Int32Value` + targeting (Union[dict, ~google.ads.googleads_v5.types.Targeting]): The targeting to be applied to all products selected in the product mix. + + This is planned targeting: execution details might vary based on the + advertising product, please consult an implementation specialist. + + See specific metrics for details on how targeting affects them. + + In some cases, targeting may be overridden using the + PlannedProduct.advanced\_product\_targeting field. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.Targeting` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.GenerateReachForecastResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'generate_reach_forecast' not in self._inner_api_calls: + self._inner_api_calls['generate_reach_forecast'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.generate_reach_forecast, + default_retry=self._method_configs['GenerateReachForecast'].retry, + default_timeout=self._method_configs['GenerateReachForecast'].timeout, + client_info=self._client_info, + ) + + request = reach_plan_service_pb2.GenerateReachForecastRequest( + customer_id=customer_id, + campaign_duration=campaign_duration, + planned_products=planned_products, + currency_code=currency_code, + cookie_frequency_cap=cookie_frequency_cap, + cookie_frequency_cap_setting=cookie_frequency_cap_setting, + min_effective_frequency=min_effective_frequency, + targeting=targeting, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['generate_reach_forecast'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/reach_plan_service_client_config.py b/google/ads/google_ads/v5/services/reach_plan_service_client_config.py new file mode 100644 index 000000000..430e3d4df --- /dev/null +++ b/google/ads/google_ads/v5/services/reach_plan_service_client_config.py @@ -0,0 +1,46 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ReachPlanService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "ListPlannableLocations": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListPlannableProducts": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GenerateProductMixIdeas": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "GenerateReachForecast": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/recommendation_service_client.py b/google/ads/google_ads/v5/services/recommendation_service_client.py new file mode 100644 index 000000000..09cdc1eac --- /dev/null +++ b/google/ads/google_ads/v5/services/recommendation_service_client.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services RecommendationService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import recommendation_service_client_config +from google.ads.google_ads.v5.services.transports import recommendation_service_grpc_transport +from google.ads.google_ads.v5.proto.services import recommendation_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class RecommendationServiceClient(object): + """Service to manage recommendations.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.RecommendationService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + RecommendationServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def recommendation_path(cls, customer, recommendation): + """Return a fully-qualified recommendation string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/recommendations/{recommendation}', + customer=customer, + recommendation=recommendation, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.RecommendationServiceGrpcTransport, + Callable[[~.Credentials, type], ~.RecommendationServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = recommendation_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=recommendation_service_grpc_transport.RecommendationServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = recommendation_service_grpc_transport.RecommendationServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_recommendation( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested recommendation in full detail. + + Args: + resource_name (str): Required. The resource name of the recommendation to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Recommendation` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_recommendation' not in self._inner_api_calls: + self._inner_api_calls['get_recommendation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_recommendation, + default_retry=self._method_configs['GetRecommendation'].retry, + default_timeout=self._method_configs['GetRecommendation'].timeout, + client_info=self._client_info, + ) + + request = recommendation_service_pb2.GetRecommendationRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_recommendation'](request, retry=retry, timeout=timeout, metadata=metadata) + + def apply_recommendation( + self, + customer_id, + operations, + partial_failure=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Applies given recommendations with corresponding apply parameters. + + Args: + customer_id (str): Required. The ID of the customer with the recommendation. + operations (list[Union[dict, ~google.ads.googleads_v5.types.ApplyRecommendationOperation]]): Required. The list of operations to apply recommendations. If + partial\_failure=false all recommendations should be of the same type + There is a limit of 100 operations per request. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.ApplyRecommendationOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, operations will be carried + out as a transaction if and only if they are all valid. + Default is false. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ApplyRecommendationResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'apply_recommendation' not in self._inner_api_calls: + self._inner_api_calls['apply_recommendation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.apply_recommendation, + default_retry=self._method_configs['ApplyRecommendation'].retry, + default_timeout=self._method_configs['ApplyRecommendation'].timeout, + client_info=self._client_info, + ) + + request = recommendation_service_pb2.ApplyRecommendationRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['apply_recommendation'](request, retry=retry, timeout=timeout, metadata=metadata) + + def dismiss_recommendation( + self, + customer_id, + operations, + partial_failure=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Dismisses given recommendations. + + Args: + customer_id (str): Required. The ID of the customer with the recommendation. + operations (list[Union[dict, ~google.ads.googleads_v5.types.DismissRecommendationOperation]]): Required. The list of operations to dismiss recommendations. If + partial\_failure=false all recommendations should be of the same type + There is a limit of 100 operations per request. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.DismissRecommendationOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, operations will be carried in a + single transaction if and only if they are all valid. + Default is false. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.DismissRecommendationResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'dismiss_recommendation' not in self._inner_api_calls: + self._inner_api_calls['dismiss_recommendation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.dismiss_recommendation, + default_retry=self._method_configs['DismissRecommendation'].retry, + default_timeout=self._method_configs['DismissRecommendation'].timeout, + client_info=self._client_info, + ) + + request = recommendation_service_pb2.DismissRecommendationRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['dismiss_recommendation'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/recommendation_service_client_config.py b/google/ads/google_ads/v5/services/recommendation_service_client_config.py new file mode 100644 index 000000000..088b80817 --- /dev/null +++ b/google/ads/google_ads/v5/services/recommendation_service_client_config.py @@ -0,0 +1,41 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.RecommendationService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetRecommendation": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "ApplyRecommendation": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "DismissRecommendation": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/remarketing_action_service_client.py b/google/ads/google_ads/v5/services/remarketing_action_service_client.py new file mode 100644 index 000000000..3de0b48e4 --- /dev/null +++ b/google/ads/google_ads/v5/services/remarketing_action_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services RemarketingActionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import remarketing_action_service_client_config +from google.ads.google_ads.v5.services.transports import remarketing_action_service_grpc_transport +from google.ads.google_ads.v5.proto.services import remarketing_action_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class RemarketingActionServiceClient(object): + """Service to manage remarketing actions.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.RemarketingActionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + RemarketingActionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def remarketing_action_path(cls, customer, remarketing_action): + """Return a fully-qualified remarketing_action string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/remarketingActions/{remarketing_action}', + customer=customer, + remarketing_action=remarketing_action, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.RemarketingActionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.RemarketingActionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = remarketing_action_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=remarketing_action_service_grpc_transport.RemarketingActionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = remarketing_action_service_grpc_transport.RemarketingActionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_remarketing_action( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested remarketing action in full detail. + + Args: + resource_name (str): Required. The resource name of the remarketing action to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.RemarketingAction` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_remarketing_action' not in self._inner_api_calls: + self._inner_api_calls['get_remarketing_action'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_remarketing_action, + default_retry=self._method_configs['GetRemarketingAction'].retry, + default_timeout=self._method_configs['GetRemarketingAction'].timeout, + client_info=self._client_info, + ) + + request = remarketing_action_service_pb2.GetRemarketingActionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_remarketing_action'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_remarketing_actions( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or updates remarketing actions. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose remarketing actions are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.RemarketingActionOperation]]): Required. The list of operations to perform on individual remarketing actions. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.RemarketingActionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateRemarketingActionsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_remarketing_actions' not in self._inner_api_calls: + self._inner_api_calls['mutate_remarketing_actions'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_remarketing_actions, + default_retry=self._method_configs['MutateRemarketingActions'].retry, + default_timeout=self._method_configs['MutateRemarketingActions'].timeout, + client_info=self._client_info, + ) + + request = remarketing_action_service_pb2.MutateRemarketingActionsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_remarketing_actions'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/remarketing_action_service_client_config.py b/google/ads/google_ads/v5/services/remarketing_action_service_client_config.py new file mode 100644 index 000000000..9001ab1e0 --- /dev/null +++ b/google/ads/google_ads/v5/services/remarketing_action_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.RemarketingActionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetRemarketingAction": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateRemarketingActions": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/search_term_view_service_client.py b/google/ads/google_ads/v5/services/search_term_view_service_client.py new file mode 100644 index 000000000..63704a041 --- /dev/null +++ b/google/ads/google_ads/v5/services/search_term_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services SearchTermViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import search_term_view_service_client_config +from google.ads.google_ads.v5.services.transports import search_term_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import search_term_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class SearchTermViewServiceClient(object): + """Service to manage search term views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.SearchTermViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + SearchTermViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def search_term_view_path(cls, customer, search_term_view): + """Return a fully-qualified search_term_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/searchTermViews/{search_term_view}', + customer=customer, + search_term_view=search_term_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.SearchTermViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.SearchTermViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = search_term_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=search_term_view_service_grpc_transport.SearchTermViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = search_term_view_service_grpc_transport.SearchTermViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_search_term_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the attributes of the requested search term view. + + Args: + resource_name (str): Required. The resource name of the search term view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.SearchTermView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_search_term_view' not in self._inner_api_calls: + self._inner_api_calls['get_search_term_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_search_term_view, + default_retry=self._method_configs['GetSearchTermView'].retry, + default_timeout=self._method_configs['GetSearchTermView'].timeout, + client_info=self._client_info, + ) + + request = search_term_view_service_pb2.GetSearchTermViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_search_term_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/search_term_view_service_client_config.py b/google/ads/google_ads/v5/services/search_term_view_service_client_config.py new file mode 100644 index 000000000..7bb2dbf5e --- /dev/null +++ b/google/ads/google_ads/v5/services/search_term_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.SearchTermViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetSearchTermView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/shared_criterion_service_client.py b/google/ads/google_ads/v5/services/shared_criterion_service_client.py new file mode 100644 index 000000000..aeb499019 --- /dev/null +++ b/google/ads/google_ads/v5/services/shared_criterion_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services SharedCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import shared_criterion_service_client_config +from google.ads.google_ads.v5.services.transports import shared_criterion_service_grpc_transport +from google.ads.google_ads.v5.proto.services import shared_criterion_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class SharedCriterionServiceClient(object): + """Service to manage shared criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.SharedCriterionService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + SharedCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def shared_criteria_path(cls, customer, shared_criteria): + """Return a fully-qualified shared_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/sharedCriteria/{shared_criteria}', + customer=customer, + shared_criteria=shared_criteria, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.SharedCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.SharedCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = shared_criterion_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=shared_criterion_service_grpc_transport.SharedCriterionServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = shared_criterion_service_grpc_transport.SharedCriterionServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_shared_criterion( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested shared criterion in full detail. + + Args: + resource_name (str): Required. The resource name of the shared criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.SharedCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_shared_criterion' not in self._inner_api_calls: + self._inner_api_calls['get_shared_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_shared_criterion, + default_retry=self._method_configs['GetSharedCriterion'].retry, + default_timeout=self._method_configs['GetSharedCriterion'].timeout, + client_info=self._client_info, + ) + + request = shared_criterion_service_pb2.GetSharedCriterionRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_shared_criterion'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_shared_criteria( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or removes shared criteria. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose shared criteria are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.SharedCriterionOperation]]): Required. The list of operations to perform on individual shared criteria. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.SharedCriterionOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateSharedCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_shared_criteria' not in self._inner_api_calls: + self._inner_api_calls['mutate_shared_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_shared_criteria, + default_retry=self._method_configs['MutateSharedCriteria'].retry, + default_timeout=self._method_configs['MutateSharedCriteria'].timeout, + client_info=self._client_info, + ) + + request = shared_criterion_service_pb2.MutateSharedCriteriaRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_shared_criteria'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/shared_criterion_service_client_config.py b/google/ads/google_ads/v5/services/shared_criterion_service_client_config.py new file mode 100644 index 000000000..15655a61e --- /dev/null +++ b/google/ads/google_ads/v5/services/shared_criterion_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.SharedCriterionService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetSharedCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateSharedCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/shared_set_service_client.py b/google/ads/google_ads/v5/services/shared_set_service_client.py new file mode 100644 index 000000000..48ae4238f --- /dev/null +++ b/google/ads/google_ads/v5/services/shared_set_service_client.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services SharedSetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import shared_set_service_client_config +from google.ads.google_ads.v5.services.transports import shared_set_service_grpc_transport +from google.ads.google_ads.v5.proto.services import shared_set_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class SharedSetServiceClient(object): + """Service to manage shared sets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.SharedSetService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + SharedSetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def shared_set_path(cls, customer, shared_set): + """Return a fully-qualified shared_set string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/sharedSets/{shared_set}', + customer=customer, + shared_set=shared_set, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.SharedSetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.SharedSetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = shared_set_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=shared_set_service_grpc_transport.SharedSetServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = shared_set_service_grpc_transport.SharedSetServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_shared_set( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested shared set in full detail. + + Args: + resource_name (str): Required. The resource name of the shared set to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.SharedSet` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_shared_set' not in self._inner_api_calls: + self._inner_api_calls['get_shared_set'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_shared_set, + default_retry=self._method_configs['GetSharedSet'].retry, + default_timeout=self._method_configs['GetSharedSet'].timeout, + client_info=self._client_info, + ) + + request = shared_set_service_pb2.GetSharedSetRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_shared_set'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_shared_sets( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + response_content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes shared sets. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose shared sets are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.SharedSetOperation]]): Required. The list of operations to perform on individual shared sets. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.SharedSetOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + response_content_type (~google.ads.googleads_v5.types.ResponseContentType): The response content type setting. Determines whether the mutable resource + or just the resource name should be returned post mutation. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateSharedSetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_shared_sets' not in self._inner_api_calls: + self._inner_api_calls['mutate_shared_sets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_shared_sets, + default_retry=self._method_configs['MutateSharedSets'].retry, + default_timeout=self._method_configs['MutateSharedSets'].timeout, + client_info=self._client_info, + ) + + request = shared_set_service_pb2.MutateSharedSetsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + response_content_type=response_content_type, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_shared_sets'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/shared_set_service_client_config.py b/google/ads/google_ads/v5/services/shared_set_service_client_config.py new file mode 100644 index 000000000..d9c17f57c --- /dev/null +++ b/google/ads/google_ads/v5/services/shared_set_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.SharedSetService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetSharedSet": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateSharedSets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/shopping_performance_view_service_client.py b/google/ads/google_ads/v5/services/shopping_performance_view_service_client.py new file mode 100644 index 000000000..2a2364dbd --- /dev/null +++ b/google/ads/google_ads/v5/services/shopping_performance_view_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ShoppingPerformanceViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import shopping_performance_view_service_client_config +from google.ads.google_ads.v5.services.transports import shopping_performance_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import shopping_performance_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ShoppingPerformanceViewServiceClient(object): + """Service to fetch Shopping performance views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ShoppingPerformanceViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ShoppingPerformanceViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def shopping_performance_view_path(cls, customer): + """Return a fully-qualified shopping_performance_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/shoppingPerformanceView', + customer=customer, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ShoppingPerformanceViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ShoppingPerformanceViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = shopping_performance_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=shopping_performance_view_service_grpc_transport.ShoppingPerformanceViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = shopping_performance_view_service_grpc_transport.ShoppingPerformanceViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_shopping_performance_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Shopping performance view in full detail. + + Args: + resource_name (str): Required. The resource name of the Shopping performance view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ShoppingPerformanceView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_shopping_performance_view' not in self._inner_api_calls: + self._inner_api_calls['get_shopping_performance_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_shopping_performance_view, + default_retry=self._method_configs['GetShoppingPerformanceView'].retry, + default_timeout=self._method_configs['GetShoppingPerformanceView'].timeout, + client_info=self._client_info, + ) + + request = shopping_performance_view_service_pb2.GetShoppingPerformanceViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_shopping_performance_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/shopping_performance_view_service_client_config.py b/google/ads/google_ads/v5/services/shopping_performance_view_service_client_config.py new file mode 100644 index 000000000..287d22aa2 --- /dev/null +++ b/google/ads/google_ads/v5/services/shopping_performance_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ShoppingPerformanceViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetShoppingPerformanceView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client.py b/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client.py new file mode 100644 index 000000000..bff2ffc70 --- /dev/null +++ b/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client.py @@ -0,0 +1,297 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services ThirdPartyAppAnalyticsLinkService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import third_party_app_analytics_link_service_client_config +from google.ads.google_ads.v5.services.transports import third_party_app_analytics_link_service_grpc_transport +from google.ads.google_ads.v5.proto.services import third_party_app_analytics_link_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class ThirdPartyAppAnalyticsLinkServiceClient(object): + """ + This service allows management of links between Google Ads and third party + app analytics. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + ThirdPartyAppAnalyticsLinkServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def third_party_app_analytics_link_path(cls, customer, third_party_app_analytics_link): + """Return a fully-qualified third_party_app_analytics_link string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/thirdPartyAppAnalyticsLinks/{third_party_app_analytics_link}', + customer=customer, + third_party_app_analytics_link=third_party_app_analytics_link, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.ThirdPartyAppAnalyticsLinkServiceGrpcTransport, + Callable[[~.Credentials, type], ~.ThirdPartyAppAnalyticsLinkServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = third_party_app_analytics_link_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=third_party_app_analytics_link_service_grpc_transport.ThirdPartyAppAnalyticsLinkServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = third_party_app_analytics_link_service_grpc_transport.ThirdPartyAppAnalyticsLinkServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_third_party_app_analytics_link( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the third party app analytics link in full detail. + + Args: + resource_name (str): Resource name of the third party app analytics link. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.ThirdPartyAppAnalyticsLink` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_third_party_app_analytics_link' not in self._inner_api_calls: + self._inner_api_calls['get_third_party_app_analytics_link'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_third_party_app_analytics_link, + default_retry=self._method_configs['GetThirdPartyAppAnalyticsLink'].retry, + default_timeout=self._method_configs['GetThirdPartyAppAnalyticsLink'].timeout, + client_info=self._client_info, + ) + + request = third_party_app_analytics_link_service_pb2.GetThirdPartyAppAnalyticsLinkRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_third_party_app_analytics_link'](request, retry=retry, timeout=timeout, metadata=metadata) + + def regenerate_shareable_link_id( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Regenerate ThirdPartyAppAnalyticsLink.shareable\_link\_id that should be + provided to the third party when setting up app analytics. + + Args: + resource_name (str): Resource name of the third party app analytics link. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.RegenerateShareableLinkIdResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'regenerate_shareable_link_id' not in self._inner_api_calls: + self._inner_api_calls['regenerate_shareable_link_id'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.regenerate_shareable_link_id, + default_retry=self._method_configs['RegenerateShareableLinkId'].retry, + default_timeout=self._method_configs['RegenerateShareableLinkId'].timeout, + client_info=self._client_info, + ) + + request = third_party_app_analytics_link_service_pb2.RegenerateShareableLinkIdRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['regenerate_shareable_link_id'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client_config.py b/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client_config.py new file mode 100644 index 000000000..2884f794c --- /dev/null +++ b/google/ads/google_ads/v5/services/third_party_app_analytics_link_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.ThirdPartyAppAnalyticsLinkService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetThirdPartyAppAnalyticsLink": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "RegenerateShareableLinkId": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/topic_constant_service_client.py b/google/ads/google_ads/v5/services/topic_constant_service_client.py new file mode 100644 index 000000000..bfc364c35 --- /dev/null +++ b/google/ads/google_ads/v5/services/topic_constant_service_client.py @@ -0,0 +1,237 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services TopicConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import topic_constant_service_client_config +from google.ads.google_ads.v5.services.transports import topic_constant_service_grpc_transport +from google.ads.google_ads.v5.proto.services import topic_constant_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class TopicConstantServiceClient(object): + """Service to fetch topic constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.TopicConstantService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + TopicConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def topic_constant_path(cls, topic_constant): + """Return a fully-qualified topic_constant string.""" + return google.api_core.path_template.expand( + 'topicConstants/{topic_constant}', + topic_constant=topic_constant, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.TopicConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.TopicConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = topic_constant_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=topic_constant_service_grpc_transport.TopicConstantServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = topic_constant_service_grpc_transport.TopicConstantServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_topic_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested topic constant in full detail. + + Args: + resource_name (str): Required. Resource name of the Topic to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.TopicConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_topic_constant' not in self._inner_api_calls: + self._inner_api_calls['get_topic_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_topic_constant, + default_retry=self._method_configs['GetTopicConstant'].retry, + default_timeout=self._method_configs['GetTopicConstant'].timeout, + client_info=self._client_info, + ) + + request = topic_constant_service_pb2.GetTopicConstantRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_topic_constant'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/topic_constant_service_client_config.py b/google/ads/google_ads/v5/services/topic_constant_service_client_config.py new file mode 100644 index 000000000..516c3a784 --- /dev/null +++ b/google/ads/google_ads/v5/services/topic_constant_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.TopicConstantService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetTopicConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/topic_view_service_client.py b/google/ads/google_ads/v5/services/topic_view_service_client.py new file mode 100644 index 000000000..3386658f2 --- /dev/null +++ b/google/ads/google_ads/v5/services/topic_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services TopicViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import topic_view_service_client_config +from google.ads.google_ads.v5.services.transports import topic_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import topic_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class TopicViewServiceClient(object): + """Service to manage topic views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.TopicViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + TopicViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def topic_view_path(cls, customer, topic_view): + """Return a fully-qualified topic_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/topicViews/{topic_view}', + customer=customer, + topic_view=topic_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.TopicViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.TopicViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = topic_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=topic_view_service_grpc_transport.TopicViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = topic_view_service_grpc_transport.TopicViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_topic_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested topic view in full detail. + + Args: + resource_name (str): Required. The resource name of the topic view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.TopicView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_topic_view' not in self._inner_api_calls: + self._inner_api_calls['get_topic_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_topic_view, + default_retry=self._method_configs['GetTopicView'].retry, + default_timeout=self._method_configs['GetTopicView'].timeout, + client_info=self._client_info, + ) + + request = topic_view_service_pb2.GetTopicViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_topic_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/topic_view_service_client_config.py b/google/ads/google_ads/v5/services/topic_view_service_client_config.py new file mode 100644 index 000000000..2eccfc54c --- /dev/null +++ b/google/ads/google_ads/v5/services/topic_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.TopicViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetTopicView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/transports/__init__.py b/google/ads/google_ads/v5/services/transports/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v5/services/transports/account_budget_proposal_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/account_budget_proposal_service_grpc_transport.py new file mode 100644 index 000000000..db51bf34c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/account_budget_proposal_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import account_budget_proposal_service_pb2_grpc + + +class AccountBudgetProposalServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AccountBudgetProposalService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'account_budget_proposal_service_stub': account_budget_proposal_service_pb2_grpc.AccountBudgetProposalServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_account_budget_proposal(self): + """Return the gRPC stub for :meth:`AccountBudgetProposalServiceClient.get_account_budget_proposal`. + + Returns an account-level budget proposal in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_budget_proposal_service_stub'].GetAccountBudgetProposal + + @property + def mutate_account_budget_proposal(self): + """Return the gRPC stub for :meth:`AccountBudgetProposalServiceClient.mutate_account_budget_proposal`. + + Creates, updates, or removes account budget proposals. Operation statuses + are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_budget_proposal_service_stub'].MutateAccountBudgetProposal \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/account_budget_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/account_budget_service_grpc_transport.py new file mode 100644 index 000000000..7400ed2f1 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/account_budget_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import account_budget_service_pb2_grpc + + +class AccountBudgetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AccountBudgetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'account_budget_service_stub': account_budget_service_pb2_grpc.AccountBudgetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_account_budget(self): + """Return the gRPC stub for :meth:`AccountBudgetServiceClient.get_account_budget`. + + Returns an account-level budget in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_budget_service_stub'].GetAccountBudget \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/account_link_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/account_link_service_grpc_transport.py new file mode 100644 index 000000000..8693468ff --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/account_link_service_grpc_transport.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import account_link_service_pb2_grpc + + +class AccountLinkServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AccountLinkService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'account_link_service_stub': account_link_service_pb2_grpc.AccountLinkServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_account_link(self): + """Return the gRPC stub for :meth:`AccountLinkServiceClient.get_account_link`. + + Returns the account link in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_link_service_stub'].GetAccountLink + + @property + def create_account_link(self): + """Return the gRPC stub for :meth:`AccountLinkServiceClient.create_account_link`. + + Creates an account link. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_link_service_stub'].CreateAccountLink + + @property + def mutate_account_link(self): + """Return the gRPC stub for :meth:`AccountLinkServiceClient.mutate_account_link`. + + Creates or removes an account link. + From V5, create is not supported through + AccountLinkService.MutateAccountLink. Please use + AccountLinkService.CreateAccountLink instead. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['account_link_service_stub'].MutateAccountLink \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_ad_asset_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_ad_asset_view_service_grpc_transport.py new file mode 100644 index 000000000..11a375438 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_ad_asset_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_ad_asset_view_service_pb2_grpc + + +class AdGroupAdAssetViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupAdAssetViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_ad_asset_view_service_stub': ad_group_ad_asset_view_service_pb2_grpc.AdGroupAdAssetViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_ad_asset_view(self): + """Return the gRPC stub for :meth:`AdGroupAdAssetViewServiceClient.get_ad_group_ad_asset_view`. + + Returns the requested ad group ad asset view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_asset_view_service_stub'].GetAdGroupAdAssetView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_ad_label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_ad_label_service_grpc_transport.py new file mode 100644 index 000000000..ebdcbae04 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_ad_label_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_ad_label_service_pb2_grpc + + +class AdGroupAdLabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupAdLabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_ad_label_service_stub': ad_group_ad_label_service_pb2_grpc.AdGroupAdLabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_ad_label(self): + """Return the gRPC stub for :meth:`AdGroupAdLabelServiceClient.get_ad_group_ad_label`. + + Returns the requested ad group ad label in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_label_service_stub'].GetAdGroupAdLabel + + @property + def mutate_ad_group_ad_labels(self): + """Return the gRPC stub for :meth:`AdGroupAdLabelServiceClient.mutate_ad_group_ad_labels`. + + Creates and removes ad group ad labels. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_label_service_stub'].MutateAdGroupAdLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_ad_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_ad_service_grpc_transport.py new file mode 100644 index 000000000..8eb5db3bc --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_ad_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_ad_service_pb2_grpc + + +class AdGroupAdServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupAdService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_ad_service_stub': ad_group_ad_service_pb2_grpc.AdGroupAdServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_ad(self): + """Return the gRPC stub for :meth:`AdGroupAdServiceClient.get_ad_group_ad`. + + Returns the requested ad in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_service_stub'].GetAdGroupAd + + @property + def mutate_ad_group_ads(self): + """Return the gRPC stub for :meth:`AdGroupAdServiceClient.mutate_ad_group_ads`. + + Creates, updates, or removes ads. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_service_stub'].MutateAdGroupAds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_audience_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_audience_view_service_grpc_transport.py new file mode 100644 index 000000000..1f84dff95 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_audience_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_audience_view_service_pb2_grpc + + +class AdGroupAudienceViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupAudienceViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_audience_view_service_stub': ad_group_audience_view_service_pb2_grpc.AdGroupAudienceViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_audience_view(self): + """Return the gRPC stub for :meth:`AdGroupAudienceViewServiceClient.get_ad_group_audience_view`. + + Returns the requested ad group audience view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_audience_view_service_stub'].GetAdGroupAudienceView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_bid_modifier_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_bid_modifier_service_grpc_transport.py new file mode 100644 index 000000000..bc18baec8 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_bid_modifier_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_bid_modifier_service_pb2_grpc + + +class AdGroupBidModifierServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupBidModifierService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_bid_modifier_service_stub': ad_group_bid_modifier_service_pb2_grpc.AdGroupBidModifierServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_bid_modifier(self): + """Return the gRPC stub for :meth:`AdGroupBidModifierServiceClient.get_ad_group_bid_modifier`. + + Returns the requested ad group bid modifier in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_bid_modifier_service_stub'].GetAdGroupBidModifier + + @property + def mutate_ad_group_bid_modifiers(self): + """Return the gRPC stub for :meth:`AdGroupBidModifierServiceClient.mutate_ad_group_bid_modifiers`. + + Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_bid_modifier_service_stub'].MutateAdGroupBidModifiers \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_criterion_label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_criterion_label_service_grpc_transport.py new file mode 100644 index 000000000..d600bd6ed --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_criterion_label_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_criterion_label_service_pb2_grpc + + +class AdGroupCriterionLabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupCriterionLabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_criterion_label_service_stub': ad_group_criterion_label_service_pb2_grpc.AdGroupCriterionLabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_criterion_label(self): + """Return the gRPC stub for :meth:`AdGroupCriterionLabelServiceClient.get_ad_group_criterion_label`. + + Returns the requested ad group criterion label in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_criterion_label_service_stub'].GetAdGroupCriterionLabel + + @property + def mutate_ad_group_criterion_labels(self): + """Return the gRPC stub for :meth:`AdGroupCriterionLabelServiceClient.mutate_ad_group_criterion_labels`. + + Creates and removes ad group criterion labels. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_criterion_label_service_stub'].MutateAdGroupCriterionLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_criterion_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_criterion_service_grpc_transport.py new file mode 100644 index 000000000..09d2cdc52 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_criterion_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_criterion_service_pb2_grpc + + +class AdGroupCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_criterion_service_stub': ad_group_criterion_service_pb2_grpc.AdGroupCriterionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_criterion(self): + """Return the gRPC stub for :meth:`AdGroupCriterionServiceClient.get_ad_group_criterion`. + + Returns the requested criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_criterion_service_stub'].GetAdGroupCriterion + + @property + def mutate_ad_group_criteria(self): + """Return the gRPC stub for :meth:`AdGroupCriterionServiceClient.mutate_ad_group_criteria`. + + Creates, updates, or removes criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_criterion_service_stub'].MutateAdGroupCriteria \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_criterion_simulation_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_criterion_simulation_service_grpc_transport.py new file mode 100644 index 000000000..271df18f1 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_criterion_simulation_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_criterion_simulation_service_pb2_grpc + + +class AdGroupCriterionSimulationServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupCriterionSimulationService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_criterion_simulation_service_stub': ad_group_criterion_simulation_service_pb2_grpc.AdGroupCriterionSimulationServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_criterion_simulation(self): + """Return the gRPC stub for :meth:`AdGroupCriterionSimulationServiceClient.get_ad_group_criterion_simulation`. + + Returns the requested ad group criterion simulation in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_criterion_simulation_service_stub'].GetAdGroupCriterionSimulation \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_extension_setting_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_extension_setting_service_grpc_transport.py new file mode 100644 index 000000000..ce1308815 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_extension_setting_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_extension_setting_service_pb2_grpc + + +class AdGroupExtensionSettingServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupExtensionSettingService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_extension_setting_service_stub': ad_group_extension_setting_service_pb2_grpc.AdGroupExtensionSettingServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_extension_setting(self): + """Return the gRPC stub for :meth:`AdGroupExtensionSettingServiceClient.get_ad_group_extension_setting`. + + Returns the requested ad group extension setting in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_extension_setting_service_stub'].GetAdGroupExtensionSetting + + @property + def mutate_ad_group_extension_settings(self): + """Return the gRPC stub for :meth:`AdGroupExtensionSettingServiceClient.mutate_ad_group_extension_settings`. + + Creates, updates, or removes ad group extension settings. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_extension_setting_service_stub'].MutateAdGroupExtensionSettings \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_feed_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_feed_service_grpc_transport.py new file mode 100644 index 000000000..b138a880c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_feed_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_feed_service_pb2_grpc + + +class AdGroupFeedServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupFeedService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_feed_service_stub': ad_group_feed_service_pb2_grpc.AdGroupFeedServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_feed(self): + """Return the gRPC stub for :meth:`AdGroupFeedServiceClient.get_ad_group_feed`. + + Returns the requested ad group feed in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_feed_service_stub'].GetAdGroupFeed + + @property + def mutate_ad_group_feeds(self): + """Return the gRPC stub for :meth:`AdGroupFeedServiceClient.mutate_ad_group_feeds`. + + Creates, updates, or removes ad group feeds. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_feed_service_stub'].MutateAdGroupFeeds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_label_service_grpc_transport.py new file mode 100644 index 000000000..a5b817142 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_label_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_label_service_pb2_grpc + + +class AdGroupLabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupLabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_label_service_stub': ad_group_label_service_pb2_grpc.AdGroupLabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_label(self): + """Return the gRPC stub for :meth:`AdGroupLabelServiceClient.get_ad_group_label`. + + Returns the requested ad group label in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_label_service_stub'].GetAdGroupLabel + + @property + def mutate_ad_group_labels(self): + """Return the gRPC stub for :meth:`AdGroupLabelServiceClient.mutate_ad_group_labels`. + + Creates and removes ad group labels. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_label_service_stub'].MutateAdGroupLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_service_grpc_transport.py new file mode 100644 index 000000000..f559ba56e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_service_pb2_grpc + + +class AdGroupServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_service_stub': ad_group_service_pb2_grpc.AdGroupServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group(self): + """Return the gRPC stub for :meth:`AdGroupServiceClient.get_ad_group`. + + Returns the requested ad group in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_service_stub'].GetAdGroup + + @property + def mutate_ad_groups(self): + """Return the gRPC stub for :meth:`AdGroupServiceClient.mutate_ad_groups`. + + Creates, updates, or removes ad groups. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_service_stub'].MutateAdGroups \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_group_simulation_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_group_simulation_service_grpc_transport.py new file mode 100644 index 000000000..ebf06e889 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_group_simulation_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_group_simulation_service_pb2_grpc + + +class AdGroupSimulationServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdGroupSimulationService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_simulation_service_stub': ad_group_simulation_service_pb2_grpc.AdGroupSimulationServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_group_simulation(self): + """Return the gRPC stub for :meth:`AdGroupSimulationServiceClient.get_ad_group_simulation`. + + Returns the requested ad group simulation in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_simulation_service_stub'].GetAdGroupSimulation \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_parameter_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_parameter_service_grpc_transport.py new file mode 100644 index 000000000..98e4cc530 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_parameter_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_parameter_service_pb2_grpc + + +class AdParameterServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdParameterService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_parameter_service_stub': ad_parameter_service_pb2_grpc.AdParameterServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_parameter(self): + """Return the gRPC stub for :meth:`AdParameterServiceClient.get_ad_parameter`. + + Returns the requested ad parameter in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_parameter_service_stub'].GetAdParameter + + @property + def mutate_ad_parameters(self): + """Return the gRPC stub for :meth:`AdParameterServiceClient.mutate_ad_parameters`. + + Creates, updates, or removes ad parameters. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_parameter_service_stub'].MutateAdParameters \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_schedule_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_schedule_view_service_grpc_transport.py new file mode 100644 index 000000000..81fcdd623 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_schedule_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_schedule_view_service_pb2_grpc + + +class AdScheduleViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdScheduleViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_schedule_view_service_stub': ad_schedule_view_service_pb2_grpc.AdScheduleViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad_schedule_view(self): + """Return the gRPC stub for :meth:`AdScheduleViewServiceClient.get_ad_schedule_view`. + + Returns the requested ad schedule view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_schedule_view_service_stub'].GetAdScheduleView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/ad_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/ad_service_grpc_transport.py new file mode 100644 index 000000000..715a9d0ab --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/ad_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import ad_service_pb2_grpc + + +class AdServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AdService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_service_stub': ad_service_pb2_grpc.AdServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_ad(self): + """Return the gRPC stub for :meth:`AdServiceClient.get_ad`. + + Returns the requested ad in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_service_stub'].GetAd + + @property + def mutate_ads(self): + """Return the gRPC stub for :meth:`AdServiceClient.mutate_ads`. + + Updates ads. Operation statuses are returned. Updating ads is not supported + for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_service_stub'].MutateAds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/age_range_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/age_range_view_service_grpc_transport.py new file mode 100644 index 000000000..c176ebc1a --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/age_range_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import age_range_view_service_pb2_grpc + + +class AgeRangeViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AgeRangeViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'age_range_view_service_stub': age_range_view_service_pb2_grpc.AgeRangeViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_age_range_view(self): + """Return the gRPC stub for :meth:`AgeRangeViewServiceClient.get_age_range_view`. + + Returns the requested age range view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['age_range_view_service_stub'].GetAgeRangeView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/asset_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/asset_service_grpc_transport.py new file mode 100644 index 000000000..2c970c563 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/asset_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import asset_service_pb2_grpc + + +class AssetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services AssetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'asset_service_stub': asset_service_pb2_grpc.AssetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_asset(self): + """Return the gRPC stub for :meth:`AssetServiceClient.get_asset`. + + Returns the requested asset in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['asset_service_stub'].GetAsset + + @property + def mutate_assets(self): + """Return the gRPC stub for :meth:`AssetServiceClient.mutate_assets`. + + Creates assets. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['asset_service_stub'].MutateAssets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/batch_job_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/batch_job_service_grpc_transport.py new file mode 100644 index 000000000..fc359ec13 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/batch_job_service_grpc_transport.py @@ -0,0 +1,189 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers +import google.api_core.operations_v1 + +from google.ads.google_ads.v5.proto.services import batch_job_service_pb2_grpc + + +class BatchJobServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services BatchJobService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'batch_job_service_stub': batch_job_service_pb2_grpc.BatchJobServiceStub(channel), + } + + # Because this API includes a method that returns a + # long-running operation (proto: google.longrunning.Operation), + # instantiate an LRO client. + self._operations_client = google.api_core.operations_v1.OperationsClient(channel) + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def mutate_batch_job(self): + """Return the gRPC stub for :meth:`BatchJobServiceClient.mutate_batch_job`. + + Mutates a batch job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['batch_job_service_stub'].MutateBatchJob + + @property + def get_batch_job(self): + """Return the gRPC stub for :meth:`BatchJobServiceClient.get_batch_job`. + + Returns the batch job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['batch_job_service_stub'].GetBatchJob + + @property + def list_batch_job_results(self): + """Return the gRPC stub for :meth:`BatchJobServiceClient.list_batch_job_results`. + + Returns the results of the batch job. The job must be done. + Supports standard list paging. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['batch_job_service_stub'].ListBatchJobResults + + @property + def run_batch_job(self): + """Return the gRPC stub for :meth:`BatchJobServiceClient.run_batch_job`. + + Runs the batch job. + + The Operation.metadata field type is BatchJobMetadata. When finished, the + long running operation will not contain errors or a response. Instead, use + ListBatchJobResults to get the results of the job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['batch_job_service_stub'].RunBatchJob + + @property + def add_batch_job_operations(self): + """Return the gRPC stub for :meth:`BatchJobServiceClient.add_batch_job_operations`. + + Add operations to the batch job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['batch_job_service_stub'].AddBatchJobOperations \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/bidding_strategy_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/bidding_strategy_service_grpc_transport.py new file mode 100644 index 000000000..ee5cfc2b4 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/bidding_strategy_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import bidding_strategy_service_pb2_grpc + + +class BiddingStrategyServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services BiddingStrategyService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'bidding_strategy_service_stub': bidding_strategy_service_pb2_grpc.BiddingStrategyServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_bidding_strategy(self): + """Return the gRPC stub for :meth:`BiddingStrategyServiceClient.get_bidding_strategy`. + + Returns the requested bidding strategy in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['bidding_strategy_service_stub'].GetBiddingStrategy + + @property + def mutate_bidding_strategies(self): + """Return the gRPC stub for :meth:`BiddingStrategyServiceClient.mutate_bidding_strategies`. + + Creates, updates, or removes bidding strategies. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['bidding_strategy_service_stub'].MutateBiddingStrategies \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/billing_setup_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/billing_setup_service_grpc_transport.py new file mode 100644 index 000000000..ec591497e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/billing_setup_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import billing_setup_service_pb2_grpc + + +class BillingSetupServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services BillingSetupService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'billing_setup_service_stub': billing_setup_service_pb2_grpc.BillingSetupServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_billing_setup(self): + """Return the gRPC stub for :meth:`BillingSetupServiceClient.get_billing_setup`. + + Returns a billing setup. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['billing_setup_service_stub'].GetBillingSetup + + @property + def mutate_billing_setup(self): + """Return the gRPC stub for :meth:`BillingSetupServiceClient.mutate_billing_setup`. + + Creates a billing setup, or cancels an existing billing setup. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['billing_setup_service_stub'].MutateBillingSetup \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_asset_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_asset_service_grpc_transport.py new file mode 100644 index 000000000..b49c90cca --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_asset_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_asset_service_pb2_grpc + + +class CampaignAssetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignAssetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_asset_service_stub': campaign_asset_service_pb2_grpc.CampaignAssetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_asset(self): + """Return the gRPC stub for :meth:`CampaignAssetServiceClient.get_campaign_asset`. + + Returns the requested campaign asset in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_asset_service_stub'].GetCampaignAsset + + @property + def mutate_campaign_assets(self): + """Return the gRPC stub for :meth:`CampaignAssetServiceClient.mutate_campaign_assets`. + + Creates or removes campaign assets. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_asset_service_stub'].MutateCampaignAssets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_audience_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_audience_view_service_grpc_transport.py new file mode 100644 index 000000000..b098948df --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_audience_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_audience_view_service_pb2_grpc + + +class CampaignAudienceViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignAudienceViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_audience_view_service_stub': campaign_audience_view_service_pb2_grpc.CampaignAudienceViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_audience_view(self): + """Return the gRPC stub for :meth:`CampaignAudienceViewServiceClient.get_campaign_audience_view`. + + Returns the requested campaign audience view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_audience_view_service_stub'].GetCampaignAudienceView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_bid_modifier_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_bid_modifier_service_grpc_transport.py new file mode 100644 index 000000000..4a6e7c872 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_bid_modifier_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_bid_modifier_service_pb2_grpc + + +class CampaignBidModifierServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignBidModifierService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_bid_modifier_service_stub': campaign_bid_modifier_service_pb2_grpc.CampaignBidModifierServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_bid_modifier(self): + """Return the gRPC stub for :meth:`CampaignBidModifierServiceClient.get_campaign_bid_modifier`. + + Returns the requested campaign bid modifier in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_bid_modifier_service_stub'].GetCampaignBidModifier + + @property + def mutate_campaign_bid_modifiers(self): + """Return the gRPC stub for :meth:`CampaignBidModifierServiceClient.mutate_campaign_bid_modifiers`. + + Creates, updates, or removes campaign bid modifiers. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_bid_modifier_service_stub'].MutateCampaignBidModifiers \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_budget_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_budget_service_grpc_transport.py new file mode 100644 index 000000000..74539f22c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_budget_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_budget_service_pb2_grpc + + +class CampaignBudgetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignBudgetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_budget_service_stub': campaign_budget_service_pb2_grpc.CampaignBudgetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_budget(self): + """Return the gRPC stub for :meth:`CampaignBudgetServiceClient.get_campaign_budget`. + + Returns the requested Campaign Budget in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_budget_service_stub'].GetCampaignBudget + + @property + def mutate_campaign_budgets(self): + """Return the gRPC stub for :meth:`CampaignBudgetServiceClient.mutate_campaign_budgets`. + + Creates, updates, or removes campaign budgets. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_budget_service_stub'].MutateCampaignBudgets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_criterion_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_criterion_service_grpc_transport.py new file mode 100644 index 000000000..546ee6f78 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_criterion_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_criterion_service_pb2_grpc + + +class CampaignCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_criterion_service_stub': campaign_criterion_service_pb2_grpc.CampaignCriterionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_criterion(self): + """Return the gRPC stub for :meth:`CampaignCriterionServiceClient.get_campaign_criterion`. + + Returns the requested criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_criterion_service_stub'].GetCampaignCriterion + + @property + def mutate_campaign_criteria(self): + """Return the gRPC stub for :meth:`CampaignCriterionServiceClient.mutate_campaign_criteria`. + + Creates, updates, or removes criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_criterion_service_stub'].MutateCampaignCriteria \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_criterion_simulation_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_criterion_simulation_service_grpc_transport.py new file mode 100644 index 000000000..f390ad76a --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_criterion_simulation_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_criterion_simulation_service_pb2_grpc + + +class CampaignCriterionSimulationServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignCriterionSimulationService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_criterion_simulation_service_stub': campaign_criterion_simulation_service_pb2_grpc.CampaignCriterionSimulationServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_criterion_simulation(self): + """Return the gRPC stub for :meth:`CampaignCriterionSimulationServiceClient.get_campaign_criterion_simulation`. + + Returns the requested campaign criterion simulation in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_criterion_simulation_service_stub'].GetCampaignCriterionSimulation \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_draft_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_draft_service_grpc_transport.py new file mode 100644 index 000000000..c796c0bfa --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_draft_service_grpc_transport.py @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers +import google.api_core.operations_v1 + +from google.ads.google_ads.v5.proto.services import campaign_draft_service_pb2_grpc + + +class CampaignDraftServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignDraftService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_draft_service_stub': campaign_draft_service_pb2_grpc.CampaignDraftServiceStub(channel), + } + + # Because this API includes a method that returns a + # long-running operation (proto: google.longrunning.Operation), + # instantiate an LRO client. + self._operations_client = google.api_core.operations_v1.OperationsClient(channel) + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_draft(self): + """Return the gRPC stub for :meth:`CampaignDraftServiceClient.get_campaign_draft`. + + Returns the requested campaign draft in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_draft_service_stub'].GetCampaignDraft + + @property + def mutate_campaign_drafts(self): + """Return the gRPC stub for :meth:`CampaignDraftServiceClient.mutate_campaign_drafts`. + + Creates, updates, or removes campaign drafts. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_draft_service_stub'].MutateCampaignDrafts + + @property + def promote_campaign_draft(self): + """Return the gRPC stub for :meth:`CampaignDraftServiceClient.promote_campaign_draft`. + + Promotes the changes in a draft back to the base campaign. + + This method returns a Long Running Operation (LRO) indicating if the + Promote is done. Use [Operations.GetOperation] to poll the LRO until it + is done. Only a done status is returned in the response. See the status + in the Campaign Draft resource to determine if the promotion was + successful. If the LRO failed, use + ``CampaignDraftService.ListCampaignDraftAsyncErrors`` to view the list + of error reasons. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_draft_service_stub'].PromoteCampaignDraft + + @property + def list_campaign_draft_async_errors(self): + """Return the gRPC stub for :meth:`CampaignDraftServiceClient.list_campaign_draft_async_errors`. + + Returns all errors that occurred during CampaignDraft promote. Throws an + error if called before campaign draft is promoted. + Supports standard list paging. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_draft_service_stub'].ListCampaignDraftAsyncErrors \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_experiment_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_experiment_service_grpc_transport.py new file mode 100644 index 000000000..0a320e4a3 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_experiment_service_grpc_transport.py @@ -0,0 +1,229 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers +import google.api_core.operations_v1 + +from google.ads.google_ads.v5.proto.services import campaign_experiment_service_pb2_grpc + + +class CampaignExperimentServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignExperimentService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_experiment_service_stub': campaign_experiment_service_pb2_grpc.CampaignExperimentServiceStub(channel), + } + + # Because this API includes a method that returns a + # long-running operation (proto: google.longrunning.Operation), + # instantiate an LRO client. + self._operations_client = google.api_core.operations_v1.OperationsClient(channel) + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_experiment(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.get_campaign_experiment`. + + Returns the requested campaign experiment in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].GetCampaignExperiment + + @property + def create_campaign_experiment(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.create_campaign_experiment`. + + Creates a campaign experiment based on a campaign draft. The draft campaign + will be forked into a real campaign (called the experiment campaign) that + will begin serving ads if successfully created. + + The campaign experiment is created immediately with status INITIALIZING. + This method return a long running operation that tracks the forking of the + draft campaign. If the forking fails, a list of errors can be retrieved + using the ListCampaignExperimentAsyncErrors method. The operation's + metadata will be a StringValue containing the resource name of the created + campaign experiment. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].CreateCampaignExperiment + + @property + def mutate_campaign_experiments(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.mutate_campaign_experiments`. + + Updates campaign experiments. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].MutateCampaignExperiments + + @property + def graduate_campaign_experiment(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.graduate_campaign_experiment`. + + Graduates a campaign experiment to a full campaign. The base and experiment + campaigns will start running independently with their own budgets. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].GraduateCampaignExperiment + + @property + def promote_campaign_experiment(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.promote_campaign_experiment`. + + Promotes the changes in a experiment campaign back to the base campaign. + + The campaign experiment is updated immediately with status PROMOTING. + This method return a long running operation that tracks the promoting of + the experiment campaign. If the promoting fails, a list of errors can be + retrieved using the ListCampaignExperimentAsyncErrors method. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].PromoteCampaignExperiment + + @property + def end_campaign_experiment(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.end_campaign_experiment`. + + Immediately ends a campaign experiment, changing the experiment's scheduled + end date and without waiting for end of day. End date is updated to be the + time of the request. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].EndCampaignExperiment + + @property + def list_campaign_experiment_async_errors(self): + """Return the gRPC stub for :meth:`CampaignExperimentServiceClient.list_campaign_experiment_async_errors`. + + Returns all errors that occurred during CampaignExperiment create or + promote (whichever occurred last). + Supports standard list paging. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_experiment_service_stub'].ListCampaignExperimentAsyncErrors \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_extension_setting_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_extension_setting_service_grpc_transport.py new file mode 100644 index 000000000..a784ba76d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_extension_setting_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_extension_setting_service_pb2_grpc + + +class CampaignExtensionSettingServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignExtensionSettingService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_extension_setting_service_stub': campaign_extension_setting_service_pb2_grpc.CampaignExtensionSettingServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_extension_setting(self): + """Return the gRPC stub for :meth:`CampaignExtensionSettingServiceClient.get_campaign_extension_setting`. + + Returns the requested campaign extension setting in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_extension_setting_service_stub'].GetCampaignExtensionSetting + + @property + def mutate_campaign_extension_settings(self): + """Return the gRPC stub for :meth:`CampaignExtensionSettingServiceClient.mutate_campaign_extension_settings`. + + Creates, updates, or removes campaign extension settings. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_extension_setting_service_stub'].MutateCampaignExtensionSettings \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_feed_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_feed_service_grpc_transport.py new file mode 100644 index 000000000..96104211f --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_feed_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_feed_service_pb2_grpc + + +class CampaignFeedServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignFeedService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_feed_service_stub': campaign_feed_service_pb2_grpc.CampaignFeedServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_feed(self): + """Return the gRPC stub for :meth:`CampaignFeedServiceClient.get_campaign_feed`. + + Returns the requested campaign feed in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_feed_service_stub'].GetCampaignFeed + + @property + def mutate_campaign_feeds(self): + """Return the gRPC stub for :meth:`CampaignFeedServiceClient.mutate_campaign_feeds`. + + Creates, updates, or removes campaign feeds. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_feed_service_stub'].MutateCampaignFeeds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_label_service_grpc_transport.py new file mode 100644 index 000000000..a14e64edf --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_label_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_label_service_pb2_grpc + + +class CampaignLabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignLabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_label_service_stub': campaign_label_service_pb2_grpc.CampaignLabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_label(self): + """Return the gRPC stub for :meth:`CampaignLabelServiceClient.get_campaign_label`. + + Returns the requested campaign-label relationship in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_label_service_stub'].GetCampaignLabel + + @property + def mutate_campaign_labels(self): + """Return the gRPC stub for :meth:`CampaignLabelServiceClient.mutate_campaign_labels`. + + Creates and removes campaign-label relationships. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_label_service_stub'].MutateCampaignLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_service_grpc_transport.py new file mode 100644 index 000000000..d8d780211 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_service_pb2_grpc + + +class CampaignServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_service_stub': campaign_service_pb2_grpc.CampaignServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign(self): + """Return the gRPC stub for :meth:`CampaignServiceClient.get_campaign`. + + Returns the requested campaign in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_service_stub'].GetCampaign + + @property + def mutate_campaigns(self): + """Return the gRPC stub for :meth:`CampaignServiceClient.mutate_campaigns`. + + Creates, updates, or removes campaigns. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_service_stub'].MutateCampaigns \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/campaign_shared_set_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/campaign_shared_set_service_grpc_transport.py new file mode 100644 index 000000000..e688eded3 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/campaign_shared_set_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import campaign_shared_set_service_pb2_grpc + + +class CampaignSharedSetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CampaignSharedSetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_shared_set_service_stub': campaign_shared_set_service_pb2_grpc.CampaignSharedSetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_campaign_shared_set(self): + """Return the gRPC stub for :meth:`CampaignSharedSetServiceClient.get_campaign_shared_set`. + + Returns the requested campaign shared set in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_shared_set_service_stub'].GetCampaignSharedSet + + @property + def mutate_campaign_shared_sets(self): + """Return the gRPC stub for :meth:`CampaignSharedSetServiceClient.mutate_campaign_shared_sets`. + + Creates or removes campaign shared sets. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_shared_set_service_stub'].MutateCampaignSharedSets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/carrier_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/carrier_constant_service_grpc_transport.py new file mode 100644 index 000000000..3f0c54012 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/carrier_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import carrier_constant_service_pb2_grpc + + +class CarrierConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CarrierConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'carrier_constant_service_stub': carrier_constant_service_pb2_grpc.CarrierConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_carrier_constant(self): + """Return the gRPC stub for :meth:`CarrierConstantServiceClient.get_carrier_constant`. + + Returns the requested carrier constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['carrier_constant_service_stub'].GetCarrierConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/change_status_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/change_status_service_grpc_transport.py new file mode 100644 index 000000000..6716f0ce0 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/change_status_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import change_status_service_pb2_grpc + + +class ChangeStatusServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ChangeStatusService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'change_status_service_stub': change_status_service_pb2_grpc.ChangeStatusServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_change_status(self): + """Return the gRPC stub for :meth:`ChangeStatusServiceClient.get_change_status`. + + Returns the requested change status in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['change_status_service_stub'].GetChangeStatus \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/click_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/click_view_service_grpc_transport.py new file mode 100644 index 000000000..deac85a5d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/click_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import click_view_service_pb2_grpc + + +class ClickViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ClickViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'click_view_service_stub': click_view_service_pb2_grpc.ClickViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_click_view(self): + """Return the gRPC stub for :meth:`ClickViewServiceClient.get_click_view`. + + Returns the requested click view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['click_view_service_stub'].GetClickView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/conversion_action_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/conversion_action_service_grpc_transport.py new file mode 100644 index 000000000..190af11de --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/conversion_action_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import conversion_action_service_pb2_grpc + + +class ConversionActionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ConversionActionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'conversion_action_service_stub': conversion_action_service_pb2_grpc.ConversionActionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_conversion_action(self): + """Return the gRPC stub for :meth:`ConversionActionServiceClient.get_conversion_action`. + + Returns the requested conversion action. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['conversion_action_service_stub'].GetConversionAction + + @property + def mutate_conversion_actions(self): + """Return the gRPC stub for :meth:`ConversionActionServiceClient.mutate_conversion_actions`. + + Creates, updates or removes conversion actions. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['conversion_action_service_stub'].MutateConversionActions \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/conversion_adjustment_upload_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/conversion_adjustment_upload_service_grpc_transport.py new file mode 100644 index 000000000..9e6e54e92 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/conversion_adjustment_upload_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import conversion_adjustment_upload_service_pb2_grpc + + +class ConversionAdjustmentUploadServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ConversionAdjustmentUploadService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'conversion_adjustment_upload_service_stub': conversion_adjustment_upload_service_pb2_grpc.ConversionAdjustmentUploadServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def upload_conversion_adjustments(self): + """Return the gRPC stub for :meth:`ConversionAdjustmentUploadServiceClient.upload_conversion_adjustments`. + + Processes the given conversion adjustments. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['conversion_adjustment_upload_service_stub'].UploadConversionAdjustments \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/conversion_upload_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/conversion_upload_service_grpc_transport.py new file mode 100644 index 000000000..90d1d3209 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/conversion_upload_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import conversion_upload_service_pb2_grpc + + +class ConversionUploadServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ConversionUploadService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'conversion_upload_service_stub': conversion_upload_service_pb2_grpc.ConversionUploadServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def upload_click_conversions(self): + """Return the gRPC stub for :meth:`ConversionUploadServiceClient.upload_click_conversions`. + + Processes the given click conversions. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['conversion_upload_service_stub'].UploadClickConversions + + @property + def upload_call_conversions(self): + """Return the gRPC stub for :meth:`ConversionUploadServiceClient.upload_call_conversions`. + + Processes the given call conversions. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['conversion_upload_service_stub'].UploadCallConversions \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/currency_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/currency_constant_service_grpc_transport.py new file mode 100644 index 000000000..5b3139784 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/currency_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import currency_constant_service_pb2_grpc + + +class CurrencyConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CurrencyConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'currency_constant_service_stub': currency_constant_service_pb2_grpc.CurrencyConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_currency_constant(self): + """Return the gRPC stub for :meth:`CurrencyConstantServiceClient.get_currency_constant`. + + Returns the requested currency constant. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['currency_constant_service_stub'].GetCurrencyConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/custom_interest_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/custom_interest_service_grpc_transport.py new file mode 100644 index 000000000..cde595729 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/custom_interest_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import custom_interest_service_pb2_grpc + + +class CustomInterestServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomInterestService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'custom_interest_service_stub': custom_interest_service_pb2_grpc.CustomInterestServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_custom_interest(self): + """Return the gRPC stub for :meth:`CustomInterestServiceClient.get_custom_interest`. + + Returns the requested custom interest in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['custom_interest_service_stub'].GetCustomInterest + + @property + def mutate_custom_interests(self): + """Return the gRPC stub for :meth:`CustomInterestServiceClient.mutate_custom_interests`. + + Creates or updates custom interests. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['custom_interest_service_stub'].MutateCustomInterests \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_client_link_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_client_link_service_grpc_transport.py new file mode 100644 index 000000000..01a8213bc --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_client_link_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_client_link_service_pb2_grpc + + +class CustomerClientLinkServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerClientLinkService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_client_link_service_stub': customer_client_link_service_pb2_grpc.CustomerClientLinkServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_client_link(self): + """Return the gRPC stub for :meth:`CustomerClientLinkServiceClient.get_customer_client_link`. + + Returns the requested CustomerClientLink in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_client_link_service_stub'].GetCustomerClientLink + + @property + def mutate_customer_client_link(self): + """Return the gRPC stub for :meth:`CustomerClientLinkServiceClient.mutate_customer_client_link`. + + Creates or updates a customer client link. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_client_link_service_stub'].MutateCustomerClientLink \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_client_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_client_service_grpc_transport.py new file mode 100644 index 000000000..e6f055418 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_client_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_client_service_pb2_grpc + + +class CustomerClientServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerClientService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_client_service_stub': customer_client_service_pb2_grpc.CustomerClientServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_client(self): + """Return the gRPC stub for :meth:`CustomerClientServiceClient.get_customer_client`. + + Returns the requested client in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_client_service_stub'].GetCustomerClient \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_extension_setting_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_extension_setting_service_grpc_transport.py new file mode 100644 index 000000000..4c56a3a6e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_extension_setting_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_extension_setting_service_pb2_grpc + + +class CustomerExtensionSettingServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerExtensionSettingService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_extension_setting_service_stub': customer_extension_setting_service_pb2_grpc.CustomerExtensionSettingServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_extension_setting(self): + """Return the gRPC stub for :meth:`CustomerExtensionSettingServiceClient.get_customer_extension_setting`. + + Returns the requested customer extension setting in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_extension_setting_service_stub'].GetCustomerExtensionSetting + + @property + def mutate_customer_extension_settings(self): + """Return the gRPC stub for :meth:`CustomerExtensionSettingServiceClient.mutate_customer_extension_settings`. + + Creates, updates, or removes customer extension settings. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_extension_setting_service_stub'].MutateCustomerExtensionSettings \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_feed_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_feed_service_grpc_transport.py new file mode 100644 index 000000000..1990dfa2e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_feed_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_feed_service_pb2_grpc + + +class CustomerFeedServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerFeedService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_feed_service_stub': customer_feed_service_pb2_grpc.CustomerFeedServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_feed(self): + """Return the gRPC stub for :meth:`CustomerFeedServiceClient.get_customer_feed`. + + Returns the requested customer feed in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_feed_service_stub'].GetCustomerFeed + + @property + def mutate_customer_feeds(self): + """Return the gRPC stub for :meth:`CustomerFeedServiceClient.mutate_customer_feeds`. + + Creates, updates, or removes customer feeds. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_feed_service_stub'].MutateCustomerFeeds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_label_service_grpc_transport.py new file mode 100644 index 000000000..7fe56c114 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_label_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_label_service_pb2_grpc + + +class CustomerLabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerLabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_label_service_stub': customer_label_service_pb2_grpc.CustomerLabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_label(self): + """Return the gRPC stub for :meth:`CustomerLabelServiceClient.get_customer_label`. + + Returns the requested customer-label relationship in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_label_service_stub'].GetCustomerLabel + + @property + def mutate_customer_labels(self): + """Return the gRPC stub for :meth:`CustomerLabelServiceClient.mutate_customer_labels`. + + Creates and removes customer-label relationships. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_label_service_stub'].MutateCustomerLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_manager_link_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_manager_link_service_grpc_transport.py new file mode 100644 index 000000000..f17ac5da0 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_manager_link_service_grpc_transport.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_manager_link_service_pb2_grpc + + +class CustomerManagerLinkServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerManagerLinkService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_manager_link_service_stub': customer_manager_link_service_pb2_grpc.CustomerManagerLinkServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_manager_link(self): + """Return the gRPC stub for :meth:`CustomerManagerLinkServiceClient.get_customer_manager_link`. + + Returns the requested CustomerManagerLink in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_manager_link_service_stub'].GetCustomerManagerLink + + @property + def mutate_customer_manager_link(self): + """Return the gRPC stub for :meth:`CustomerManagerLinkServiceClient.mutate_customer_manager_link`. + + Creates or updates customer manager links. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_manager_link_service_stub'].MutateCustomerManagerLink + + @property + def move_manager_link(self): + """Return the gRPC stub for :meth:`CustomerManagerLinkServiceClient.move_manager_link`. + + Moves a client customer to a new manager customer. + This simplifies the complex request that requires two operations to move + a client customer to a new manager. i.e: + 1. Update operation with Status INACTIVE (previous manager) and, + 2. Update operation with Status ACTIVE (new manager). + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_manager_link_service_stub'].MoveManagerLink \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_negative_criterion_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_negative_criterion_service_grpc_transport.py new file mode 100644 index 000000000..8b2fc0c2b --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_negative_criterion_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_negative_criterion_service_pb2_grpc + + +class CustomerNegativeCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerNegativeCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_negative_criterion_service_stub': customer_negative_criterion_service_pb2_grpc.CustomerNegativeCriterionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer_negative_criterion(self): + """Return the gRPC stub for :meth:`CustomerNegativeCriterionServiceClient.get_customer_negative_criterion`. + + Returns the requested criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_negative_criterion_service_stub'].GetCustomerNegativeCriterion + + @property + def mutate_customer_negative_criteria(self): + """Return the gRPC stub for :meth:`CustomerNegativeCriterionServiceClient.mutate_customer_negative_criteria`. + + Creates or removes criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_negative_criterion_service_stub'].MutateCustomerNegativeCriteria \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/customer_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/customer_service_grpc_transport.py new file mode 100644 index 000000000..f12fc341b --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/customer_service_grpc_transport.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import customer_service_pb2_grpc + + +class CustomerServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services CustomerService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_service_stub': customer_service_pb2_grpc.CustomerServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_customer(self): + """Return the gRPC stub for :meth:`CustomerServiceClient.get_customer`. + + Returns the requested customer in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_service_stub'].GetCustomer + + @property + def mutate_customer(self): + """Return the gRPC stub for :meth:`CustomerServiceClient.mutate_customer`. + + Updates a customer. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_service_stub'].MutateCustomer + + @property + def list_accessible_customers(self): + """Return the gRPC stub for :meth:`CustomerServiceClient.list_accessible_customers`. + + Returns resource names of customers directly accessible by the + user authenticating the call. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_service_stub'].ListAccessibleCustomers + + @property + def create_customer_client(self): + """Return the gRPC stub for :meth:`CustomerServiceClient.create_customer_client`. + + Creates a new client under manager. The new client customer is returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_service_stub'].CreateCustomerClient \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/detail_placement_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/detail_placement_view_service_grpc_transport.py new file mode 100644 index 000000000..0f56fd413 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/detail_placement_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import detail_placement_view_service_pb2_grpc + + +class DetailPlacementViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services DetailPlacementViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'detail_placement_view_service_stub': detail_placement_view_service_pb2_grpc.DetailPlacementViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_detail_placement_view(self): + """Return the gRPC stub for :meth:`DetailPlacementViewServiceClient.get_detail_placement_view`. + + Returns the requested Detail Placement view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['detail_placement_view_service_stub'].GetDetailPlacementView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/display_keyword_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/display_keyword_view_service_grpc_transport.py new file mode 100644 index 000000000..4c0d21fa2 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/display_keyword_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import display_keyword_view_service_pb2_grpc + + +class DisplayKeywordViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services DisplayKeywordViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'display_keyword_view_service_stub': display_keyword_view_service_pb2_grpc.DisplayKeywordViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_display_keyword_view(self): + """Return the gRPC stub for :meth:`DisplayKeywordViewServiceClient.get_display_keyword_view`. + + Returns the requested display keyword view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['display_keyword_view_service_stub'].GetDisplayKeywordView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/distance_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/distance_view_service_grpc_transport.py new file mode 100644 index 000000000..69fc3f6ce --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/distance_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import distance_view_service_pb2_grpc + + +class DistanceViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services DistanceViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'distance_view_service_stub': distance_view_service_pb2_grpc.DistanceViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_distance_view(self): + """Return the gRPC stub for :meth:`DistanceViewServiceClient.get_distance_view`. + + Returns the attributes of the requested distance view. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['distance_view_service_stub'].GetDistanceView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/domain_category_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/domain_category_service_grpc_transport.py new file mode 100644 index 000000000..eb113022e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/domain_category_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import domain_category_service_pb2_grpc + + +class DomainCategoryServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services DomainCategoryService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'domain_category_service_stub': domain_category_service_pb2_grpc.DomainCategoryServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_domain_category(self): + """Return the gRPC stub for :meth:`DomainCategoryServiceClient.get_domain_category`. + + Returns the requested domain category. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['domain_category_service_stub'].GetDomainCategory \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/dynamic_search_ads_search_term_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/dynamic_search_ads_search_term_view_service_grpc_transport.py new file mode 100644 index 000000000..aba319749 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/dynamic_search_ads_search_term_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import dynamic_search_ads_search_term_view_service_pb2_grpc + + +class DynamicSearchAdsSearchTermViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services DynamicSearchAdsSearchTermViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'dynamic_search_ads_search_term_view_service_stub': dynamic_search_ads_search_term_view_service_pb2_grpc.DynamicSearchAdsSearchTermViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_dynamic_search_ads_search_term_view(self): + """Return the gRPC stub for :meth:`DynamicSearchAdsSearchTermViewServiceClient.get_dynamic_search_ads_search_term_view`. + + Returns the requested dynamic search ads search term view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['dynamic_search_ads_search_term_view_service_stub'].GetDynamicSearchAdsSearchTermView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/expanded_landing_page_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/expanded_landing_page_view_service_grpc_transport.py new file mode 100644 index 000000000..0f8526409 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/expanded_landing_page_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import expanded_landing_page_view_service_pb2_grpc + + +class ExpandedLandingPageViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ExpandedLandingPageViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'expanded_landing_page_view_service_stub': expanded_landing_page_view_service_pb2_grpc.ExpandedLandingPageViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_expanded_landing_page_view(self): + """Return the gRPC stub for :meth:`ExpandedLandingPageViewServiceClient.get_expanded_landing_page_view`. + + Returns the requested expanded landing page view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['expanded_landing_page_view_service_stub'].GetExpandedLandingPageView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/extension_feed_item_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/extension_feed_item_service_grpc_transport.py new file mode 100644 index 000000000..bd4e9ce84 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/extension_feed_item_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import extension_feed_item_service_pb2_grpc + + +class ExtensionFeedItemServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ExtensionFeedItemService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'extension_feed_item_service_stub': extension_feed_item_service_pb2_grpc.ExtensionFeedItemServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_extension_feed_item(self): + """Return the gRPC stub for :meth:`ExtensionFeedItemServiceClient.get_extension_feed_item`. + + Returns the requested extension feed item in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['extension_feed_item_service_stub'].GetExtensionFeedItem + + @property + def mutate_extension_feed_items(self): + """Return the gRPC stub for :meth:`ExtensionFeedItemServiceClient.mutate_extension_feed_items`. + + Creates, updates, or removes extension feed items. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['extension_feed_item_service_stub'].MutateExtensionFeedItems \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/feed_item_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/feed_item_service_grpc_transport.py new file mode 100644 index 000000000..14ba4ba85 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/feed_item_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import feed_item_service_pb2_grpc + + +class FeedItemServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services FeedItemService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'feed_item_service_stub': feed_item_service_pb2_grpc.FeedItemServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_feed_item(self): + """Return the gRPC stub for :meth:`FeedItemServiceClient.get_feed_item`. + + Returns the requested feed item in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_item_service_stub'].GetFeedItem + + @property + def mutate_feed_items(self): + """Return the gRPC stub for :meth:`FeedItemServiceClient.mutate_feed_items`. + + Creates, updates, or removes feed items. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_item_service_stub'].MutateFeedItems \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/feed_item_target_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/feed_item_target_service_grpc_transport.py new file mode 100644 index 000000000..81e8ce03d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/feed_item_target_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import feed_item_target_service_pb2_grpc + + +class FeedItemTargetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services FeedItemTargetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'feed_item_target_service_stub': feed_item_target_service_pb2_grpc.FeedItemTargetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_feed_item_target(self): + """Return the gRPC stub for :meth:`FeedItemTargetServiceClient.get_feed_item_target`. + + Returns the requested feed item targets in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_item_target_service_stub'].GetFeedItemTarget + + @property + def mutate_feed_item_targets(self): + """Return the gRPC stub for :meth:`FeedItemTargetServiceClient.mutate_feed_item_targets`. + + Creates or removes feed item targets. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_item_target_service_stub'].MutateFeedItemTargets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/feed_mapping_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/feed_mapping_service_grpc_transport.py new file mode 100644 index 000000000..7825c8dff --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/feed_mapping_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import feed_mapping_service_pb2_grpc + + +class FeedMappingServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services FeedMappingService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'feed_mapping_service_stub': feed_mapping_service_pb2_grpc.FeedMappingServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_feed_mapping(self): + """Return the gRPC stub for :meth:`FeedMappingServiceClient.get_feed_mapping`. + + Returns the requested feed mapping in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_mapping_service_stub'].GetFeedMapping + + @property + def mutate_feed_mappings(self): + """Return the gRPC stub for :meth:`FeedMappingServiceClient.mutate_feed_mappings`. + + Creates or removes feed mappings. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_mapping_service_stub'].MutateFeedMappings \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/feed_placeholder_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/feed_placeholder_view_service_grpc_transport.py new file mode 100644 index 000000000..9df0c03b6 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/feed_placeholder_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import feed_placeholder_view_service_pb2_grpc + + +class FeedPlaceholderViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services FeedPlaceholderViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'feed_placeholder_view_service_stub': feed_placeholder_view_service_pb2_grpc.FeedPlaceholderViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_feed_placeholder_view(self): + """Return the gRPC stub for :meth:`FeedPlaceholderViewServiceClient.get_feed_placeholder_view`. + + Returns the requested feed placeholder view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_placeholder_view_service_stub'].GetFeedPlaceholderView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/feed_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/feed_service_grpc_transport.py new file mode 100644 index 000000000..ae2cacc00 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/feed_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import feed_service_pb2_grpc + + +class FeedServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services FeedService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'feed_service_stub': feed_service_pb2_grpc.FeedServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_feed(self): + """Return the gRPC stub for :meth:`FeedServiceClient.get_feed`. + + Returns the requested feed in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_service_stub'].GetFeed + + @property + def mutate_feeds(self): + """Return the gRPC stub for :meth:`FeedServiceClient.mutate_feeds`. + + Creates, updates, or removes feeds. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['feed_service_stub'].MutateFeeds \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/gender_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/gender_view_service_grpc_transport.py new file mode 100644 index 000000000..cbc3c74ba --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/gender_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import gender_view_service_pb2_grpc + + +class GenderViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GenderViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'gender_view_service_stub': gender_view_service_pb2_grpc.GenderViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_gender_view(self): + """Return the gRPC stub for :meth:`GenderViewServiceClient.get_gender_view`. + + Returns the requested gender view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['gender_view_service_stub'].GetGenderView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/geo_target_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/geo_target_constant_service_grpc_transport.py new file mode 100644 index 000000000..4710de753 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/geo_target_constant_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import geo_target_constant_service_pb2_grpc + + +class GeoTargetConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GeoTargetConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'geo_target_constant_service_stub': geo_target_constant_service_pb2_grpc.GeoTargetConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_geo_target_constant(self): + """Return the gRPC stub for :meth:`GeoTargetConstantServiceClient.get_geo_target_constant`. + + Returns the requested geo target constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['geo_target_constant_service_stub'].GetGeoTargetConstant + + @property + def suggest_geo_target_constants(self): + """Return the gRPC stub for :meth:`GeoTargetConstantServiceClient.suggest_geo_target_constants`. + + Returns GeoTargetConstant suggestions by location name or by resource name. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['geo_target_constant_service_stub'].SuggestGeoTargetConstants \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/geographic_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/geographic_view_service_grpc_transport.py new file mode 100644 index 000000000..87029a5a8 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/geographic_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import geographic_view_service_pb2_grpc + + +class GeographicViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GeographicViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'geographic_view_service_stub': geographic_view_service_pb2_grpc.GeographicViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_geographic_view(self): + """Return the gRPC stub for :meth:`GeographicViewServiceClient.get_geographic_view`. + + Returns the requested geographic view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['geographic_view_service_stub'].GetGeographicView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/google_ads_field_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/google_ads_field_service_grpc_transport.py new file mode 100644 index 000000000..434b1bf23 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/google_ads_field_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import google_ads_field_service_pb2_grpc + + +class GoogleAdsFieldServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GoogleAdsFieldService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'google_ads_field_service_stub': google_ads_field_service_pb2_grpc.GoogleAdsFieldServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_google_ads_field(self): + """Return the gRPC stub for :meth:`GoogleAdsFieldServiceClient.get_google_ads_field`. + + Returns just the requested field. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_field_service_stub'].GetGoogleAdsField + + @property + def search_google_ads_fields(self): + """Return the gRPC stub for :meth:`GoogleAdsFieldServiceClient.search_google_ads_fields`. + + Returns all fields that match the search query. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_field_service_stub'].SearchGoogleAdsFields \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/google_ads_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/google_ads_service_grpc_transport.py new file mode 100644 index 000000000..38174decd --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/google_ads_service_grpc_transport.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import google_ads_service_pb2_grpc + + +class GoogleAdsServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GoogleAdsService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'google_ads_service_stub': google_ads_service_pb2_grpc.GoogleAdsServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def search(self): + """Return the gRPC stub for :meth:`GoogleAdsServiceClient.search`. + + Returns all rows that match the search query. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_service_stub'].Search + + @property + def search_stream(self): + """Return the gRPC stub for :meth:`GoogleAdsServiceClient.search_stream`. + + Returns all rows that match the search stream query. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_service_stub'].SearchStream + + @property + def mutate(self): + """Return the gRPC stub for :meth:`GoogleAdsServiceClient.mutate`. + + Creates, updates, or removes resources. This method supports atomic + transactions with multiple types of resources. For example, you can + atomically create a campaign and a campaign budget, or perform up to + thousands of mutates atomically. + + This method is essentially a wrapper around a series of mutate methods. + The only features it offers over calling those methods directly are: + + - Atomic transactions + - Temp resource names (described below) + - Somewhat reduced latency over making a series of mutate calls + + Note: Only resources that support atomic transactions are included, so + this method can't replace all calls to individual services. + + ## Atomic Transaction Benefits + + Atomicity makes error handling much easier. If you're making a series of + changes and one fails, it can leave your account in an inconsistent + state. With atomicity, you either reach the desired state directly, or + the request fails and you can retry. + + ## Temp Resource Names + + Temp resource names are a special type of resource name used to create a + resource and reference that resource in the same request. For example, + if a campaign budget is created with ``resource_name`` equal to + ``customers/123/campaignBudgets/-1``, that resource name can be reused + in the ``Campaign.budget`` field in the same request. That way, the two + resources are created and linked atomically. + + To create a temp resource name, put a negative number in the part of the + name that the server would normally allocate. + + Note: + + - Resources must be created with a temp name before the name can be + reused. For example, the previous CampaignBudget+Campaign example + would fail if the mutate order was reversed. + - Temp names are not remembered across requests. + - There's no limit to the number of temp names in a request. + - Each temp name must use a unique negative number, even if the + resource types differ. + + ## Latency + + It's important to group mutates by resource type or the request may time + out and fail. Latency is roughly equal to a series of calls to + individual mutate methods, where each change in resource type is a new + call. For example, mutating 10 campaigns then 10 ad groups is like 2 + calls, while mutating 1 campaign, 1 ad group, 1 campaign, 1 ad group is + like 4 calls. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_service_stub'].Mutate \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/group_placement_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/group_placement_view_service_grpc_transport.py new file mode 100644 index 000000000..733677314 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/group_placement_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import group_placement_view_service_pb2_grpc + + +class GroupPlacementViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services GroupPlacementViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'group_placement_view_service_stub': group_placement_view_service_pb2_grpc.GroupPlacementViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_group_placement_view(self): + """Return the gRPC stub for :meth:`GroupPlacementViewServiceClient.get_group_placement_view`. + + Returns the requested Group Placement view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['group_placement_view_service_stub'].GetGroupPlacementView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/hotel_group_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/hotel_group_view_service_grpc_transport.py new file mode 100644 index 000000000..a6b6dcaf4 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/hotel_group_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import hotel_group_view_service_pb2_grpc + + +class HotelGroupViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services HotelGroupViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'hotel_group_view_service_stub': hotel_group_view_service_pb2_grpc.HotelGroupViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_hotel_group_view(self): + """Return the gRPC stub for :meth:`HotelGroupViewServiceClient.get_hotel_group_view`. + + Returns the requested Hotel Group View in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['hotel_group_view_service_stub'].GetHotelGroupView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/hotel_performance_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/hotel_performance_view_service_grpc_transport.py new file mode 100644 index 000000000..08cc7ac9c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/hotel_performance_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import hotel_performance_view_service_pb2_grpc + + +class HotelPerformanceViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services HotelPerformanceViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'hotel_performance_view_service_stub': hotel_performance_view_service_pb2_grpc.HotelPerformanceViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_hotel_performance_view(self): + """Return the gRPC stub for :meth:`HotelPerformanceViewServiceClient.get_hotel_performance_view`. + + Returns the requested Hotel Performance View in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['hotel_performance_view_service_stub'].GetHotelPerformanceView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/income_range_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/income_range_view_service_grpc_transport.py new file mode 100644 index 000000000..84f7ab1fb --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/income_range_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import income_range_view_service_pb2_grpc + + +class IncomeRangeViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services IncomeRangeViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'income_range_view_service_stub': income_range_view_service_pb2_grpc.IncomeRangeViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_income_range_view(self): + """Return the gRPC stub for :meth:`IncomeRangeViewServiceClient.get_income_range_view`. + + Returns the requested income range view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['income_range_view_service_stub'].GetIncomeRangeView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/invoice_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/invoice_service_grpc_transport.py new file mode 100644 index 000000000..dc2ed522c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/invoice_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import invoice_service_pb2_grpc + + +class InvoiceServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services InvoiceService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'invoice_service_stub': invoice_service_pb2_grpc.InvoiceServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def list_invoices(self): + """Return the gRPC stub for :meth:`InvoiceServiceClient.list_invoices`. + + Returns all invoices associated with a billing setup, for a given month. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['invoice_service_stub'].ListInvoices \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_keyword_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_keyword_service_grpc_transport.py new file mode 100644 index 000000000..3ced279f0 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_keyword_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_keyword_service_pb2_grpc + + +class KeywordPlanAdGroupKeywordServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanAdGroupKeywordService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_ad_group_keyword_service_stub': keyword_plan_ad_group_keyword_service_pb2_grpc.KeywordPlanAdGroupKeywordServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_plan_ad_group_keyword(self): + """Return the gRPC stub for :meth:`KeywordPlanAdGroupKeywordServiceClient.get_keyword_plan_ad_group_keyword`. + + Returns the requested Keyword Plan ad group keyword in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_ad_group_keyword_service_stub'].GetKeywordPlanAdGroupKeyword + + @property + def mutate_keyword_plan_ad_group_keywords(self): + """Return the gRPC stub for :meth:`KeywordPlanAdGroupKeywordServiceClient.mutate_keyword_plan_ad_group_keywords`. + + Creates, updates, or removes Keyword Plan ad group keywords. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_ad_group_keyword_service_stub'].MutateKeywordPlanAdGroupKeywords \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_service_grpc_transport.py new file mode 100644 index 000000000..228010441 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_ad_group_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_ad_group_service_pb2_grpc + + +class KeywordPlanAdGroupServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanAdGroupService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_ad_group_service_stub': keyword_plan_ad_group_service_pb2_grpc.KeywordPlanAdGroupServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_plan_ad_group(self): + """Return the gRPC stub for :meth:`KeywordPlanAdGroupServiceClient.get_keyword_plan_ad_group`. + + Returns the requested Keyword Plan ad group in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_ad_group_service_stub'].GetKeywordPlanAdGroup + + @property + def mutate_keyword_plan_ad_groups(self): + """Return the gRPC stub for :meth:`KeywordPlanAdGroupServiceClient.mutate_keyword_plan_ad_groups`. + + Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_ad_group_service_stub'].MutateKeywordPlanAdGroups \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_keyword_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_keyword_service_grpc_transport.py new file mode 100644 index 000000000..00e97078c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_keyword_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_keyword_service_pb2_grpc + + +class KeywordPlanCampaignKeywordServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanCampaignKeywordService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_campaign_keyword_service_stub': keyword_plan_campaign_keyword_service_pb2_grpc.KeywordPlanCampaignKeywordServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_plan_campaign_keyword(self): + """Return the gRPC stub for :meth:`KeywordPlanCampaignKeywordServiceClient.get_keyword_plan_campaign_keyword`. + + Returns the requested plan in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_campaign_keyword_service_stub'].GetKeywordPlanCampaignKeyword + + @property + def mutate_keyword_plan_campaign_keywords(self): + """Return the gRPC stub for :meth:`KeywordPlanCampaignKeywordServiceClient.mutate_keyword_plan_campaign_keywords`. + + Creates, updates, or removes Keyword Plan campaign keywords. Operation + statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_campaign_keyword_service_stub'].MutateKeywordPlanCampaignKeywords \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_service_grpc_transport.py new file mode 100644 index 000000000..a1ab78b11 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_campaign_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_campaign_service_pb2_grpc + + +class KeywordPlanCampaignServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanCampaignService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_campaign_service_stub': keyword_plan_campaign_service_pb2_grpc.KeywordPlanCampaignServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_plan_campaign(self): + """Return the gRPC stub for :meth:`KeywordPlanCampaignServiceClient.get_keyword_plan_campaign`. + + Returns the requested Keyword Plan campaign in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_campaign_service_stub'].GetKeywordPlanCampaign + + @property + def mutate_keyword_plan_campaigns(self): + """Return the gRPC stub for :meth:`KeywordPlanCampaignServiceClient.mutate_keyword_plan_campaigns`. + + Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_campaign_service_stub'].MutateKeywordPlanCampaigns \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_idea_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_idea_service_grpc_transport.py new file mode 100644 index 000000000..5c587ab7f --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_idea_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_idea_service_pb2_grpc + + +class KeywordPlanIdeaServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanIdeaService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_idea_service_stub': keyword_plan_idea_service_pb2_grpc.KeywordPlanIdeaServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def generate_keyword_ideas(self): + """Return the gRPC stub for :meth:`KeywordPlanIdeaServiceClient.generate_keyword_ideas`. + + Returns a list of keyword ideas. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_idea_service_stub'].GenerateKeywordIdeas \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_plan_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_plan_service_grpc_transport.py new file mode 100644 index 000000000..795c1ff74 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_plan_service_grpc_transport.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_plan_service_pb2_grpc + + +class KeywordPlanServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordPlanService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_plan_service_stub': keyword_plan_service_pb2_grpc.KeywordPlanServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_plan(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.get_keyword_plan`. + + Returns the requested plan in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].GetKeywordPlan + + @property + def mutate_keyword_plans(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.mutate_keyword_plans`. + + Creates, updates, or removes keyword plans. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].MutateKeywordPlans + + @property + def generate_forecast_curve(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.generate_forecast_curve`. + + Returns the requested Keyword Plan forecast curve. + Only the bidding strategy is considered for generating forecast curve. + The bidding strategy value specified in the plan is ignored. + + To generate a forecast at a value specified in the plan, use + KeywordPlanService.GenerateForecastMetrics. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].GenerateForecastCurve + + @property + def generate_forecast_time_series(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.generate_forecast_time_series`. + + Returns a forecast in the form of a time series for the Keyword Plan over + the next 52 weeks. + (1) Forecasts closer to the current date are generally more accurate than + further out. + + (2) The forecast reflects seasonal trends using current and + prior traffic patterns. The forecast period of the plan is ignored. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].GenerateForecastTimeSeries + + @property + def generate_forecast_metrics(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.generate_forecast_metrics`. + + Returns the requested Keyword Plan forecasts. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].GenerateForecastMetrics + + @property + def generate_historical_metrics(self): + """Return the gRPC stub for :meth:`KeywordPlanServiceClient.generate_historical_metrics`. + + Returns the requested Keyword Plan historical metrics. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_plan_service_stub'].GenerateHistoricalMetrics \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/keyword_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/keyword_view_service_grpc_transport.py new file mode 100644 index 000000000..04ba5d5f1 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/keyword_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import keyword_view_service_pb2_grpc + + +class KeywordViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services KeywordViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_view_service_stub': keyword_view_service_pb2_grpc.KeywordViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_keyword_view(self): + """Return the gRPC stub for :meth:`KeywordViewServiceClient.get_keyword_view`. + + Returns the requested keyword view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_view_service_stub'].GetKeywordView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/label_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/label_service_grpc_transport.py new file mode 100644 index 000000000..f96a96ae6 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/label_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import label_service_pb2_grpc + + +class LabelServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services LabelService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'label_service_stub': label_service_pb2_grpc.LabelServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_label(self): + """Return the gRPC stub for :meth:`LabelServiceClient.get_label`. + + Returns the requested label in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['label_service_stub'].GetLabel + + @property + def mutate_labels(self): + """Return the gRPC stub for :meth:`LabelServiceClient.mutate_labels`. + + Creates, updates, or removes labels. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['label_service_stub'].MutateLabels \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/landing_page_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/landing_page_view_service_grpc_transport.py new file mode 100644 index 000000000..1652c2e3c --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/landing_page_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import landing_page_view_service_pb2_grpc + + +class LandingPageViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services LandingPageViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'landing_page_view_service_stub': landing_page_view_service_pb2_grpc.LandingPageViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_landing_page_view(self): + """Return the gRPC stub for :meth:`LandingPageViewServiceClient.get_landing_page_view`. + + Returns the requested landing page view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['landing_page_view_service_stub'].GetLandingPageView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/language_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/language_constant_service_grpc_transport.py new file mode 100644 index 000000000..364cfdff6 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/language_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import language_constant_service_pb2_grpc + + +class LanguageConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services LanguageConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'language_constant_service_stub': language_constant_service_pb2_grpc.LanguageConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_language_constant(self): + """Return the gRPC stub for :meth:`LanguageConstantServiceClient.get_language_constant`. + + Returns the requested language constant. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['language_constant_service_stub'].GetLanguageConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/location_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/location_view_service_grpc_transport.py new file mode 100644 index 000000000..8ed4fb4c7 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/location_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import location_view_service_pb2_grpc + + +class LocationViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services LocationViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'location_view_service_stub': location_view_service_pb2_grpc.LocationViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_location_view(self): + """Return the gRPC stub for :meth:`LocationViewServiceClient.get_location_view`. + + Returns the requested location view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['location_view_service_stub'].GetLocationView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/managed_placement_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/managed_placement_view_service_grpc_transport.py new file mode 100644 index 000000000..60b39ad52 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/managed_placement_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import managed_placement_view_service_pb2_grpc + + +class ManagedPlacementViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ManagedPlacementViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'managed_placement_view_service_stub': managed_placement_view_service_pb2_grpc.ManagedPlacementViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_managed_placement_view(self): + """Return the gRPC stub for :meth:`ManagedPlacementViewServiceClient.get_managed_placement_view`. + + Returns the requested Managed Placement view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['managed_placement_view_service_stub'].GetManagedPlacementView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/media_file_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/media_file_service_grpc_transport.py new file mode 100644 index 000000000..9944a3d91 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/media_file_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import media_file_service_pb2_grpc + + +class MediaFileServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services MediaFileService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'media_file_service_stub': media_file_service_pb2_grpc.MediaFileServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_media_file(self): + """Return the gRPC stub for :meth:`MediaFileServiceClient.get_media_file`. + + Returns the requested media file in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['media_file_service_stub'].GetMediaFile + + @property + def mutate_media_files(self): + """Return the gRPC stub for :meth:`MediaFileServiceClient.mutate_media_files`. + + Creates media files. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['media_file_service_stub'].MutateMediaFiles \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/merchant_center_link_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/merchant_center_link_service_grpc_transport.py new file mode 100644 index 000000000..72a9b34a4 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/merchant_center_link_service_grpc_transport.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import merchant_center_link_service_pb2_grpc + + +class MerchantCenterLinkServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services MerchantCenterLinkService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'merchant_center_link_service_stub': merchant_center_link_service_pb2_grpc.MerchantCenterLinkServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def list_merchant_center_links(self): + """Return the gRPC stub for :meth:`MerchantCenterLinkServiceClient.list_merchant_center_links`. + + Returns Merchant Center links available for this customer. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['merchant_center_link_service_stub'].ListMerchantCenterLinks + + @property + def get_merchant_center_link(self): + """Return the gRPC stub for :meth:`MerchantCenterLinkServiceClient.get_merchant_center_link`. + + Returns the Merchant Center link in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['merchant_center_link_service_stub'].GetMerchantCenterLink + + @property + def mutate_merchant_center_link(self): + """Return the gRPC stub for :meth:`MerchantCenterLinkServiceClient.mutate_merchant_center_link`. + + Updates status or removes a Merchant Center link. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['merchant_center_link_service_stub'].MutateMerchantCenterLink \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/mobile_app_category_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/mobile_app_category_constant_service_grpc_transport.py new file mode 100644 index 000000000..e522860f3 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/mobile_app_category_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import mobile_app_category_constant_service_pb2_grpc + + +class MobileAppCategoryConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services MobileAppCategoryConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'mobile_app_category_constant_service_stub': mobile_app_category_constant_service_pb2_grpc.MobileAppCategoryConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_mobile_app_category_constant(self): + """Return the gRPC stub for :meth:`MobileAppCategoryConstantServiceClient.get_mobile_app_category_constant`. + + Returns the requested mobile app category constant. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['mobile_app_category_constant_service_stub'].GetMobileAppCategoryConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/mobile_device_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/mobile_device_constant_service_grpc_transport.py new file mode 100644 index 000000000..00c77c2b5 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/mobile_device_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import mobile_device_constant_service_pb2_grpc + + +class MobileDeviceConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services MobileDeviceConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'mobile_device_constant_service_stub': mobile_device_constant_service_pb2_grpc.MobileDeviceConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_mobile_device_constant(self): + """Return the gRPC stub for :meth:`MobileDeviceConstantServiceClient.get_mobile_device_constant`. + + Returns the requested mobile device constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['mobile_device_constant_service_stub'].GetMobileDeviceConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/offline_user_data_job_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/offline_user_data_job_service_grpc_transport.py new file mode 100644 index 000000000..3feda8d3f --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/offline_user_data_job_service_grpc_transport.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers +import google.api_core.operations_v1 + +from google.ads.google_ads.v5.proto.services import offline_user_data_job_service_pb2_grpc + + +class OfflineUserDataJobServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services OfflineUserDataJobService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'offline_user_data_job_service_stub': offline_user_data_job_service_pb2_grpc.OfflineUserDataJobServiceStub(channel), + } + + # Because this API includes a method that returns a + # long-running operation (proto: google.longrunning.Operation), + # instantiate an LRO client. + self._operations_client = google.api_core.operations_v1.OperationsClient(channel) + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def create_offline_user_data_job(self): + """Return the gRPC stub for :meth:`OfflineUserDataJobServiceClient.create_offline_user_data_job`. + + Creates an offline user data job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['offline_user_data_job_service_stub'].CreateOfflineUserDataJob + + @property + def get_offline_user_data_job(self): + """Return the gRPC stub for :meth:`OfflineUserDataJobServiceClient.get_offline_user_data_job`. + + Returns the offline user data job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['offline_user_data_job_service_stub'].GetOfflineUserDataJob + + @property + def add_offline_user_data_job_operations(self): + """Return the gRPC stub for :meth:`OfflineUserDataJobServiceClient.add_offline_user_data_job_operations`. + + Adds operations to the offline user data job. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['offline_user_data_job_service_stub'].AddOfflineUserDataJobOperations + + @property + def run_offline_user_data_job(self): + """Return the gRPC stub for :meth:`OfflineUserDataJobServiceClient.run_offline_user_data_job`. + + Runs the offline user data job. + + When finished, the long running operation will contain the processing + result or failure information, if any. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['offline_user_data_job_service_stub'].RunOfflineUserDataJob \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/operating_system_version_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/operating_system_version_constant_service_grpc_transport.py new file mode 100644 index 000000000..81ac2d949 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/operating_system_version_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import operating_system_version_constant_service_pb2_grpc + + +class OperatingSystemVersionConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services OperatingSystemVersionConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'operating_system_version_constant_service_stub': operating_system_version_constant_service_pb2_grpc.OperatingSystemVersionConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_operating_system_version_constant(self): + """Return the gRPC stub for :meth:`OperatingSystemVersionConstantServiceClient.get_operating_system_version_constant`. + + Returns the requested OS version constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['operating_system_version_constant_service_stub'].GetOperatingSystemVersionConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/paid_organic_search_term_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/paid_organic_search_term_view_service_grpc_transport.py new file mode 100644 index 000000000..ae7a9bdaa --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/paid_organic_search_term_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import paid_organic_search_term_view_service_pb2_grpc + + +class PaidOrganicSearchTermViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services PaidOrganicSearchTermViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'paid_organic_search_term_view_service_stub': paid_organic_search_term_view_service_pb2_grpc.PaidOrganicSearchTermViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_paid_organic_search_term_view(self): + """Return the gRPC stub for :meth:`PaidOrganicSearchTermViewServiceClient.get_paid_organic_search_term_view`. + + Returns the requested paid organic search term view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['paid_organic_search_term_view_service_stub'].GetPaidOrganicSearchTermView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/parental_status_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/parental_status_view_service_grpc_transport.py new file mode 100644 index 000000000..04c8bbce9 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/parental_status_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import parental_status_view_service_pb2_grpc + + +class ParentalStatusViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ParentalStatusViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'parental_status_view_service_stub': parental_status_view_service_pb2_grpc.ParentalStatusViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_parental_status_view(self): + """Return the gRPC stub for :meth:`ParentalStatusViewServiceClient.get_parental_status_view`. + + Returns the requested parental status view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['parental_status_view_service_stub'].GetParentalStatusView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/payments_account_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/payments_account_service_grpc_transport.py new file mode 100644 index 000000000..b0d7bee54 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/payments_account_service_grpc_transport.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import payments_account_service_pb2_grpc + + +class PaymentsAccountServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services PaymentsAccountService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'payments_account_service_stub': payments_account_service_pb2_grpc.PaymentsAccountServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def list_payments_accounts(self): + """Return the gRPC stub for :meth:`PaymentsAccountServiceClient.list_payments_accounts`. + + Returns all payments accounts associated with all managers + between the login customer ID and specified serving customer in the + hierarchy, inclusive. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['payments_account_service_stub'].ListPaymentsAccounts \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/product_bidding_category_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/product_bidding_category_constant_service_grpc_transport.py new file mode 100644 index 000000000..259625db9 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/product_bidding_category_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import product_bidding_category_constant_service_pb2_grpc + + +class ProductBiddingCategoryConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ProductBiddingCategoryConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'product_bidding_category_constant_service_stub': product_bidding_category_constant_service_pb2_grpc.ProductBiddingCategoryConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_product_bidding_category_constant(self): + """Return the gRPC stub for :meth:`ProductBiddingCategoryConstantServiceClient.get_product_bidding_category_constant`. + + Returns the requested Product Bidding Category in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['product_bidding_category_constant_service_stub'].GetProductBiddingCategoryConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/product_group_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/product_group_view_service_grpc_transport.py new file mode 100644 index 000000000..dda200963 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/product_group_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import product_group_view_service_pb2_grpc + + +class ProductGroupViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ProductGroupViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'product_group_view_service_stub': product_group_view_service_pb2_grpc.ProductGroupViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_product_group_view(self): + """Return the gRPC stub for :meth:`ProductGroupViewServiceClient.get_product_group_view`. + + Returns the requested product group view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['product_group_view_service_stub'].GetProductGroupView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/reach_plan_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/reach_plan_service_grpc_transport.py new file mode 100644 index 000000000..5295b62aa --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/reach_plan_service_grpc_transport.py @@ -0,0 +1,169 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import reach_plan_service_pb2_grpc + + +class ReachPlanServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ReachPlanService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'reach_plan_service_stub': reach_plan_service_pb2_grpc.ReachPlanServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def list_plannable_locations(self): + """Return the gRPC stub for :meth:`ReachPlanServiceClient.list_plannable_locations`. + + Returns the list of plannable locations (for example, countries & DMAs). + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['reach_plan_service_stub'].ListPlannableLocations + + @property + def list_plannable_products(self): + """Return the gRPC stub for :meth:`ReachPlanServiceClient.list_plannable_products`. + + Returns the list of per-location plannable YouTube ad formats with allowed + targeting. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['reach_plan_service_stub'].ListPlannableProducts + + @property + def generate_product_mix_ideas(self): + """Return the gRPC stub for :meth:`ReachPlanServiceClient.generate_product_mix_ideas`. + + Generates a product mix ideas given a set of preferences. This method + helps the advertiser to obtain a good mix of ad formats and budget + allocations based on its preferences. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['reach_plan_service_stub'].GenerateProductMixIdeas + + @property + def generate_reach_forecast(self): + """Return the gRPC stub for :meth:`ReachPlanServiceClient.generate_reach_forecast`. + + Generates a reach forecast for a given targeting / product mix. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['reach_plan_service_stub'].GenerateReachForecast \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/recommendation_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/recommendation_service_grpc_transport.py new file mode 100644 index 000000000..9a4b82e6d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/recommendation_service_grpc_transport.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import recommendation_service_pb2_grpc + + +class RecommendationServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services RecommendationService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'recommendation_service_stub': recommendation_service_pb2_grpc.RecommendationServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_recommendation(self): + """Return the gRPC stub for :meth:`RecommendationServiceClient.get_recommendation`. + + Returns the requested recommendation in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['recommendation_service_stub'].GetRecommendation + + @property + def apply_recommendation(self): + """Return the gRPC stub for :meth:`RecommendationServiceClient.apply_recommendation`. + + Applies given recommendations with corresponding apply parameters. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['recommendation_service_stub'].ApplyRecommendation + + @property + def dismiss_recommendation(self): + """Return the gRPC stub for :meth:`RecommendationServiceClient.dismiss_recommendation`. + + Dismisses given recommendations. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['recommendation_service_stub'].DismissRecommendation \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/remarketing_action_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/remarketing_action_service_grpc_transport.py new file mode 100644 index 000000000..4a8d5d5d1 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/remarketing_action_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import remarketing_action_service_pb2_grpc + + +class RemarketingActionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services RemarketingActionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'remarketing_action_service_stub': remarketing_action_service_pb2_grpc.RemarketingActionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_remarketing_action(self): + """Return the gRPC stub for :meth:`RemarketingActionServiceClient.get_remarketing_action`. + + Returns the requested remarketing action in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['remarketing_action_service_stub'].GetRemarketingAction + + @property + def mutate_remarketing_actions(self): + """Return the gRPC stub for :meth:`RemarketingActionServiceClient.mutate_remarketing_actions`. + + Creates or updates remarketing actions. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['remarketing_action_service_stub'].MutateRemarketingActions \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/search_term_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/search_term_view_service_grpc_transport.py new file mode 100644 index 000000000..f44edf5c7 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/search_term_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import search_term_view_service_pb2_grpc + + +class SearchTermViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services SearchTermViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'search_term_view_service_stub': search_term_view_service_pb2_grpc.SearchTermViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_search_term_view(self): + """Return the gRPC stub for :meth:`SearchTermViewServiceClient.get_search_term_view`. + + Returns the attributes of the requested search term view. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['search_term_view_service_stub'].GetSearchTermView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/shared_criterion_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/shared_criterion_service_grpc_transport.py new file mode 100644 index 000000000..e13ba4a6b --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/shared_criterion_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import shared_criterion_service_pb2_grpc + + +class SharedCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services SharedCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'shared_criterion_service_stub': shared_criterion_service_pb2_grpc.SharedCriterionServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_shared_criterion(self): + """Return the gRPC stub for :meth:`SharedCriterionServiceClient.get_shared_criterion`. + + Returns the requested shared criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['shared_criterion_service_stub'].GetSharedCriterion + + @property + def mutate_shared_criteria(self): + """Return the gRPC stub for :meth:`SharedCriterionServiceClient.mutate_shared_criteria`. + + Creates or removes shared criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['shared_criterion_service_stub'].MutateSharedCriteria \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/shared_set_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/shared_set_service_grpc_transport.py new file mode 100644 index 000000000..32fec0b97 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/shared_set_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import shared_set_service_pb2_grpc + + +class SharedSetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services SharedSetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'shared_set_service_stub': shared_set_service_pb2_grpc.SharedSetServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_shared_set(self): + """Return the gRPC stub for :meth:`SharedSetServiceClient.get_shared_set`. + + Returns the requested shared set in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['shared_set_service_stub'].GetSharedSet + + @property + def mutate_shared_sets(self): + """Return the gRPC stub for :meth:`SharedSetServiceClient.mutate_shared_sets`. + + Creates, updates, or removes shared sets. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['shared_set_service_stub'].MutateSharedSets \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/shopping_performance_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/shopping_performance_view_service_grpc_transport.py new file mode 100644 index 000000000..6531a989e --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/shopping_performance_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import shopping_performance_view_service_pb2_grpc + + +class ShoppingPerformanceViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ShoppingPerformanceViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'shopping_performance_view_service_stub': shopping_performance_view_service_pb2_grpc.ShoppingPerformanceViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_shopping_performance_view(self): + """Return the gRPC stub for :meth:`ShoppingPerformanceViewServiceClient.get_shopping_performance_view`. + + Returns the requested Shopping performance view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['shopping_performance_view_service_stub'].GetShoppingPerformanceView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/third_party_app_analytics_link_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/third_party_app_analytics_link_service_grpc_transport.py new file mode 100644 index 000000000..b39eda0fc --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/third_party_app_analytics_link_service_grpc_transport.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import third_party_app_analytics_link_service_pb2_grpc + + +class ThirdPartyAppAnalyticsLinkServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services ThirdPartyAppAnalyticsLinkService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'third_party_app_analytics_link_service_stub': third_party_app_analytics_link_service_pb2_grpc.ThirdPartyAppAnalyticsLinkServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_third_party_app_analytics_link(self): + """Return the gRPC stub for :meth:`ThirdPartyAppAnalyticsLinkServiceClient.get_third_party_app_analytics_link`. + + Returns the third party app analytics link in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['third_party_app_analytics_link_service_stub'].GetThirdPartyAppAnalyticsLink + + @property + def regenerate_shareable_link_id(self): + """Return the gRPC stub for :meth:`ThirdPartyAppAnalyticsLinkServiceClient.regenerate_shareable_link_id`. + + Regenerate ThirdPartyAppAnalyticsLink.shareable\_link\_id that should be + provided to the third party when setting up app analytics. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['third_party_app_analytics_link_service_stub'].RegenerateShareableLinkId \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/topic_constant_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/topic_constant_service_grpc_transport.py new file mode 100644 index 000000000..7faef549b --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/topic_constant_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import topic_constant_service_pb2_grpc + + +class TopicConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services TopicConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'topic_constant_service_stub': topic_constant_service_pb2_grpc.TopicConstantServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_topic_constant(self): + """Return the gRPC stub for :meth:`TopicConstantServiceClient.get_topic_constant`. + + Returns the requested topic constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['topic_constant_service_stub'].GetTopicConstant \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/topic_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/topic_view_service_grpc_transport.py new file mode 100644 index 000000000..4c1e9a55d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/topic_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import topic_view_service_pb2_grpc + + +class TopicViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services TopicViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'topic_view_service_stub': topic_view_service_pb2_grpc.TopicViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_topic_view(self): + """Return the gRPC stub for :meth:`TopicViewServiceClient.get_topic_view`. + + Returns the requested topic view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['topic_view_service_stub'].GetTopicView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/user_data_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/user_data_service_grpc_transport.py new file mode 100644 index 000000000..3d42005ef --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/user_data_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import user_data_service_pb2_grpc + + +class UserDataServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services UserDataService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'user_data_service_stub': user_data_service_pb2_grpc.UserDataServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def upload_user_data(self): + """Return the gRPC stub for :meth:`UserDataServiceClient.upload_user_data`. + + Uploads the given user data. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['user_data_service_stub'].UploadUserData \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/user_interest_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/user_interest_service_grpc_transport.py new file mode 100644 index 000000000..5728ff83f --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/user_interest_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import user_interest_service_pb2_grpc + + +class UserInterestServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services UserInterestService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'user_interest_service_stub': user_interest_service_pb2_grpc.UserInterestServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_user_interest(self): + """Return the gRPC stub for :meth:`UserInterestServiceClient.get_user_interest`. + + Returns the requested user interest in full detail + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['user_interest_service_stub'].GetUserInterest \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/user_list_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/user_list_service_grpc_transport.py new file mode 100644 index 000000000..3f4410dba --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/user_list_service_grpc_transport.py @@ -0,0 +1,140 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import user_list_service_pb2_grpc + + +class UserListServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services UserListService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'user_list_service_stub': user_list_service_pb2_grpc.UserListServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_user_list(self): + """Return the gRPC stub for :meth:`UserListServiceClient.get_user_list`. + + Returns the requested user list. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['user_list_service_stub'].GetUserList + + @property + def mutate_user_lists(self): + """Return the gRPC stub for :meth:`UserListServiceClient.mutate_user_lists`. + + Creates or updates user lists. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['user_list_service_stub'].MutateUserLists \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/user_location_view_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/user_location_view_service_grpc_transport.py new file mode 100644 index 000000000..ac44f0f91 --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/user_location_view_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import user_location_view_service_pb2_grpc + + +class UserLocationViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services UserLocationViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'user_location_view_service_stub': user_location_view_service_pb2_grpc.UserLocationViewServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_user_location_view(self): + """Return the gRPC stub for :meth:`UserLocationViewServiceClient.get_user_location_view`. + + Returns the requested user location view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['user_location_view_service_stub'].GetUserLocationView \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/transports/video_service_grpc_transport.py b/google/ads/google_ads/v5/services/transports/video_service_grpc_transport.py new file mode 100644 index 000000000..dd354420d --- /dev/null +++ b/google/ads/google_ads/v5/services/transports/video_service_grpc_transport.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v5.proto.services import video_service_pb2_grpc + + +class VideoServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v5.services VideoService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = ( + ) + + def __init__(self, channel=None, credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', + ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + options={ + 'grpc.max_send_message_length': -1, + 'grpc.max_receive_message_length': -1, + }.items(), + ) + + self._channel = channel + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'video_service_stub': video_service_pb2_grpc.VideoServiceStub(channel), + } + + + @classmethod + def create_channel( + cls, + address='googleads.googleapis.com:443', + credentials=None, + **kwargs): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + kwargs (dict): Keyword arguments, which are passed to the + channel creation. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + **kwargs + ) + + @property + def channel(self): + """The gRPC channel used by the transport. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return self._channel + + @property + def get_video(self): + """Return the gRPC stub for :meth:`VideoServiceClient.get_video`. + + Returns the requested video in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['video_service_stub'].GetVideo \ No newline at end of file diff --git a/google/ads/google_ads/v5/services/user_data_service_client.py b/google/ads/google_ads/v5/services/user_data_service_client.py new file mode 100644 index 000000000..1e44edbfd --- /dev/null +++ b/google/ads/google_ads/v5/services/user_data_service_client.py @@ -0,0 +1,249 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services UserDataService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.protobuf_helpers + +from google.ads.google_ads.v5.services import user_data_service_client_config +from google.ads.google_ads.v5.services.transports import user_data_service_grpc_transport +from google.ads.google_ads.v5.proto.services import user_data_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class UserDataServiceClient(object): + """ + Service to manage user data uploads. + Accessible only to customers on the allow-list. + """ + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.UserDataService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + UserDataServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.UserDataServiceGrpcTransport, + Callable[[~.Credentials, type], ~.UserDataServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = user_data_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=user_data_service_grpc_transport.UserDataServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = user_data_service_grpc_transport.UserDataServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def upload_user_data( + self, + customer_id, + operations, + customer_match_user_list_metadata=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Uploads the given user data. + + Args: + customer_id (str): Required. The ID of the customer for which to update the user data. + operations (list[Union[dict, ~google.ads.googleads_v5.types.UserDataOperation]]): Required. The list of operations to be done. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.UserDataOperation` + customer_match_user_list_metadata (Union[dict, ~google.ads.googleads_v5.types.CustomerMatchUserListMetadata]): Metadata for data updates to a Customer Match user list. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.CustomerMatchUserListMetadata` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UploadUserDataResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'upload_user_data' not in self._inner_api_calls: + self._inner_api_calls['upload_user_data'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.upload_user_data, + default_retry=self._method_configs['UploadUserData'].retry, + default_timeout=self._method_configs['UploadUserData'].timeout, + client_info=self._client_info, + ) + + # Sanity check: We have some fields which are mutually exclusive; + # raise ValueError if more than one is sent. + google.api_core.protobuf_helpers.check_oneof( + customer_match_user_list_metadata=customer_match_user_list_metadata, + ) + + request = user_data_service_pb2.UploadUserDataRequest( + customer_id=customer_id, + operations=operations, + customer_match_user_list_metadata=customer_match_user_list_metadata, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['upload_user_data'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/user_data_service_client_config.py b/google/ads/google_ads/v5/services/user_data_service_client_config.py new file mode 100644 index 000000000..ec681de44 --- /dev/null +++ b/google/ads/google_ads/v5/services/user_data_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.UserDataService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "UploadUserData": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/user_interest_service_client.py b/google/ads/google_ads/v5/services/user_interest_service_client.py new file mode 100644 index 000000000..fc2310cf4 --- /dev/null +++ b/google/ads/google_ads/v5/services/user_interest_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services UserInterestService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import user_interest_service_client_config +from google.ads.google_ads.v5.services.transports import user_interest_service_grpc_transport +from google.ads.google_ads.v5.proto.services import user_interest_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class UserInterestServiceClient(object): + """Service to fetch Google Ads User Interest.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.UserInterestService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + UserInterestServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def user_interest_path(cls, customer, user_interest): + """Return a fully-qualified user_interest string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/userInterests/{user_interest}', + customer=customer, + user_interest=user_interest, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.UserInterestServiceGrpcTransport, + Callable[[~.Credentials, type], ~.UserInterestServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = user_interest_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=user_interest_service_grpc_transport.UserInterestServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = user_interest_service_grpc_transport.UserInterestServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_user_interest( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested user interest in full detail + + Args: + resource_name (str): Required. Resource name of the UserInterest to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UserInterest` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_user_interest' not in self._inner_api_calls: + self._inner_api_calls['get_user_interest'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_user_interest, + default_retry=self._method_configs['GetUserInterest'].retry, + default_timeout=self._method_configs['GetUserInterest'].timeout, + client_info=self._client_info, + ) + + request = user_interest_service_pb2.GetUserInterestRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_user_interest'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/user_interest_service_client_config.py b/google/ads/google_ads/v5/services/user_interest_service_client_config.py new file mode 100644 index 000000000..bcb5edf3e --- /dev/null +++ b/google/ads/google_ads/v5/services/user_interest_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.UserInterestService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetUserInterest": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/user_list_service_client.py b/google/ads/google_ads/v5/services/user_list_service_client.py new file mode 100644 index 000000000..2cc6aa3fc --- /dev/null +++ b/google/ads/google_ads/v5/services/user_list_service_client.py @@ -0,0 +1,309 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services UserListService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import user_list_service_client_config +from google.ads.google_ads.v5.services.transports import user_list_service_grpc_transport +from google.ads.google_ads.v5.proto.services import user_list_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class UserListServiceClient(object): + """Service to manage user lists.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.UserListService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + UserListServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def user_list_path(cls, customer, user_list): + """Return a fully-qualified user_list string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/userLists/{user_list}', + customer=customer, + user_list=user_list, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.UserListServiceGrpcTransport, + Callable[[~.Credentials, type], ~.UserListServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = user_list_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=user_list_service_grpc_transport.UserListServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = user_list_service_grpc_transport.UserListServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_user_list( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested user list. + + Args: + resource_name (str): Required. The resource name of the user list to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UserList` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_user_list' not in self._inner_api_calls: + self._inner_api_calls['get_user_list'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_user_list, + default_retry=self._method_configs['GetUserList'].retry, + default_timeout=self._method_configs['GetUserList'].timeout, + client_info=self._client_info, + ) + + request = user_list_service_pb2.GetUserListRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_user_list'](request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_user_lists( + self, + customer_id, + operations, + partial_failure=None, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates or updates user lists. Operation statuses are returned. + + Args: + customer_id (str): Required. The ID of the customer whose user lists are being modified. + operations (list[Union[dict, ~google.ads.googleads_v5.types.UserListOperation]]): Required. The list of operations to perform on individual user lists. + + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.ads.googleads_v5.types.UserListOperation` + partial_failure (bool): If true, successful operations will be carried out and invalid + operations will return errors. If false, all operations will be carried + out in one transaction if and only if they are all valid. + Default is false. + validate_only (bool): If true, the request is validated but not executed. Only errors are + returned, not results. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.MutateUserListsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_user_lists' not in self._inner_api_calls: + self._inner_api_calls['mutate_user_lists'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_user_lists, + default_retry=self._method_configs['MutateUserLists'].retry, + default_timeout=self._method_configs['MutateUserLists'].timeout, + client_info=self._client_info, + ) + + request = user_list_service_pb2.MutateUserListsRequest( + customer_id=customer_id, + operations=operations, + partial_failure=partial_failure, + validate_only=validate_only, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('customer_id', customer_id)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['mutate_user_lists'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/user_list_service_client_config.py b/google/ads/google_ads/v5/services/user_list_service_client_config.py new file mode 100644 index 000000000..25ef83d24 --- /dev/null +++ b/google/ads/google_ads/v5/services/user_list_service_client_config.py @@ -0,0 +1,36 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.UserListService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetUserList": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateUserLists": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/user_location_view_service_client.py b/google/ads/google_ads/v5/services/user_location_view_service_client.py new file mode 100644 index 000000000..71d5cdca5 --- /dev/null +++ b/google/ads/google_ads/v5/services/user_location_view_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services UserLocationViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import user_location_view_service_client_config +from google.ads.google_ads.v5.services.transports import user_location_view_service_grpc_transport +from google.ads.google_ads.v5.proto.services import user_location_view_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class UserLocationViewServiceClient(object): + """Service to manage user location views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.UserLocationViewService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + UserLocationViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def user_location_view_path(cls, customer, user_location_view): + """Return a fully-qualified user_location_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/userLocationViews/{user_location_view}', + customer=customer, + user_location_view=user_location_view, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.UserLocationViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.UserLocationViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = user_location_view_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=user_location_view_service_grpc_transport.UserLocationViewServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = user_location_view_service_grpc_transport.UserLocationViewServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_user_location_view( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested user location view in full detail. + + Args: + resource_name (str): Required. The resource name of the user location view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.UserLocationView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_user_location_view' not in self._inner_api_calls: + self._inner_api_calls['get_user_location_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_user_location_view, + default_retry=self._method_configs['GetUserLocationView'].retry, + default_timeout=self._method_configs['GetUserLocationView'].timeout, + client_info=self._client_info, + ) + + request = user_location_view_service_pb2.GetUserLocationViewRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_user_location_view'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/user_location_view_service_client_config.py b/google/ads/google_ads/v5/services/user_location_view_service_client_config.py new file mode 100644 index 000000000..67f858a89 --- /dev/null +++ b/google/ads/google_ads/v5/services/user_location_view_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.UserLocationViewService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetUserLocationView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/services/video_service_client.py b/google/ads/google_ads/v5/services/video_service_client.py new file mode 100644 index 000000000..74ceb5225 --- /dev/null +++ b/google/ads/google_ads/v5/services/video_service_client.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Accesses the google.ads.googleads.v5.services VideoService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.client_options +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.gapic_v1.routing_header +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v5.services import video_service_client_config +from google.ads.google_ads.v5.services.transports import video_service_grpc_transport +from google.ads.google_ads.v5.proto.services import video_service_pb2 + + + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', +).version + + +class VideoServiceClient(object): + """Service to manage videos.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v5.services.VideoService' + + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + VideoServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + + @classmethod + def video_path(cls, customer, video): + """Return a fully-qualified video string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/videos/{video}', + customer=customer, + video=video, + ) + + def __init__(self, transport=None, channel=None, credentials=None, + client_config=None, client_info=None, client_options=None): + """Constructor. + + Args: + transport (Union[~.VideoServiceGrpcTransport, + Callable[[~.Credentials, type], ~.VideoServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + client_options (Union[dict, google.api_core.client_options.ClientOptions]): + Client options used to set user options on the client. API Endpoint + should be set through client_options. + """ + # Raise deprecation warnings for things we want to go away. + if client_config is not None: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning, stacklevel=2) + else: + client_config = video_service_client_config.config + + if channel: + warnings.warn('The `channel` argument is deprecated; use ' + '`transport` instead.', + PendingDeprecationWarning, stacklevel=2) + + api_endpoint = self.SERVICE_ADDRESS + if client_options: + if type(client_options) == dict: + client_options = google.api_core.client_options.from_dict(client_options) + if client_options.api_endpoint: + api_endpoint = client_options.api_endpoint + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=video_service_grpc_transport.VideoServiceGrpcTransport, + address=api_endpoint, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.' + ) + self.transport = transport + else: + self.transport = video_service_grpc_transport.VideoServiceGrpcTransport( + address=api_endpoint, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = google.api_core.gapic_v1.client_info.ClientInfo( + gapic_version=_GAPIC_LIBRARY_VERSION, + ) + else: + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], + ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_video( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested video in full detail. + + Args: + resource_name (str): Required. The resource name of the video to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will + be retried using a default configuration. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.ads.googleads_v5.types.Video` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_video' not in self._inner_api_calls: + self._inner_api_calls['get_video'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_video, + default_retry=self._method_configs['GetVideo'].retry, + default_timeout=self._method_configs['GetVideo'].timeout, + client_info=self._client_info, + ) + + request = video_service_pb2.GetVideoRequest( + resource_name=resource_name, + ) + if metadata is None: + metadata = [] + metadata = list(metadata) + try: + routing_header = [('resource_name', resource_name)] + except AttributeError: + pass + else: + routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(routing_header) + metadata.append(routing_metadata) + + return self._inner_api_calls['get_video'](request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v5/services/video_service_client_config.py b/google/ads/google_ads/v5/services/video_service_client_config.py new file mode 100644 index 000000000..b23c43767 --- /dev/null +++ b/google/ads/google_ads/v5/services/video_service_client_config.py @@ -0,0 +1,31 @@ +config = { + "interfaces": { + "google.ads.googleads.v5.services.VideoService": { + "retry_codes": { + "idempotent": [ + "DEADLINE_EXCEEDED", + "UNAVAILABLE" + ], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 5000, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 3600000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 3600000, + "total_timeout_millis": 3600000 + } + }, + "methods": { + "GetVideo": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v5/types.py b/google/ads/google_ads/v5/types.py new file mode 100644 index 000000000..2921fb0c9 --- /dev/null +++ b/google/ads/google_ads/v5/types.py @@ -0,0 +1,1855 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import importlib +import sys +from itertools import chain + +from google.api_core.protobuf_helpers import get_messages + +from google.ads.google_ads import util + + +if sys.version_info < (3, 7): + raise ImportError('This module requires Python 3.7 or later.') + + +_lazy_name_to_package_map = dict( + ad_asset_pb2='google.ads.google_ads.v5.proto.common', + ad_type_infos_pb2='google.ads.google_ads.v5.proto.common', + asset_types_pb2='google.ads.google_ads.v5.proto.common', + bidding_pb2='google.ads.google_ads.v5.proto.common', + click_location_pb2='google.ads.google_ads.v5.proto.common', + criteria_pb2='google.ads.google_ads.v5.proto.common', + criterion_category_availability_pb2='google.ads.google_ads.v5.proto.common', + custom_parameter_pb2='google.ads.google_ads.v5.proto.common', + dates_pb2='google.ads.google_ads.v5.proto.common', + explorer_auto_optimizer_setting_pb2='google.ads.google_ads.v5.proto.common', + extensions_pb2='google.ads.google_ads.v5.proto.common', + feed_common_pb2='google.ads.google_ads.v5.proto.common', + final_app_url_pb2='google.ads.google_ads.v5.proto.common', + frequency_cap_pb2='google.ads.google_ads.v5.proto.common', + keyword_plan_common_pb2='google.ads.google_ads.v5.proto.common', + matching_function_pb2='google.ads.google_ads.v5.proto.common', + metrics_pb2='google.ads.google_ads.v5.proto.common', + offline_user_data_pb2='google.ads.google_ads.v5.proto.common', + policy_pb2='google.ads.google_ads.v5.proto.common', + real_time_bidding_setting_pb2='google.ads.google_ads.v5.proto.common', + segments_pb2='google.ads.google_ads.v5.proto.common', + simulation_pb2='google.ads.google_ads.v5.proto.common', + tag_snippet_pb2='google.ads.google_ads.v5.proto.common', + targeting_setting_pb2='google.ads.google_ads.v5.proto.common', + text_label_pb2='google.ads.google_ads.v5.proto.common', + url_collection_pb2='google.ads.google_ads.v5.proto.common', + user_lists_pb2='google.ads.google_ads.v5.proto.common', + value_pb2='google.ads.google_ads.v5.proto.common', + access_reason_pb2='google.ads.google_ads.v5.proto.enums', + access_role_pb2='google.ads.google_ads.v5.proto.enums', + account_budget_proposal_status_pb2='google.ads.google_ads.v5.proto.enums', + account_budget_proposal_type_pb2='google.ads.google_ads.v5.proto.enums', + account_budget_status_pb2='google.ads.google_ads.v5.proto.enums', + account_link_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_customizer_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_ad_rotation_mode_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_ad_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_criterion_approval_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_criterion_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_group_type_pb2='google.ads.google_ads.v5.proto.enums', + ad_network_type_pb2='google.ads.google_ads.v5.proto.enums', + ad_serving_optimization_status_pb2='google.ads.google_ads.v5.proto.enums', + ad_strength_pb2='google.ads.google_ads.v5.proto.enums', + ad_type_pb2='google.ads.google_ads.v5.proto.enums', + advertising_channel_sub_type_pb2='google.ads.google_ads.v5.proto.enums', + advertising_channel_type_pb2='google.ads.google_ads.v5.proto.enums', + affiliate_location_feed_relationship_type_pb2='google.ads.google_ads.v5.proto.enums', + affiliate_location_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + age_range_type_pb2='google.ads.google_ads.v5.proto.enums', + app_campaign_app_store_pb2='google.ads.google_ads.v5.proto.enums', + app_campaign_bidding_strategy_goal_type_pb2='google.ads.google_ads.v5.proto.enums', + app_payment_model_type_pb2='google.ads.google_ads.v5.proto.enums', + app_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + app_store_pb2='google.ads.google_ads.v5.proto.enums', + app_url_operating_system_type_pb2='google.ads.google_ads.v5.proto.enums', + asset_field_type_pb2='google.ads.google_ads.v5.proto.enums', + asset_link_status_pb2='google.ads.google_ads.v5.proto.enums', + asset_performance_label_pb2='google.ads.google_ads.v5.proto.enums', + asset_type_pb2='google.ads.google_ads.v5.proto.enums', + attribution_model_pb2='google.ads.google_ads.v5.proto.enums', + batch_job_status_pb2='google.ads.google_ads.v5.proto.enums', + bid_modifier_source_pb2='google.ads.google_ads.v5.proto.enums', + bidding_source_pb2='google.ads.google_ads.v5.proto.enums', + bidding_strategy_status_pb2='google.ads.google_ads.v5.proto.enums', + bidding_strategy_type_pb2='google.ads.google_ads.v5.proto.enums', + billing_setup_status_pb2='google.ads.google_ads.v5.proto.enums', + brand_safety_suitability_pb2='google.ads.google_ads.v5.proto.enums', + budget_campaign_association_status_pb2='google.ads.google_ads.v5.proto.enums', + budget_delivery_method_pb2='google.ads.google_ads.v5.proto.enums', + budget_period_pb2='google.ads.google_ads.v5.proto.enums', + budget_status_pb2='google.ads.google_ads.v5.proto.enums', + budget_type_pb2='google.ads.google_ads.v5.proto.enums', + call_conversion_reporting_state_pb2='google.ads.google_ads.v5.proto.enums', + call_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + callout_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + campaign_criterion_status_pb2='google.ads.google_ads.v5.proto.enums', + campaign_draft_status_pb2='google.ads.google_ads.v5.proto.enums', + campaign_experiment_status_pb2='google.ads.google_ads.v5.proto.enums', + campaign_experiment_traffic_split_type_pb2='google.ads.google_ads.v5.proto.enums', + campaign_experiment_type_pb2='google.ads.google_ads.v5.proto.enums', + campaign_serving_status_pb2='google.ads.google_ads.v5.proto.enums', + campaign_shared_set_status_pb2='google.ads.google_ads.v5.proto.enums', + campaign_status_pb2='google.ads.google_ads.v5.proto.enums', + change_status_operation_pb2='google.ads.google_ads.v5.proto.enums', + change_status_resource_type_pb2='google.ads.google_ads.v5.proto.enums', + click_type_pb2='google.ads.google_ads.v5.proto.enums', + content_label_type_pb2='google.ads.google_ads.v5.proto.enums', + conversion_action_category_pb2='google.ads.google_ads.v5.proto.enums', + conversion_action_counting_type_pb2='google.ads.google_ads.v5.proto.enums', + conversion_action_status_pb2='google.ads.google_ads.v5.proto.enums', + conversion_action_type_pb2='google.ads.google_ads.v5.proto.enums', + conversion_adjustment_type_pb2='google.ads.google_ads.v5.proto.enums', + conversion_attribution_event_type_pb2='google.ads.google_ads.v5.proto.enums', + conversion_lag_bucket_pb2='google.ads.google_ads.v5.proto.enums', + conversion_or_adjustment_lag_bucket_pb2='google.ads.google_ads.v5.proto.enums', + criterion_category_channel_availability_mode_pb2='google.ads.google_ads.v5.proto.enums', + criterion_category_locale_availability_mode_pb2='google.ads.google_ads.v5.proto.enums', + criterion_system_serving_status_pb2='google.ads.google_ads.v5.proto.enums', + criterion_type_pb2='google.ads.google_ads.v5.proto.enums', + custom_interest_member_type_pb2='google.ads.google_ads.v5.proto.enums', + custom_interest_status_pb2='google.ads.google_ads.v5.proto.enums', + custom_interest_type_pb2='google.ads.google_ads.v5.proto.enums', + custom_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + customer_match_upload_key_type_pb2='google.ads.google_ads.v5.proto.enums', + customer_pay_per_conversion_eligibility_failure_reason_pb2='google.ads.google_ads.v5.proto.enums', + data_driven_model_status_pb2='google.ads.google_ads.v5.proto.enums', + day_of_week_pb2='google.ads.google_ads.v5.proto.enums', + device_pb2='google.ads.google_ads.v5.proto.enums', + display_ad_format_setting_pb2='google.ads.google_ads.v5.proto.enums', + display_upload_product_type_pb2='google.ads.google_ads.v5.proto.enums', + distance_bucket_pb2='google.ads.google_ads.v5.proto.enums', + dsa_page_feed_criterion_field_pb2='google.ads.google_ads.v5.proto.enums', + education_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + extension_setting_device_pb2='google.ads.google_ads.v5.proto.enums', + extension_type_pb2='google.ads.google_ads.v5.proto.enums', + external_conversion_source_pb2='google.ads.google_ads.v5.proto.enums', + feed_attribute_type_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_quality_approval_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_quality_disapproval_reason_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_target_device_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_target_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_target_type_pb2='google.ads.google_ads.v5.proto.enums', + feed_item_validation_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_link_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_mapping_criterion_type_pb2='google.ads.google_ads.v5.proto.enums', + feed_mapping_status_pb2='google.ads.google_ads.v5.proto.enums', + feed_origin_pb2='google.ads.google_ads.v5.proto.enums', + feed_status_pb2='google.ads.google_ads.v5.proto.enums', + flight_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + frequency_cap_event_type_pb2='google.ads.google_ads.v5.proto.enums', + frequency_cap_level_pb2='google.ads.google_ads.v5.proto.enums', + frequency_cap_time_unit_pb2='google.ads.google_ads.v5.proto.enums', + gender_type_pb2='google.ads.google_ads.v5.proto.enums', + geo_target_constant_status_pb2='google.ads.google_ads.v5.proto.enums', + geo_targeting_restriction_pb2='google.ads.google_ads.v5.proto.enums', + geo_targeting_type_pb2='google.ads.google_ads.v5.proto.enums', + google_ads_field_category_pb2='google.ads.google_ads.v5.proto.enums', + google_ads_field_data_type_pb2='google.ads.google_ads.v5.proto.enums', + hotel_date_selection_type_pb2='google.ads.google_ads.v5.proto.enums', + hotel_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + hotel_price_bucket_pb2='google.ads.google_ads.v5.proto.enums', + hotel_rate_type_pb2='google.ads.google_ads.v5.proto.enums', + income_range_type_pb2='google.ads.google_ads.v5.proto.enums', + interaction_event_type_pb2='google.ads.google_ads.v5.proto.enums', + interaction_type_pb2='google.ads.google_ads.v5.proto.enums', + invoice_type_pb2='google.ads.google_ads.v5.proto.enums', + job_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + keyword_match_type_pb2='google.ads.google_ads.v5.proto.enums', + keyword_plan_competition_level_pb2='google.ads.google_ads.v5.proto.enums', + keyword_plan_forecast_interval_pb2='google.ads.google_ads.v5.proto.enums', + keyword_plan_network_pb2='google.ads.google_ads.v5.proto.enums', + label_status_pb2='google.ads.google_ads.v5.proto.enums', + legacy_app_install_ad_app_store_pb2='google.ads.google_ads.v5.proto.enums', + linked_account_type_pb2='google.ads.google_ads.v5.proto.enums', + listing_group_type_pb2='google.ads.google_ads.v5.proto.enums', + local_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + location_extension_targeting_criterion_field_pb2='google.ads.google_ads.v5.proto.enums', + location_group_radius_units_pb2='google.ads.google_ads.v5.proto.enums', + location_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + location_source_type_pb2='google.ads.google_ads.v5.proto.enums', + manager_link_status_pb2='google.ads.google_ads.v5.proto.enums', + matching_function_context_type_pb2='google.ads.google_ads.v5.proto.enums', + matching_function_operator_pb2='google.ads.google_ads.v5.proto.enums', + media_type_pb2='google.ads.google_ads.v5.proto.enums', + merchant_center_link_status_pb2='google.ads.google_ads.v5.proto.enums', + message_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + mime_type_pb2='google.ads.google_ads.v5.proto.enums', + minute_of_hour_pb2='google.ads.google_ads.v5.proto.enums', + mobile_app_vendor_pb2='google.ads.google_ads.v5.proto.enums', + mobile_device_type_pb2='google.ads.google_ads.v5.proto.enums', + month_of_year_pb2='google.ads.google_ads.v5.proto.enums', + negative_geo_target_type_pb2='google.ads.google_ads.v5.proto.enums', + offline_user_data_job_failure_reason_pb2='google.ads.google_ads.v5.proto.enums', + offline_user_data_job_status_pb2='google.ads.google_ads.v5.proto.enums', + offline_user_data_job_type_pb2='google.ads.google_ads.v5.proto.enums', + operating_system_version_operator_type_pb2='google.ads.google_ads.v5.proto.enums', + optimization_goal_type_pb2='google.ads.google_ads.v5.proto.enums', + page_one_promoted_strategy_goal_pb2='google.ads.google_ads.v5.proto.enums', + parental_status_type_pb2='google.ads.google_ads.v5.proto.enums', + payment_mode_pb2='google.ads.google_ads.v5.proto.enums', + placeholder_type_pb2='google.ads.google_ads.v5.proto.enums', + placement_type_pb2='google.ads.google_ads.v5.proto.enums', + policy_approval_status_pb2='google.ads.google_ads.v5.proto.enums', + policy_review_status_pb2='google.ads.google_ads.v5.proto.enums', + policy_topic_entry_type_pb2='google.ads.google_ads.v5.proto.enums', + policy_topic_evidence_destination_mismatch_url_type_pb2='google.ads.google_ads.v5.proto.enums', + policy_topic_evidence_destination_not_working_device_pb2='google.ads.google_ads.v5.proto.enums', + policy_topic_evidence_destination_not_working_dns_error_type_pb2='google.ads.google_ads.v5.proto.enums', + positive_geo_target_type_pb2='google.ads.google_ads.v5.proto.enums', + preferred_content_type_pb2='google.ads.google_ads.v5.proto.enums', + price_extension_price_qualifier_pb2='google.ads.google_ads.v5.proto.enums', + price_extension_price_unit_pb2='google.ads.google_ads.v5.proto.enums', + price_extension_type_pb2='google.ads.google_ads.v5.proto.enums', + price_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + product_bidding_category_level_pb2='google.ads.google_ads.v5.proto.enums', + product_bidding_category_status_pb2='google.ads.google_ads.v5.proto.enums', + product_channel_exclusivity_pb2='google.ads.google_ads.v5.proto.enums', + product_channel_pb2='google.ads.google_ads.v5.proto.enums', + product_condition_pb2='google.ads.google_ads.v5.proto.enums', + product_custom_attribute_index_pb2='google.ads.google_ads.v5.proto.enums', + product_type_level_pb2='google.ads.google_ads.v5.proto.enums', + promotion_extension_discount_modifier_pb2='google.ads.google_ads.v5.proto.enums', + promotion_extension_occasion_pb2='google.ads.google_ads.v5.proto.enums', + promotion_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + proximity_radius_units_pb2='google.ads.google_ads.v5.proto.enums', + quality_score_bucket_pb2='google.ads.google_ads.v5.proto.enums', + reach_plan_ad_length_pb2='google.ads.google_ads.v5.proto.enums', + reach_plan_age_range_pb2='google.ads.google_ads.v5.proto.enums', + reach_plan_network_pb2='google.ads.google_ads.v5.proto.enums', + real_estate_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + recommendation_type_pb2='google.ads.google_ads.v5.proto.enums', + response_content_type_pb2='google.ads.google_ads.v5.proto.enums', + search_engine_results_page_type_pb2='google.ads.google_ads.v5.proto.enums', + search_term_match_type_pb2='google.ads.google_ads.v5.proto.enums', + search_term_targeting_status_pb2='google.ads.google_ads.v5.proto.enums', + served_asset_field_type_pb2='google.ads.google_ads.v5.proto.enums', + shared_set_status_pb2='google.ads.google_ads.v5.proto.enums', + shared_set_type_pb2='google.ads.google_ads.v5.proto.enums', + simulation_modification_method_pb2='google.ads.google_ads.v5.proto.enums', + simulation_type_pb2='google.ads.google_ads.v5.proto.enums', + sitelink_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + slot_pb2='google.ads.google_ads.v5.proto.enums', + spending_limit_type_pb2='google.ads.google_ads.v5.proto.enums', + structured_snippet_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + summary_row_setting_pb2='google.ads.google_ads.v5.proto.enums', + system_managed_entity_source_pb2='google.ads.google_ads.v5.proto.enums', + target_cpa_opt_in_recommendation_goal_pb2='google.ads.google_ads.v5.proto.enums', + target_impression_share_location_pb2='google.ads.google_ads.v5.proto.enums', + targeting_dimension_pb2='google.ads.google_ads.v5.proto.enums', + time_type_pb2='google.ads.google_ads.v5.proto.enums', + tracking_code_page_format_pb2='google.ads.google_ads.v5.proto.enums', + tracking_code_type_pb2='google.ads.google_ads.v5.proto.enums', + travel_placeholder_field_pb2='google.ads.google_ads.v5.proto.enums', + user_interest_taxonomy_type_pb2='google.ads.google_ads.v5.proto.enums', + user_list_access_status_pb2='google.ads.google_ads.v5.proto.enums', + user_list_closing_reason_pb2='google.ads.google_ads.v5.proto.enums', + user_list_combined_rule_operator_pb2='google.ads.google_ads.v5.proto.enums', + user_list_crm_data_source_type_pb2='google.ads.google_ads.v5.proto.enums', + user_list_date_rule_item_operator_pb2='google.ads.google_ads.v5.proto.enums', + user_list_logical_rule_operator_pb2='google.ads.google_ads.v5.proto.enums', + user_list_membership_status_pb2='google.ads.google_ads.v5.proto.enums', + user_list_number_rule_item_operator_pb2='google.ads.google_ads.v5.proto.enums', + user_list_prepopulation_status_pb2='google.ads.google_ads.v5.proto.enums', + user_list_rule_type_pb2='google.ads.google_ads.v5.proto.enums', + user_list_size_range_pb2='google.ads.google_ads.v5.proto.enums', + user_list_string_rule_item_operator_pb2='google.ads.google_ads.v5.proto.enums', + user_list_type_pb2='google.ads.google_ads.v5.proto.enums', + vanity_pharma_display_url_mode_pb2='google.ads.google_ads.v5.proto.enums', + vanity_pharma_text_pb2='google.ads.google_ads.v5.proto.enums', + webpage_condition_operand_pb2='google.ads.google_ads.v5.proto.enums', + webpage_condition_operator_pb2='google.ads.google_ads.v5.proto.enums', + access_invitation_error_pb2='google.ads.google_ads.v5.proto.errors', + account_budget_proposal_error_pb2='google.ads.google_ads.v5.proto.errors', + account_link_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_customizer_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_group_ad_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_group_bid_modifier_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_group_criterion_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_group_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_group_feed_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_parameter_error_pb2='google.ads.google_ads.v5.proto.errors', + ad_sharing_error_pb2='google.ads.google_ads.v5.proto.errors', + adx_error_pb2='google.ads.google_ads.v5.proto.errors', + asset_error_pb2='google.ads.google_ads.v5.proto.errors', + asset_link_error_pb2='google.ads.google_ads.v5.proto.errors', + authentication_error_pb2='google.ads.google_ads.v5.proto.errors', + authorization_error_pb2='google.ads.google_ads.v5.proto.errors', + batch_job_error_pb2='google.ads.google_ads.v5.proto.errors', + bidding_error_pb2='google.ads.google_ads.v5.proto.errors', + bidding_strategy_error_pb2='google.ads.google_ads.v5.proto.errors', + billing_setup_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_budget_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_criterion_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_draft_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_experiment_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_feed_error_pb2='google.ads.google_ads.v5.proto.errors', + campaign_shared_set_error_pb2='google.ads.google_ads.v5.proto.errors', + change_status_error_pb2='google.ads.google_ads.v5.proto.errors', + collection_size_error_pb2='google.ads.google_ads.v5.proto.errors', + context_error_pb2='google.ads.google_ads.v5.proto.errors', + conversion_action_error_pb2='google.ads.google_ads.v5.proto.errors', + conversion_adjustment_upload_error_pb2='google.ads.google_ads.v5.proto.errors', + conversion_upload_error_pb2='google.ads.google_ads.v5.proto.errors', + country_code_error_pb2='google.ads.google_ads.v5.proto.errors', + criterion_error_pb2='google.ads.google_ads.v5.proto.errors', + currency_code_error_pb2='google.ads.google_ads.v5.proto.errors', + custom_interest_error_pb2='google.ads.google_ads.v5.proto.errors', + customer_client_link_error_pb2='google.ads.google_ads.v5.proto.errors', + customer_error_pb2='google.ads.google_ads.v5.proto.errors', + customer_feed_error_pb2='google.ads.google_ads.v5.proto.errors', + customer_manager_link_error_pb2='google.ads.google_ads.v5.proto.errors', + database_error_pb2='google.ads.google_ads.v5.proto.errors', + date_error_pb2='google.ads.google_ads.v5.proto.errors', + date_range_error_pb2='google.ads.google_ads.v5.proto.errors', + distinct_error_pb2='google.ads.google_ads.v5.proto.errors', + enum_error_pb2='google.ads.google_ads.v5.proto.errors', + errors_pb2='google.ads.google_ads.v5.proto.errors', + extension_feed_item_error_pb2='google.ads.google_ads.v5.proto.errors', + extension_setting_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_attribute_reference_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_item_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_item_target_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_item_validation_error_pb2='google.ads.google_ads.v5.proto.errors', + feed_mapping_error_pb2='google.ads.google_ads.v5.proto.errors', + field_error_pb2='google.ads.google_ads.v5.proto.errors', + field_mask_error_pb2='google.ads.google_ads.v5.proto.errors', + function_error_pb2='google.ads.google_ads.v5.proto.errors', + function_parsing_error_pb2='google.ads.google_ads.v5.proto.errors', + geo_target_constant_suggestion_error_pb2='google.ads.google_ads.v5.proto.errors', + header_error_pb2='google.ads.google_ads.v5.proto.errors', + id_error_pb2='google.ads.google_ads.v5.proto.errors', + image_error_pb2='google.ads.google_ads.v5.proto.errors', + internal_error_pb2='google.ads.google_ads.v5.proto.errors', + invoice_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_ad_group_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_ad_group_keyword_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_campaign_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_campaign_keyword_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_error_pb2='google.ads.google_ads.v5.proto.errors', + keyword_plan_idea_error_pb2='google.ads.google_ads.v5.proto.errors', + label_error_pb2='google.ads.google_ads.v5.proto.errors', + language_code_error_pb2='google.ads.google_ads.v5.proto.errors', + list_operation_error_pb2='google.ads.google_ads.v5.proto.errors', + manager_link_error_pb2='google.ads.google_ads.v5.proto.errors', + media_bundle_error_pb2='google.ads.google_ads.v5.proto.errors', + media_file_error_pb2='google.ads.google_ads.v5.proto.errors', + media_upload_error_pb2='google.ads.google_ads.v5.proto.errors', + multiplier_error_pb2='google.ads.google_ads.v5.proto.errors', + mutate_error_pb2='google.ads.google_ads.v5.proto.errors', + new_resource_creation_error_pb2='google.ads.google_ads.v5.proto.errors', + not_allowlisted_error_pb2='google.ads.google_ads.v5.proto.errors', + not_empty_error_pb2='google.ads.google_ads.v5.proto.errors', + null_error_pb2='google.ads.google_ads.v5.proto.errors', + offline_user_data_job_error_pb2='google.ads.google_ads.v5.proto.errors', + operation_access_denied_error_pb2='google.ads.google_ads.v5.proto.errors', + operator_error_pb2='google.ads.google_ads.v5.proto.errors', + partial_failure_error_pb2='google.ads.google_ads.v5.proto.errors', + payments_account_error_pb2='google.ads.google_ads.v5.proto.errors', + policy_finding_error_pb2='google.ads.google_ads.v5.proto.errors', + policy_validation_parameter_error_pb2='google.ads.google_ads.v5.proto.errors', + policy_violation_error_pb2='google.ads.google_ads.v5.proto.errors', + query_error_pb2='google.ads.google_ads.v5.proto.errors', + quota_error_pb2='google.ads.google_ads.v5.proto.errors', + range_error_pb2='google.ads.google_ads.v5.proto.errors', + reach_plan_error_pb2='google.ads.google_ads.v5.proto.errors', + recommendation_error_pb2='google.ads.google_ads.v5.proto.errors', + region_code_error_pb2='google.ads.google_ads.v5.proto.errors', + request_error_pb2='google.ads.google_ads.v5.proto.errors', + resource_access_denied_error_pb2='google.ads.google_ads.v5.proto.errors', + resource_count_limit_exceeded_error_pb2='google.ads.google_ads.v5.proto.errors', + setting_error_pb2='google.ads.google_ads.v5.proto.errors', + shared_criterion_error_pb2='google.ads.google_ads.v5.proto.errors', + shared_set_error_pb2='google.ads.google_ads.v5.proto.errors', + size_limit_error_pb2='google.ads.google_ads.v5.proto.errors', + string_format_error_pb2='google.ads.google_ads.v5.proto.errors', + string_length_error_pb2='google.ads.google_ads.v5.proto.errors', + third_party_app_analytics_link_error_pb2='google.ads.google_ads.v5.proto.errors', + time_zone_error_pb2='google.ads.google_ads.v5.proto.errors', + url_field_error_pb2='google.ads.google_ads.v5.proto.errors', + user_data_error_pb2='google.ads.google_ads.v5.proto.errors', + user_list_error_pb2='google.ads.google_ads.v5.proto.errors', + youtube_video_registration_error_pb2='google.ads.google_ads.v5.proto.errors', + account_budget_pb2='google.ads.google_ads.v5.proto.resources', + account_budget_proposal_pb2='google.ads.google_ads.v5.proto.resources', + account_link_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_ad_asset_view_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_ad_label_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_ad_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_audience_view_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_bid_modifier_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_criterion_label_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_criterion_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_criterion_simulation_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_extension_setting_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_feed_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_label_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_pb2='google.ads.google_ads.v5.proto.resources', + ad_group_simulation_pb2='google.ads.google_ads.v5.proto.resources', + ad_parameter_pb2='google.ads.google_ads.v5.proto.resources', + ad_pb2='google.ads.google_ads.v5.proto.resources', + ad_schedule_view_pb2='google.ads.google_ads.v5.proto.resources', + age_range_view_pb2='google.ads.google_ads.v5.proto.resources', + asset_pb2='google.ads.google_ads.v5.proto.resources', + batch_job_pb2='google.ads.google_ads.v5.proto.resources', + bidding_strategy_pb2='google.ads.google_ads.v5.proto.resources', + billing_setup_pb2='google.ads.google_ads.v5.proto.resources', + campaign_asset_pb2='google.ads.google_ads.v5.proto.resources', + campaign_audience_view_pb2='google.ads.google_ads.v5.proto.resources', + campaign_bid_modifier_pb2='google.ads.google_ads.v5.proto.resources', + campaign_budget_pb2='google.ads.google_ads.v5.proto.resources', + campaign_criterion_pb2='google.ads.google_ads.v5.proto.resources', + campaign_criterion_simulation_pb2='google.ads.google_ads.v5.proto.resources', + campaign_draft_pb2='google.ads.google_ads.v5.proto.resources', + campaign_experiment_pb2='google.ads.google_ads.v5.proto.resources', + campaign_extension_setting_pb2='google.ads.google_ads.v5.proto.resources', + campaign_feed_pb2='google.ads.google_ads.v5.proto.resources', + campaign_label_pb2='google.ads.google_ads.v5.proto.resources', + campaign_pb2='google.ads.google_ads.v5.proto.resources', + campaign_shared_set_pb2='google.ads.google_ads.v5.proto.resources', + carrier_constant_pb2='google.ads.google_ads.v5.proto.resources', + change_status_pb2='google.ads.google_ads.v5.proto.resources', + click_view_pb2='google.ads.google_ads.v5.proto.resources', + conversion_action_pb2='google.ads.google_ads.v5.proto.resources', + currency_constant_pb2='google.ads.google_ads.v5.proto.resources', + custom_interest_pb2='google.ads.google_ads.v5.proto.resources', + customer_client_link_pb2='google.ads.google_ads.v5.proto.resources', + customer_client_pb2='google.ads.google_ads.v5.proto.resources', + customer_extension_setting_pb2='google.ads.google_ads.v5.proto.resources', + customer_feed_pb2='google.ads.google_ads.v5.proto.resources', + customer_label_pb2='google.ads.google_ads.v5.proto.resources', + customer_manager_link_pb2='google.ads.google_ads.v5.proto.resources', + customer_negative_criterion_pb2='google.ads.google_ads.v5.proto.resources', + customer_pb2='google.ads.google_ads.v5.proto.resources', + detail_placement_view_pb2='google.ads.google_ads.v5.proto.resources', + display_keyword_view_pb2='google.ads.google_ads.v5.proto.resources', + distance_view_pb2='google.ads.google_ads.v5.proto.resources', + domain_category_pb2='google.ads.google_ads.v5.proto.resources', + dynamic_search_ads_search_term_view_pb2='google.ads.google_ads.v5.proto.resources', + expanded_landing_page_view_pb2='google.ads.google_ads.v5.proto.resources', + extension_feed_item_pb2='google.ads.google_ads.v5.proto.resources', + feed_item_pb2='google.ads.google_ads.v5.proto.resources', + feed_item_target_pb2='google.ads.google_ads.v5.proto.resources', + feed_mapping_pb2='google.ads.google_ads.v5.proto.resources', + feed_pb2='google.ads.google_ads.v5.proto.resources', + feed_placeholder_view_pb2='google.ads.google_ads.v5.proto.resources', + gender_view_pb2='google.ads.google_ads.v5.proto.resources', + geo_target_constant_pb2='google.ads.google_ads.v5.proto.resources', + geographic_view_pb2='google.ads.google_ads.v5.proto.resources', + google_ads_field_pb2='google.ads.google_ads.v5.proto.resources', + group_placement_view_pb2='google.ads.google_ads.v5.proto.resources', + hotel_group_view_pb2='google.ads.google_ads.v5.proto.resources', + hotel_performance_view_pb2='google.ads.google_ads.v5.proto.resources', + income_range_view_pb2='google.ads.google_ads.v5.proto.resources', + invoice_pb2='google.ads.google_ads.v5.proto.resources', + keyword_plan_ad_group_keyword_pb2='google.ads.google_ads.v5.proto.resources', + keyword_plan_ad_group_pb2='google.ads.google_ads.v5.proto.resources', + keyword_plan_campaign_keyword_pb2='google.ads.google_ads.v5.proto.resources', + keyword_plan_campaign_pb2='google.ads.google_ads.v5.proto.resources', + keyword_plan_pb2='google.ads.google_ads.v5.proto.resources', + keyword_view_pb2='google.ads.google_ads.v5.proto.resources', + label_pb2='google.ads.google_ads.v5.proto.resources', + landing_page_view_pb2='google.ads.google_ads.v5.proto.resources', + language_constant_pb2='google.ads.google_ads.v5.proto.resources', + location_view_pb2='google.ads.google_ads.v5.proto.resources', + managed_placement_view_pb2='google.ads.google_ads.v5.proto.resources', + media_file_pb2='google.ads.google_ads.v5.proto.resources', + merchant_center_link_pb2='google.ads.google_ads.v5.proto.resources', + mobile_app_category_constant_pb2='google.ads.google_ads.v5.proto.resources', + mobile_device_constant_pb2='google.ads.google_ads.v5.proto.resources', + offline_user_data_job_pb2='google.ads.google_ads.v5.proto.resources', + operating_system_version_constant_pb2='google.ads.google_ads.v5.proto.resources', + paid_organic_search_term_view_pb2='google.ads.google_ads.v5.proto.resources', + parental_status_view_pb2='google.ads.google_ads.v5.proto.resources', + payments_account_pb2='google.ads.google_ads.v5.proto.resources', + product_bidding_category_constant_pb2='google.ads.google_ads.v5.proto.resources', + product_group_view_pb2='google.ads.google_ads.v5.proto.resources', + recommendation_pb2='google.ads.google_ads.v5.proto.resources', + remarketing_action_pb2='google.ads.google_ads.v5.proto.resources', + search_term_view_pb2='google.ads.google_ads.v5.proto.resources', + shared_criterion_pb2='google.ads.google_ads.v5.proto.resources', + shared_set_pb2='google.ads.google_ads.v5.proto.resources', + shopping_performance_view_pb2='google.ads.google_ads.v5.proto.resources', + third_party_app_analytics_link_pb2='google.ads.google_ads.v5.proto.resources', + topic_constant_pb2='google.ads.google_ads.v5.proto.resources', + topic_view_pb2='google.ads.google_ads.v5.proto.resources', + user_interest_pb2='google.ads.google_ads.v5.proto.resources', + user_list_pb2='google.ads.google_ads.v5.proto.resources', + user_location_view_pb2='google.ads.google_ads.v5.proto.resources', + video_pb2='google.ads.google_ads.v5.proto.resources', + account_budget_proposal_service_pb2='google.ads.google_ads.v5.proto.services', + account_budget_service_pb2='google.ads.google_ads.v5.proto.services', + account_link_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_ad_asset_view_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_ad_label_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_ad_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_audience_view_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_bid_modifier_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_criterion_label_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_criterion_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_criterion_simulation_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_extension_setting_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_feed_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_label_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_service_pb2='google.ads.google_ads.v5.proto.services', + ad_group_simulation_service_pb2='google.ads.google_ads.v5.proto.services', + ad_parameter_service_pb2='google.ads.google_ads.v5.proto.services', + ad_schedule_view_service_pb2='google.ads.google_ads.v5.proto.services', + ad_service_pb2='google.ads.google_ads.v5.proto.services', + age_range_view_service_pb2='google.ads.google_ads.v5.proto.services', + asset_service_pb2='google.ads.google_ads.v5.proto.services', + batch_job_service_pb2='google.ads.google_ads.v5.proto.services', + bidding_strategy_service_pb2='google.ads.google_ads.v5.proto.services', + billing_setup_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_asset_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_audience_view_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_bid_modifier_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_budget_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_criterion_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_criterion_simulation_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_draft_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_experiment_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_extension_setting_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_feed_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_label_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_service_pb2='google.ads.google_ads.v5.proto.services', + campaign_shared_set_service_pb2='google.ads.google_ads.v5.proto.services', + carrier_constant_service_pb2='google.ads.google_ads.v5.proto.services', + change_status_service_pb2='google.ads.google_ads.v5.proto.services', + click_view_service_pb2='google.ads.google_ads.v5.proto.services', + conversion_action_service_pb2='google.ads.google_ads.v5.proto.services', + conversion_adjustment_upload_service_pb2='google.ads.google_ads.v5.proto.services', + conversion_upload_service_pb2='google.ads.google_ads.v5.proto.services', + currency_constant_service_pb2='google.ads.google_ads.v5.proto.services', + custom_interest_service_pb2='google.ads.google_ads.v5.proto.services', + customer_client_link_service_pb2='google.ads.google_ads.v5.proto.services', + customer_client_service_pb2='google.ads.google_ads.v5.proto.services', + customer_extension_setting_service_pb2='google.ads.google_ads.v5.proto.services', + customer_feed_service_pb2='google.ads.google_ads.v5.proto.services', + customer_label_service_pb2='google.ads.google_ads.v5.proto.services', + customer_manager_link_service_pb2='google.ads.google_ads.v5.proto.services', + customer_negative_criterion_service_pb2='google.ads.google_ads.v5.proto.services', + customer_service_pb2='google.ads.google_ads.v5.proto.services', + detail_placement_view_service_pb2='google.ads.google_ads.v5.proto.services', + display_keyword_view_service_pb2='google.ads.google_ads.v5.proto.services', + distance_view_service_pb2='google.ads.google_ads.v5.proto.services', + domain_category_service_pb2='google.ads.google_ads.v5.proto.services', + dynamic_search_ads_search_term_view_service_pb2='google.ads.google_ads.v5.proto.services', + expanded_landing_page_view_service_pb2='google.ads.google_ads.v5.proto.services', + extension_feed_item_service_pb2='google.ads.google_ads.v5.proto.services', + feed_item_service_pb2='google.ads.google_ads.v5.proto.services', + feed_item_target_service_pb2='google.ads.google_ads.v5.proto.services', + feed_mapping_service_pb2='google.ads.google_ads.v5.proto.services', + feed_placeholder_view_service_pb2='google.ads.google_ads.v5.proto.services', + feed_service_pb2='google.ads.google_ads.v5.proto.services', + gender_view_service_pb2='google.ads.google_ads.v5.proto.services', + geo_target_constant_service_pb2='google.ads.google_ads.v5.proto.services', + geographic_view_service_pb2='google.ads.google_ads.v5.proto.services', + google_ads_field_service_pb2='google.ads.google_ads.v5.proto.services', + google_ads_service_pb2='google.ads.google_ads.v5.proto.services', + group_placement_view_service_pb2='google.ads.google_ads.v5.proto.services', + hotel_group_view_service_pb2='google.ads.google_ads.v5.proto.services', + hotel_performance_view_service_pb2='google.ads.google_ads.v5.proto.services', + income_range_view_service_pb2='google.ads.google_ads.v5.proto.services', + invoice_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_ad_group_keyword_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_ad_group_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_campaign_keyword_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_campaign_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_idea_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_plan_service_pb2='google.ads.google_ads.v5.proto.services', + keyword_view_service_pb2='google.ads.google_ads.v5.proto.services', + label_service_pb2='google.ads.google_ads.v5.proto.services', + landing_page_view_service_pb2='google.ads.google_ads.v5.proto.services', + language_constant_service_pb2='google.ads.google_ads.v5.proto.services', + location_view_service_pb2='google.ads.google_ads.v5.proto.services', + managed_placement_view_service_pb2='google.ads.google_ads.v5.proto.services', + media_file_service_pb2='google.ads.google_ads.v5.proto.services', + merchant_center_link_service_pb2='google.ads.google_ads.v5.proto.services', + mobile_app_category_constant_service_pb2='google.ads.google_ads.v5.proto.services', + mobile_device_constant_service_pb2='google.ads.google_ads.v5.proto.services', + offline_user_data_job_service_pb2='google.ads.google_ads.v5.proto.services', + operating_system_version_constant_service_pb2='google.ads.google_ads.v5.proto.services', + paid_organic_search_term_view_service_pb2='google.ads.google_ads.v5.proto.services', + parental_status_view_service_pb2='google.ads.google_ads.v5.proto.services', + payments_account_service_pb2='google.ads.google_ads.v5.proto.services', + product_bidding_category_constant_service_pb2='google.ads.google_ads.v5.proto.services', + product_group_view_service_pb2='google.ads.google_ads.v5.proto.services', + reach_plan_service_pb2='google.ads.google_ads.v5.proto.services', + recommendation_service_pb2='google.ads.google_ads.v5.proto.services', + remarketing_action_service_pb2='google.ads.google_ads.v5.proto.services', + search_term_view_service_pb2='google.ads.google_ads.v5.proto.services', + shared_criterion_service_pb2='google.ads.google_ads.v5.proto.services', + shared_set_service_pb2='google.ads.google_ads.v5.proto.services', + shopping_performance_view_service_pb2='google.ads.google_ads.v5.proto.services', + third_party_app_analytics_link_service_pb2='google.ads.google_ads.v5.proto.services', + topic_constant_service_pb2='google.ads.google_ads.v5.proto.services', + topic_view_service_pb2='google.ads.google_ads.v5.proto.services', + user_data_service_pb2='google.ads.google_ads.v5.proto.services', + user_interest_service_pb2='google.ads.google_ads.v5.proto.services', + user_list_service_pb2='google.ads.google_ads.v5.proto.services', + user_location_view_service_pb2='google.ads.google_ads.v5.proto.services', + video_service_pb2='google.ads.google_ads.v5.proto.services', + operations_pb2='google.longrunning', + any_pb2='google.protobuf', + empty_pb2='google.protobuf', + field_mask_pb2='google.protobuf', + wrappers_pb2='google.protobuf', + status_pb2='google.rpc', +) + + +_lazy_class_to_package_map = dict( + AccessInvitationErrorEnum='google.ads.google_ads.v5.proto.errors.access_invitation_error_pb2', + AccessReasonEnum='google.ads.google_ads.v5.proto.enums.access_reason_pb2', + AccessRoleEnum='google.ads.google_ads.v5.proto.enums.access_role_pb2', + AccountBudget='google.ads.google_ads.v5.proto.resources.account_budget_pb2', + AccountBudgetProposal='google.ads.google_ads.v5.proto.resources.account_budget_proposal_pb2', + AccountBudgetProposalErrorEnum='google.ads.google_ads.v5.proto.errors.account_budget_proposal_error_pb2', + AccountBudgetProposalOperation='google.ads.google_ads.v5.proto.services.account_budget_proposal_service_pb2', + AccountBudgetProposalStatusEnum='google.ads.google_ads.v5.proto.enums.account_budget_proposal_status_pb2', + AccountBudgetProposalTypeEnum='google.ads.google_ads.v5.proto.enums.account_budget_proposal_type_pb2', + AccountBudgetStatusEnum='google.ads.google_ads.v5.proto.enums.account_budget_status_pb2', + AccountLink='google.ads.google_ads.v5.proto.resources.account_link_pb2', + AccountLinkErrorEnum='google.ads.google_ads.v5.proto.errors.account_link_error_pb2', + AccountLinkOperation='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + AccountLinkStatusEnum='google.ads.google_ads.v5.proto.enums.account_link_status_pb2', + Ad='google.ads.google_ads.v5.proto.resources.ad_pb2', + AdCustomizerErrorEnum='google.ads.google_ads.v5.proto.errors.ad_customizer_error_pb2', + AdCustomizerPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.ad_customizer_placeholder_field_pb2', + AdErrorEnum='google.ads.google_ads.v5.proto.errors.ad_error_pb2', + AdGroup='google.ads.google_ads.v5.proto.resources.ad_group_pb2', + AdGroupAd='google.ads.google_ads.v5.proto.resources.ad_group_ad_pb2', + AdGroupAdAssetPolicySummary='google.ads.google_ads.v5.proto.resources.ad_group_ad_asset_view_pb2', + AdGroupAdAssetView='google.ads.google_ads.v5.proto.resources.ad_group_ad_asset_view_pb2', + AdGroupAdErrorEnum='google.ads.google_ads.v5.proto.errors.ad_group_ad_error_pb2', + AdGroupAdLabel='google.ads.google_ads.v5.proto.resources.ad_group_ad_label_pb2', + AdGroupAdLabelOperation='google.ads.google_ads.v5.proto.services.ad_group_ad_label_service_pb2', + AdGroupAdOperation='google.ads.google_ads.v5.proto.services.ad_group_ad_service_pb2', + AdGroupAdPolicySummary='google.ads.google_ads.v5.proto.resources.ad_group_ad_pb2', + AdGroupAdRotationModeEnum='google.ads.google_ads.v5.proto.enums.ad_group_ad_rotation_mode_pb2', + AdGroupAdStatusEnum='google.ads.google_ads.v5.proto.enums.ad_group_ad_status_pb2', + AdGroupAudienceView='google.ads.google_ads.v5.proto.resources.ad_group_audience_view_pb2', + AdGroupBidModifier='google.ads.google_ads.v5.proto.resources.ad_group_bid_modifier_pb2', + AdGroupBidModifierErrorEnum='google.ads.google_ads.v5.proto.errors.ad_group_bid_modifier_error_pb2', + AdGroupBidModifierOperation='google.ads.google_ads.v5.proto.services.ad_group_bid_modifier_service_pb2', + AdGroupCriterion='google.ads.google_ads.v5.proto.resources.ad_group_criterion_pb2', + AdGroupCriterionApprovalStatusEnum='google.ads.google_ads.v5.proto.enums.ad_group_criterion_approval_status_pb2', + AdGroupCriterionErrorEnum='google.ads.google_ads.v5.proto.errors.ad_group_criterion_error_pb2', + AdGroupCriterionLabel='google.ads.google_ads.v5.proto.resources.ad_group_criterion_label_pb2', + AdGroupCriterionLabelOperation='google.ads.google_ads.v5.proto.services.ad_group_criterion_label_service_pb2', + AdGroupCriterionOperation='google.ads.google_ads.v5.proto.services.ad_group_criterion_service_pb2', + AdGroupCriterionSimulation='google.ads.google_ads.v5.proto.resources.ad_group_criterion_simulation_pb2', + AdGroupCriterionStatusEnum='google.ads.google_ads.v5.proto.enums.ad_group_criterion_status_pb2', + AdGroupErrorEnum='google.ads.google_ads.v5.proto.errors.ad_group_error_pb2', + AdGroupExtensionSetting='google.ads.google_ads.v5.proto.resources.ad_group_extension_setting_pb2', + AdGroupExtensionSettingOperation='google.ads.google_ads.v5.proto.services.ad_group_extension_setting_service_pb2', + AdGroupFeed='google.ads.google_ads.v5.proto.resources.ad_group_feed_pb2', + AdGroupFeedErrorEnum='google.ads.google_ads.v5.proto.errors.ad_group_feed_error_pb2', + AdGroupFeedOperation='google.ads.google_ads.v5.proto.services.ad_group_feed_service_pb2', + AdGroupLabel='google.ads.google_ads.v5.proto.resources.ad_group_label_pb2', + AdGroupLabelOperation='google.ads.google_ads.v5.proto.services.ad_group_label_service_pb2', + AdGroupOperation='google.ads.google_ads.v5.proto.services.ad_group_service_pb2', + AdGroupSimulation='google.ads.google_ads.v5.proto.resources.ad_group_simulation_pb2', + AdGroupStatusEnum='google.ads.google_ads.v5.proto.enums.ad_group_status_pb2', + AdGroupTypeEnum='google.ads.google_ads.v5.proto.enums.ad_group_type_pb2', + AdImageAsset='google.ads.google_ads.v5.proto.common.ad_asset_pb2', + AdMediaBundleAsset='google.ads.google_ads.v5.proto.common.ad_asset_pb2', + AdNetworkTypeEnum='google.ads.google_ads.v5.proto.enums.ad_network_type_pb2', + AdOperation='google.ads.google_ads.v5.proto.services.ad_service_pb2', + AdParameter='google.ads.google_ads.v5.proto.resources.ad_parameter_pb2', + AdParameterErrorEnum='google.ads.google_ads.v5.proto.errors.ad_parameter_error_pb2', + AdParameterOperation='google.ads.google_ads.v5.proto.services.ad_parameter_service_pb2', + AdScheduleInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + AdScheduleView='google.ads.google_ads.v5.proto.resources.ad_schedule_view_pb2', + AdServingOptimizationStatusEnum='google.ads.google_ads.v5.proto.enums.ad_serving_optimization_status_pb2', + AdSharingErrorEnum='google.ads.google_ads.v5.proto.errors.ad_sharing_error_pb2', + AdStrengthEnum='google.ads.google_ads.v5.proto.enums.ad_strength_pb2', + AdTextAsset='google.ads.google_ads.v5.proto.common.ad_asset_pb2', + AdTypeEnum='google.ads.google_ads.v5.proto.enums.ad_type_pb2', + AdVideoAsset='google.ads.google_ads.v5.proto.common.ad_asset_pb2', + AddBatchJobOperationsRequest='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + AddBatchJobOperationsResponse='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + AddOfflineUserDataJobOperationsRequest='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + AddOfflineUserDataJobOperationsResponse='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + AddressInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + AdvertisingChannelSubTypeEnum='google.ads.google_ads.v5.proto.enums.advertising_channel_sub_type_pb2', + AdvertisingChannelTypeEnum='google.ads.google_ads.v5.proto.enums.advertising_channel_type_pb2', + AdxErrorEnum='google.ads.google_ads.v5.proto.errors.adx_error_pb2', + AffiliateLocationFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + AffiliateLocationFeedRelationshipTypeEnum='google.ads.google_ads.v5.proto.enums.affiliate_location_feed_relationship_type_pb2', + AffiliateLocationPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.affiliate_location_placeholder_field_pb2', + AgeRangeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + AgeRangeTypeEnum='google.ads.google_ads.v5.proto.enums.age_range_type_pb2', + AgeRangeView='google.ads.google_ads.v5.proto.resources.age_range_view_pb2', + AppAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + AppCampaignAppStoreEnum='google.ads.google_ads.v5.proto.enums.app_campaign_app_store_pb2', + AppCampaignBiddingStrategyGoalTypeEnum='google.ads.google_ads.v5.proto.enums.app_campaign_bidding_strategy_goal_type_pb2', + AppEngagementAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + AppFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + AppPaymentModelInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + AppPaymentModelTypeEnum='google.ads.google_ads.v5.proto.enums.app_payment_model_type_pb2', + AppPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.app_placeholder_field_pb2', + AppStoreEnum='google.ads.google_ads.v5.proto.enums.app_store_pb2', + AppUrlOperatingSystemTypeEnum='google.ads.google_ads.v5.proto.enums.app_url_operating_system_type_pb2', + ApplyRecommendationOperation='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + ApplyRecommendationRequest='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + ApplyRecommendationResponse='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + ApplyRecommendationResult='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + Asset='google.ads.google_ads.v5.proto.resources.asset_pb2', + AssetErrorEnum='google.ads.google_ads.v5.proto.errors.asset_error_pb2', + AssetFieldTypeEnum='google.ads.google_ads.v5.proto.enums.asset_field_type_pb2', + AssetLinkErrorEnum='google.ads.google_ads.v5.proto.errors.asset_link_error_pb2', + AssetLinkStatusEnum='google.ads.google_ads.v5.proto.enums.asset_link_status_pb2', + AssetOperation='google.ads.google_ads.v5.proto.services.asset_service_pb2', + AssetPerformanceLabelEnum='google.ads.google_ads.v5.proto.enums.asset_performance_label_pb2', + AssetTypeEnum='google.ads.google_ads.v5.proto.enums.asset_type_pb2', + AttributeFieldMapping='google.ads.google_ads.v5.proto.resources.feed_mapping_pb2', + AttributionModelEnum='google.ads.google_ads.v5.proto.enums.attribution_model_pb2', + AuthenticationErrorEnum='google.ads.google_ads.v5.proto.errors.authentication_error_pb2', + AuthorizationErrorEnum='google.ads.google_ads.v5.proto.errors.authorization_error_pb2', + BasicUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + BatchJob='google.ads.google_ads.v5.proto.resources.batch_job_pb2', + BatchJobErrorEnum='google.ads.google_ads.v5.proto.errors.batch_job_error_pb2', + BatchJobOperation='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + BatchJobResult='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + BatchJobStatusEnum='google.ads.google_ads.v5.proto.enums.batch_job_status_pb2', + BidModifierSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + BidModifierSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + BidModifierSourceEnum='google.ads.google_ads.v5.proto.enums.bid_modifier_source_pb2', + BiddingErrorEnum='google.ads.google_ads.v5.proto.errors.bidding_error_pb2', + BiddingSourceEnum='google.ads.google_ads.v5.proto.enums.bidding_source_pb2', + BiddingStrategy='google.ads.google_ads.v5.proto.resources.bidding_strategy_pb2', + BiddingStrategyErrorEnum='google.ads.google_ads.v5.proto.errors.bidding_strategy_error_pb2', + BiddingStrategyOperation='google.ads.google_ads.v5.proto.services.bidding_strategy_service_pb2', + BiddingStrategyStatusEnum='google.ads.google_ads.v5.proto.enums.bidding_strategy_status_pb2', + BiddingStrategyTypeEnum='google.ads.google_ads.v5.proto.enums.bidding_strategy_type_pb2', + BillingSetup='google.ads.google_ads.v5.proto.resources.billing_setup_pb2', + BillingSetupErrorEnum='google.ads.google_ads.v5.proto.errors.billing_setup_error_pb2', + BillingSetupOperation='google.ads.google_ads.v5.proto.services.billing_setup_service_pb2', + BillingSetupStatusEnum='google.ads.google_ads.v5.proto.enums.billing_setup_status_pb2', + BookOnGoogleAsset='google.ads.google_ads.v5.proto.common.asset_types_pb2', + BrandSafetySuitabilityEnum='google.ads.google_ads.v5.proto.enums.brand_safety_suitability_pb2', + BudgetCampaignAssociationStatus='google.ads.google_ads.v5.proto.common.segments_pb2', + BudgetCampaignAssociationStatusEnum='google.ads.google_ads.v5.proto.enums.budget_campaign_association_status_pb2', + BudgetDeliveryMethodEnum='google.ads.google_ads.v5.proto.enums.budget_delivery_method_pb2', + BudgetPeriodEnum='google.ads.google_ads.v5.proto.enums.budget_period_pb2', + BudgetStatusEnum='google.ads.google_ads.v5.proto.enums.budget_status_pb2', + BudgetTypeEnum='google.ads.google_ads.v5.proto.enums.budget_type_pb2', + CallConversion='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + CallConversionReportingStateEnum='google.ads.google_ads.v5.proto.enums.call_conversion_reporting_state_pb2', + CallConversionResult='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + CallFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + CallOnlyAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + CallPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.call_placeholder_field_pb2', + CallReportingSetting='google.ads.google_ads.v5.proto.resources.customer_pb2', + CalloutFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + CalloutPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.callout_placeholder_field_pb2', + Campaign='google.ads.google_ads.v5.proto.resources.campaign_pb2', + CampaignAsset='google.ads.google_ads.v5.proto.resources.campaign_asset_pb2', + CampaignAssetOperation='google.ads.google_ads.v5.proto.services.campaign_asset_service_pb2', + CampaignAudienceView='google.ads.google_ads.v5.proto.resources.campaign_audience_view_pb2', + CampaignBidModifier='google.ads.google_ads.v5.proto.resources.campaign_bid_modifier_pb2', + CampaignBidModifierOperation='google.ads.google_ads.v5.proto.services.campaign_bid_modifier_service_pb2', + CampaignBudget='google.ads.google_ads.v5.proto.resources.campaign_budget_pb2', + CampaignBudgetErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_budget_error_pb2', + CampaignBudgetOperation='google.ads.google_ads.v5.proto.services.campaign_budget_service_pb2', + CampaignCriterion='google.ads.google_ads.v5.proto.resources.campaign_criterion_pb2', + CampaignCriterionErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_criterion_error_pb2', + CampaignCriterionOperation='google.ads.google_ads.v5.proto.services.campaign_criterion_service_pb2', + CampaignCriterionSimulation='google.ads.google_ads.v5.proto.resources.campaign_criterion_simulation_pb2', + CampaignCriterionStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_criterion_status_pb2', + CampaignDraft='google.ads.google_ads.v5.proto.resources.campaign_draft_pb2', + CampaignDraftErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_draft_error_pb2', + CampaignDraftOperation='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + CampaignDraftStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_draft_status_pb2', + CampaignDuration='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + CampaignErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_error_pb2', + CampaignExperiment='google.ads.google_ads.v5.proto.resources.campaign_experiment_pb2', + CampaignExperimentErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_experiment_error_pb2', + CampaignExperimentOperation='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + CampaignExperimentStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_experiment_status_pb2', + CampaignExperimentTrafficSplitTypeEnum='google.ads.google_ads.v5.proto.enums.campaign_experiment_traffic_split_type_pb2', + CampaignExperimentTypeEnum='google.ads.google_ads.v5.proto.enums.campaign_experiment_type_pb2', + CampaignExtensionSetting='google.ads.google_ads.v5.proto.resources.campaign_extension_setting_pb2', + CampaignExtensionSettingOperation='google.ads.google_ads.v5.proto.services.campaign_extension_setting_service_pb2', + CampaignFeed='google.ads.google_ads.v5.proto.resources.campaign_feed_pb2', + CampaignFeedErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_feed_error_pb2', + CampaignFeedOperation='google.ads.google_ads.v5.proto.services.campaign_feed_service_pb2', + CampaignLabel='google.ads.google_ads.v5.proto.resources.campaign_label_pb2', + CampaignLabelOperation='google.ads.google_ads.v5.proto.services.campaign_label_service_pb2', + CampaignOperation='google.ads.google_ads.v5.proto.services.campaign_service_pb2', + CampaignServingStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_serving_status_pb2', + CampaignSharedSet='google.ads.google_ads.v5.proto.resources.campaign_shared_set_pb2', + CampaignSharedSetErrorEnum='google.ads.google_ads.v5.proto.errors.campaign_shared_set_error_pb2', + CampaignSharedSetOperation='google.ads.google_ads.v5.proto.services.campaign_shared_set_service_pb2', + CampaignSharedSetStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_shared_set_status_pb2', + CampaignStatusEnum='google.ads.google_ads.v5.proto.enums.campaign_status_pb2', + CarrierConstant='google.ads.google_ads.v5.proto.resources.carrier_constant_pb2', + CarrierInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ChangeStatus='google.ads.google_ads.v5.proto.resources.change_status_pb2', + ChangeStatusErrorEnum='google.ads.google_ads.v5.proto.errors.change_status_error_pb2', + ChangeStatusOperationEnum='google.ads.google_ads.v5.proto.enums.change_status_operation_pb2', + ChangeStatusResourceTypeEnum='google.ads.google_ads.v5.proto.enums.change_status_resource_type_pb2', + ClickConversion='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + ClickConversionResult='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + ClickLocation='google.ads.google_ads.v5.proto.common.click_location_pb2', + ClickTypeEnum='google.ads.google_ads.v5.proto.enums.click_type_pb2', + ClickView='google.ads.google_ads.v5.proto.resources.click_view_pb2', + CollectionSizeErrorEnum='google.ads.google_ads.v5.proto.errors.collection_size_error_pb2', + CombinedRuleUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + Commission='google.ads.google_ads.v5.proto.common.bidding_pb2', + ContentLabelInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ContentLabelTypeEnum='google.ads.google_ads.v5.proto.enums.content_label_type_pb2', + ContextErrorEnum='google.ads.google_ads.v5.proto.errors.context_error_pb2', + ConversionAction='google.ads.google_ads.v5.proto.resources.conversion_action_pb2', + ConversionActionCategoryEnum='google.ads.google_ads.v5.proto.enums.conversion_action_category_pb2', + ConversionActionCountingTypeEnum='google.ads.google_ads.v5.proto.enums.conversion_action_counting_type_pb2', + ConversionActionErrorEnum='google.ads.google_ads.v5.proto.errors.conversion_action_error_pb2', + ConversionActionOperation='google.ads.google_ads.v5.proto.services.conversion_action_service_pb2', + ConversionActionStatusEnum='google.ads.google_ads.v5.proto.enums.conversion_action_status_pb2', + ConversionActionTypeEnum='google.ads.google_ads.v5.proto.enums.conversion_action_type_pb2', + ConversionAdjustment='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + ConversionAdjustmentResult='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + ConversionAdjustmentTypeEnum='google.ads.google_ads.v5.proto.enums.conversion_adjustment_type_pb2', + ConversionAdjustmentUploadErrorEnum='google.ads.google_ads.v5.proto.errors.conversion_adjustment_upload_error_pb2', + ConversionAttributionEventTypeEnum='google.ads.google_ads.v5.proto.enums.conversion_attribution_event_type_pb2', + ConversionLagBucketEnum='google.ads.google_ads.v5.proto.enums.conversion_lag_bucket_pb2', + ConversionOrAdjustmentLagBucketEnum='google.ads.google_ads.v5.proto.enums.conversion_or_adjustment_lag_bucket_pb2', + ConversionTrackingSetting='google.ads.google_ads.v5.proto.resources.customer_pb2', + ConversionUploadErrorEnum='google.ads.google_ads.v5.proto.errors.conversion_upload_error_pb2', + CountryCodeErrorEnum='google.ads.google_ads.v5.proto.errors.country_code_error_pb2', + CpcBidSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + CpcBidSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + CpvBidSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + CpvBidSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + CreateAccountLinkRequest='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + CreateAccountLinkResponse='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + CreateCampaignExperimentMetadata='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + CreateCampaignExperimentRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + CreateCustomerClientRequest='google.ads.google_ads.v5.proto.services.customer_service_pb2', + CreateCustomerClientResponse='google.ads.google_ads.v5.proto.services.customer_service_pb2', + CreateOfflineUserDataJobRequest='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + CreateOfflineUserDataJobResponse='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + CriterionCategoryAvailability='google.ads.google_ads.v5.proto.common.criterion_category_availability_pb2', + CriterionCategoryChannelAvailability='google.ads.google_ads.v5.proto.common.criterion_category_availability_pb2', + CriterionCategoryChannelAvailabilityModeEnum='google.ads.google_ads.v5.proto.enums.criterion_category_channel_availability_mode_pb2', + CriterionCategoryLocaleAvailability='google.ads.google_ads.v5.proto.common.criterion_category_availability_pb2', + CriterionCategoryLocaleAvailabilityModeEnum='google.ads.google_ads.v5.proto.enums.criterion_category_locale_availability_mode_pb2', + CriterionErrorEnum='google.ads.google_ads.v5.proto.errors.criterion_error_pb2', + CriterionSystemServingStatusEnum='google.ads.google_ads.v5.proto.enums.criterion_system_serving_status_pb2', + CriterionTypeEnum='google.ads.google_ads.v5.proto.enums.criterion_type_pb2', + CrmBasedUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + CurrencyCodeErrorEnum='google.ads.google_ads.v5.proto.errors.currency_code_error_pb2', + CurrencyConstant='google.ads.google_ads.v5.proto.resources.currency_constant_pb2', + CustomAffinityInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + CustomIntentInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + CustomInterest='google.ads.google_ads.v5.proto.resources.custom_interest_pb2', + CustomInterestErrorEnum='google.ads.google_ads.v5.proto.errors.custom_interest_error_pb2', + CustomInterestMember='google.ads.google_ads.v5.proto.resources.custom_interest_pb2', + CustomInterestMemberTypeEnum='google.ads.google_ads.v5.proto.enums.custom_interest_member_type_pb2', + CustomInterestOperation='google.ads.google_ads.v5.proto.services.custom_interest_service_pb2', + CustomInterestStatusEnum='google.ads.google_ads.v5.proto.enums.custom_interest_status_pb2', + CustomInterestTypeEnum='google.ads.google_ads.v5.proto.enums.custom_interest_type_pb2', + CustomParameter='google.ads.google_ads.v5.proto.common.custom_parameter_pb2', + CustomPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.custom_placeholder_field_pb2', + Customer='google.ads.google_ads.v5.proto.resources.customer_pb2', + CustomerClient='google.ads.google_ads.v5.proto.resources.customer_client_pb2', + CustomerClientLink='google.ads.google_ads.v5.proto.resources.customer_client_link_pb2', + CustomerClientLinkErrorEnum='google.ads.google_ads.v5.proto.errors.customer_client_link_error_pb2', + CustomerClientLinkOperation='google.ads.google_ads.v5.proto.services.customer_client_link_service_pb2', + CustomerErrorEnum='google.ads.google_ads.v5.proto.errors.customer_error_pb2', + CustomerExtensionSetting='google.ads.google_ads.v5.proto.resources.customer_extension_setting_pb2', + CustomerExtensionSettingOperation='google.ads.google_ads.v5.proto.services.customer_extension_setting_service_pb2', + CustomerFeed='google.ads.google_ads.v5.proto.resources.customer_feed_pb2', + CustomerFeedErrorEnum='google.ads.google_ads.v5.proto.errors.customer_feed_error_pb2', + CustomerFeedOperation='google.ads.google_ads.v5.proto.services.customer_feed_service_pb2', + CustomerLabel='google.ads.google_ads.v5.proto.resources.customer_label_pb2', + CustomerLabelOperation='google.ads.google_ads.v5.proto.services.customer_label_service_pb2', + CustomerManagerLink='google.ads.google_ads.v5.proto.resources.customer_manager_link_pb2', + CustomerManagerLinkErrorEnum='google.ads.google_ads.v5.proto.errors.customer_manager_link_error_pb2', + CustomerManagerLinkOperation='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + CustomerMatchUploadKeyTypeEnum='google.ads.google_ads.v5.proto.enums.customer_match_upload_key_type_pb2', + CustomerMatchUserListMetadata='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + CustomerNegativeCriterion='google.ads.google_ads.v5.proto.resources.customer_negative_criterion_pb2', + CustomerNegativeCriterionOperation='google.ads.google_ads.v5.proto.services.customer_negative_criterion_service_pb2', + CustomerOperation='google.ads.google_ads.v5.proto.services.customer_service_pb2', + CustomerPayPerConversionEligibilityFailureReasonEnum='google.ads.google_ads.v5.proto.enums.customer_pay_per_conversion_eligibility_failure_reason_pb2', + DataDrivenModelStatusEnum='google.ads.google_ads.v5.proto.enums.data_driven_model_status_pb2', + DataPartnerLinkIdentifier='google.ads.google_ads.v5.proto.resources.account_link_pb2', + DatabaseErrorEnum='google.ads.google_ads.v5.proto.errors.database_error_pb2', + DateErrorEnum='google.ads.google_ads.v5.proto.errors.date_error_pb2', + DateRange='google.ads.google_ads.v5.proto.common.dates_pb2', + DateRangeErrorEnum='google.ads.google_ads.v5.proto.errors.date_range_error_pb2', + DateSpecificRuleUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + DayOfWeekEnum='google.ads.google_ads.v5.proto.enums.day_of_week_pb2', + DetailPlacementView='google.ads.google_ads.v5.proto.resources.detail_placement_view_pb2', + DeviceEnum='google.ads.google_ads.v5.proto.enums.device_pb2', + DeviceInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + DismissRecommendationRequest='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + DismissRecommendationResponse='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + DisplayAdFormatSettingEnum='google.ads.google_ads.v5.proto.enums.display_ad_format_setting_pb2', + DisplayCallToAction='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + DisplayKeywordView='google.ads.google_ads.v5.proto.resources.display_keyword_view_pb2', + DisplayUploadAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + DisplayUploadProductTypeEnum='google.ads.google_ads.v5.proto.enums.display_upload_product_type_pb2', + DistanceBucketEnum='google.ads.google_ads.v5.proto.enums.distance_bucket_pb2', + DistanceView='google.ads.google_ads.v5.proto.resources.distance_view_pb2', + DistinctErrorEnum='google.ads.google_ads.v5.proto.errors.distinct_error_pb2', + DomainCategory='google.ads.google_ads.v5.proto.resources.domain_category_pb2', + DsaPageFeedCriterionFieldEnum='google.ads.google_ads.v5.proto.enums.dsa_page_feed_criterion_field_pb2', + DynamicSearchAdsSearchTermView='google.ads.google_ads.v5.proto.resources.dynamic_search_ads_search_term_view_pb2', + EducationPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.education_placeholder_field_pb2', + EndCampaignExperimentRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + EnhancedCpc='google.ads.google_ads.v5.proto.common.bidding_pb2', + EnumErrorEnum='google.ads.google_ads.v5.proto.errors.enum_error_pb2', + ErrorCode='google.ads.google_ads.v5.proto.errors.errors_pb2', + ErrorDetails='google.ads.google_ads.v5.proto.errors.errors_pb2', + ErrorLocation='google.ads.google_ads.v5.proto.errors.errors_pb2', + ExpandedDynamicSearchAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ExpandedLandingPageView='google.ads.google_ads.v5.proto.resources.expanded_landing_page_view_pb2', + ExpandedTextAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ExplorerAutoOptimizerSetting='google.ads.google_ads.v5.proto.common.explorer_auto_optimizer_setting_pb2', + ExpressionRuleUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + ExtensionFeedItem='google.ads.google_ads.v5.proto.resources.extension_feed_item_pb2', + ExtensionFeedItemErrorEnum='google.ads.google_ads.v5.proto.errors.extension_feed_item_error_pb2', + ExtensionFeedItemOperation='google.ads.google_ads.v5.proto.services.extension_feed_item_service_pb2', + ExtensionSettingDeviceEnum='google.ads.google_ads.v5.proto.enums.extension_setting_device_pb2', + ExtensionSettingErrorEnum='google.ads.google_ads.v5.proto.errors.extension_setting_error_pb2', + ExtensionTypeEnum='google.ads.google_ads.v5.proto.enums.extension_type_pb2', + ExternalAttributionData='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + ExternalConversionSourceEnum='google.ads.google_ads.v5.proto.enums.external_conversion_source_pb2', + Feed='google.ads.google_ads.v5.proto.resources.feed_pb2', + FeedAttribute='google.ads.google_ads.v5.proto.resources.feed_pb2', + FeedAttributeOperation='google.ads.google_ads.v5.proto.resources.feed_pb2', + FeedAttributeReferenceErrorEnum='google.ads.google_ads.v5.proto.errors.feed_attribute_reference_error_pb2', + FeedAttributeTypeEnum='google.ads.google_ads.v5.proto.enums.feed_attribute_type_pb2', + FeedErrorEnum='google.ads.google_ads.v5.proto.errors.feed_error_pb2', + FeedItem='google.ads.google_ads.v5.proto.resources.feed_item_pb2', + FeedItemAttributeValue='google.ads.google_ads.v5.proto.resources.feed_item_pb2', + FeedItemErrorEnum='google.ads.google_ads.v5.proto.errors.feed_item_error_pb2', + FeedItemOperation='google.ads.google_ads.v5.proto.services.feed_item_service_pb2', + FeedItemPlaceholderPolicyInfo='google.ads.google_ads.v5.proto.resources.feed_item_pb2', + FeedItemQualityApprovalStatusEnum='google.ads.google_ads.v5.proto.enums.feed_item_quality_approval_status_pb2', + FeedItemQualityDisapprovalReasonEnum='google.ads.google_ads.v5.proto.enums.feed_item_quality_disapproval_reason_pb2', + FeedItemStatusEnum='google.ads.google_ads.v5.proto.enums.feed_item_status_pb2', + FeedItemTarget='google.ads.google_ads.v5.proto.resources.feed_item_target_pb2', + FeedItemTargetDeviceEnum='google.ads.google_ads.v5.proto.enums.feed_item_target_device_pb2', + FeedItemTargetErrorEnum='google.ads.google_ads.v5.proto.errors.feed_item_target_error_pb2', + FeedItemTargetOperation='google.ads.google_ads.v5.proto.services.feed_item_target_service_pb2', + FeedItemTargetStatusEnum='google.ads.google_ads.v5.proto.enums.feed_item_target_status_pb2', + FeedItemTargetTypeEnum='google.ads.google_ads.v5.proto.enums.feed_item_target_type_pb2', + FeedItemValidationError='google.ads.google_ads.v5.proto.resources.feed_item_pb2', + FeedItemValidationErrorEnum='google.ads.google_ads.v5.proto.errors.feed_item_validation_error_pb2', + FeedItemValidationStatusEnum='google.ads.google_ads.v5.proto.enums.feed_item_validation_status_pb2', + FeedLinkStatusEnum='google.ads.google_ads.v5.proto.enums.feed_link_status_pb2', + FeedMapping='google.ads.google_ads.v5.proto.resources.feed_mapping_pb2', + FeedMappingCriterionTypeEnum='google.ads.google_ads.v5.proto.enums.feed_mapping_criterion_type_pb2', + FeedMappingErrorEnum='google.ads.google_ads.v5.proto.errors.feed_mapping_error_pb2', + FeedMappingOperation='google.ads.google_ads.v5.proto.services.feed_mapping_service_pb2', + FeedMappingStatusEnum='google.ads.google_ads.v5.proto.enums.feed_mapping_status_pb2', + FeedOperation='google.ads.google_ads.v5.proto.services.feed_service_pb2', + FeedOriginEnum='google.ads.google_ads.v5.proto.enums.feed_origin_pb2', + FeedPlaceholderView='google.ads.google_ads.v5.proto.resources.feed_placeholder_view_pb2', + FeedStatusEnum='google.ads.google_ads.v5.proto.enums.feed_status_pb2', + FieldErrorEnum='google.ads.google_ads.v5.proto.errors.field_error_pb2', + FieldMaskErrorEnum='google.ads.google_ads.v5.proto.errors.field_mask_error_pb2', + FinalAppUrl='google.ads.google_ads.v5.proto.common.final_app_url_pb2', + FlightPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.flight_placeholder_field_pb2', + Forecast='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ForecastMetrics='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + FrequencyCap='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + FrequencyCapEntry='google.ads.google_ads.v5.proto.common.frequency_cap_pb2', + FrequencyCapEventTypeEnum='google.ads.google_ads.v5.proto.enums.frequency_cap_event_type_pb2', + FrequencyCapKey='google.ads.google_ads.v5.proto.common.frequency_cap_pb2', + FrequencyCapLevelEnum='google.ads.google_ads.v5.proto.enums.frequency_cap_level_pb2', + FrequencyCapTimeUnitEnum='google.ads.google_ads.v5.proto.enums.frequency_cap_time_unit_pb2', + FunctionErrorEnum='google.ads.google_ads.v5.proto.errors.function_error_pb2', + FunctionParsingErrorEnum='google.ads.google_ads.v5.proto.errors.function_parsing_error_pb2', + GclidDateTimePair='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + GenderInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + GenderTypeEnum='google.ads.google_ads.v5.proto.enums.gender_type_pb2', + GenderView='google.ads.google_ads.v5.proto.resources.gender_view_pb2', + GenerateForecastCurveRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateForecastCurveResponse='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateForecastMetricsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateForecastMetricsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateForecastTimeSeriesRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateForecastTimeSeriesResponse='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateHistoricalMetricsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateHistoricalMetricsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GenerateKeywordIdeaResponse='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + GenerateKeywordIdeaResult='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + GenerateKeywordIdeasRequest='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + GenerateProductMixIdeasRequest='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + GenerateProductMixIdeasResponse='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + GenerateReachForecastRequest='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + GenerateReachForecastResponse='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + GeoPointInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + GeoTargetConstant='google.ads.google_ads.v5.proto.resources.geo_target_constant_pb2', + GeoTargetConstantStatusEnum='google.ads.google_ads.v5.proto.enums.geo_target_constant_status_pb2', + GeoTargetConstantSuggestion='google.ads.google_ads.v5.proto.services.geo_target_constant_service_pb2', + GeoTargetConstantSuggestionErrorEnum='google.ads.google_ads.v5.proto.errors.geo_target_constant_suggestion_error_pb2', + GeoTargetingRestrictionEnum='google.ads.google_ads.v5.proto.enums.geo_targeting_restriction_pb2', + GeoTargetingTypeEnum='google.ads.google_ads.v5.proto.enums.geo_targeting_type_pb2', + GeographicView='google.ads.google_ads.v5.proto.resources.geographic_view_pb2', + GetAccountBudgetProposalRequest='google.ads.google_ads.v5.proto.services.account_budget_proposal_service_pb2', + GetAccountBudgetRequest='google.ads.google_ads.v5.proto.services.account_budget_service_pb2', + GetAccountLinkRequest='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + GetAdGroupAdAssetViewRequest='google.ads.google_ads.v5.proto.services.ad_group_ad_asset_view_service_pb2', + GetAdGroupAdLabelRequest='google.ads.google_ads.v5.proto.services.ad_group_ad_label_service_pb2', + GetAdGroupAdRequest='google.ads.google_ads.v5.proto.services.ad_group_ad_service_pb2', + GetAdGroupAudienceViewRequest='google.ads.google_ads.v5.proto.services.ad_group_audience_view_service_pb2', + GetAdGroupBidModifierRequest='google.ads.google_ads.v5.proto.services.ad_group_bid_modifier_service_pb2', + GetAdGroupCriterionLabelRequest='google.ads.google_ads.v5.proto.services.ad_group_criterion_label_service_pb2', + GetAdGroupCriterionRequest='google.ads.google_ads.v5.proto.services.ad_group_criterion_service_pb2', + GetAdGroupCriterionSimulationRequest='google.ads.google_ads.v5.proto.services.ad_group_criterion_simulation_service_pb2', + GetAdGroupExtensionSettingRequest='google.ads.google_ads.v5.proto.services.ad_group_extension_setting_service_pb2', + GetAdGroupFeedRequest='google.ads.google_ads.v5.proto.services.ad_group_feed_service_pb2', + GetAdGroupLabelRequest='google.ads.google_ads.v5.proto.services.ad_group_label_service_pb2', + GetAdGroupRequest='google.ads.google_ads.v5.proto.services.ad_group_service_pb2', + GetAdGroupSimulationRequest='google.ads.google_ads.v5.proto.services.ad_group_simulation_service_pb2', + GetAdParameterRequest='google.ads.google_ads.v5.proto.services.ad_parameter_service_pb2', + GetAdRequest='google.ads.google_ads.v5.proto.services.ad_service_pb2', + GetAdScheduleViewRequest='google.ads.google_ads.v5.proto.services.ad_schedule_view_service_pb2', + GetAgeRangeViewRequest='google.ads.google_ads.v5.proto.services.age_range_view_service_pb2', + GetAssetRequest='google.ads.google_ads.v5.proto.services.asset_service_pb2', + GetBatchJobRequest='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + GetBiddingStrategyRequest='google.ads.google_ads.v5.proto.services.bidding_strategy_service_pb2', + GetBillingSetupRequest='google.ads.google_ads.v5.proto.services.billing_setup_service_pb2', + GetCampaignAssetRequest='google.ads.google_ads.v5.proto.services.campaign_asset_service_pb2', + GetCampaignAudienceViewRequest='google.ads.google_ads.v5.proto.services.campaign_audience_view_service_pb2', + GetCampaignBidModifierRequest='google.ads.google_ads.v5.proto.services.campaign_bid_modifier_service_pb2', + GetCampaignBudgetRequest='google.ads.google_ads.v5.proto.services.campaign_budget_service_pb2', + GetCampaignCriterionRequest='google.ads.google_ads.v5.proto.services.campaign_criterion_service_pb2', + GetCampaignCriterionSimulationRequest='google.ads.google_ads.v5.proto.services.campaign_criterion_simulation_service_pb2', + GetCampaignDraftRequest='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + GetCampaignExperimentRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + GetCampaignExtensionSettingRequest='google.ads.google_ads.v5.proto.services.campaign_extension_setting_service_pb2', + GetCampaignFeedRequest='google.ads.google_ads.v5.proto.services.campaign_feed_service_pb2', + GetCampaignLabelRequest='google.ads.google_ads.v5.proto.services.campaign_label_service_pb2', + GetCampaignRequest='google.ads.google_ads.v5.proto.services.campaign_service_pb2', + GetCampaignSharedSetRequest='google.ads.google_ads.v5.proto.services.campaign_shared_set_service_pb2', + GetCarrierConstantRequest='google.ads.google_ads.v5.proto.services.carrier_constant_service_pb2', + GetChangeStatusRequest='google.ads.google_ads.v5.proto.services.change_status_service_pb2', + GetClickViewRequest='google.ads.google_ads.v5.proto.services.click_view_service_pb2', + GetConversionActionRequest='google.ads.google_ads.v5.proto.services.conversion_action_service_pb2', + GetCurrencyConstantRequest='google.ads.google_ads.v5.proto.services.currency_constant_service_pb2', + GetCustomInterestRequest='google.ads.google_ads.v5.proto.services.custom_interest_service_pb2', + GetCustomerClientLinkRequest='google.ads.google_ads.v5.proto.services.customer_client_link_service_pb2', + GetCustomerClientRequest='google.ads.google_ads.v5.proto.services.customer_client_service_pb2', + GetCustomerExtensionSettingRequest='google.ads.google_ads.v5.proto.services.customer_extension_setting_service_pb2', + GetCustomerFeedRequest='google.ads.google_ads.v5.proto.services.customer_feed_service_pb2', + GetCustomerLabelRequest='google.ads.google_ads.v5.proto.services.customer_label_service_pb2', + GetCustomerManagerLinkRequest='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + GetCustomerNegativeCriterionRequest='google.ads.google_ads.v5.proto.services.customer_negative_criterion_service_pb2', + GetCustomerRequest='google.ads.google_ads.v5.proto.services.customer_service_pb2', + GetDetailPlacementViewRequest='google.ads.google_ads.v5.proto.services.detail_placement_view_service_pb2', + GetDisplayKeywordViewRequest='google.ads.google_ads.v5.proto.services.display_keyword_view_service_pb2', + GetDistanceViewRequest='google.ads.google_ads.v5.proto.services.distance_view_service_pb2', + GetDomainCategoryRequest='google.ads.google_ads.v5.proto.services.domain_category_service_pb2', + GetDynamicSearchAdsSearchTermViewRequest='google.ads.google_ads.v5.proto.services.dynamic_search_ads_search_term_view_service_pb2', + GetExpandedLandingPageViewRequest='google.ads.google_ads.v5.proto.services.expanded_landing_page_view_service_pb2', + GetExtensionFeedItemRequest='google.ads.google_ads.v5.proto.services.extension_feed_item_service_pb2', + GetFeedItemRequest='google.ads.google_ads.v5.proto.services.feed_item_service_pb2', + GetFeedItemTargetRequest='google.ads.google_ads.v5.proto.services.feed_item_target_service_pb2', + GetFeedMappingRequest='google.ads.google_ads.v5.proto.services.feed_mapping_service_pb2', + GetFeedPlaceholderViewRequest='google.ads.google_ads.v5.proto.services.feed_placeholder_view_service_pb2', + GetFeedRequest='google.ads.google_ads.v5.proto.services.feed_service_pb2', + GetGenderViewRequest='google.ads.google_ads.v5.proto.services.gender_view_service_pb2', + GetGeoTargetConstantRequest='google.ads.google_ads.v5.proto.services.geo_target_constant_service_pb2', + GetGeographicViewRequest='google.ads.google_ads.v5.proto.services.geographic_view_service_pb2', + GetGoogleAdsFieldRequest='google.ads.google_ads.v5.proto.services.google_ads_field_service_pb2', + GetGroupPlacementViewRequest='google.ads.google_ads.v5.proto.services.group_placement_view_service_pb2', + GetHotelGroupViewRequest='google.ads.google_ads.v5.proto.services.hotel_group_view_service_pb2', + GetHotelPerformanceViewRequest='google.ads.google_ads.v5.proto.services.hotel_performance_view_service_pb2', + GetIncomeRangeViewRequest='google.ads.google_ads.v5.proto.services.income_range_view_service_pb2', + GetKeywordPlanAdGroupKeywordRequest='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_keyword_service_pb2', + GetKeywordPlanAdGroupRequest='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_service_pb2', + GetKeywordPlanCampaignKeywordRequest='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_keyword_service_pb2', + GetKeywordPlanCampaignRequest='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_service_pb2', + GetKeywordPlanRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + GetKeywordViewRequest='google.ads.google_ads.v5.proto.services.keyword_view_service_pb2', + GetLabelRequest='google.ads.google_ads.v5.proto.services.label_service_pb2', + GetLandingPageViewRequest='google.ads.google_ads.v5.proto.services.landing_page_view_service_pb2', + GetLanguageConstantRequest='google.ads.google_ads.v5.proto.services.language_constant_service_pb2', + GetLocationViewRequest='google.ads.google_ads.v5.proto.services.location_view_service_pb2', + GetManagedPlacementViewRequest='google.ads.google_ads.v5.proto.services.managed_placement_view_service_pb2', + GetMediaFileRequest='google.ads.google_ads.v5.proto.services.media_file_service_pb2', + GetMerchantCenterLinkRequest='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + GetMobileAppCategoryConstantRequest='google.ads.google_ads.v5.proto.services.mobile_app_category_constant_service_pb2', + GetMobileDeviceConstantRequest='google.ads.google_ads.v5.proto.services.mobile_device_constant_service_pb2', + GetOfflineUserDataJobRequest='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + GetOperatingSystemVersionConstantRequest='google.ads.google_ads.v5.proto.services.operating_system_version_constant_service_pb2', + GetPaidOrganicSearchTermViewRequest='google.ads.google_ads.v5.proto.services.paid_organic_search_term_view_service_pb2', + GetParentalStatusViewRequest='google.ads.google_ads.v5.proto.services.parental_status_view_service_pb2', + GetProductBiddingCategoryConstantRequest='google.ads.google_ads.v5.proto.services.product_bidding_category_constant_service_pb2', + GetProductGroupViewRequest='google.ads.google_ads.v5.proto.services.product_group_view_service_pb2', + GetRecommendationRequest='google.ads.google_ads.v5.proto.services.recommendation_service_pb2', + GetRemarketingActionRequest='google.ads.google_ads.v5.proto.services.remarketing_action_service_pb2', + GetSearchTermViewRequest='google.ads.google_ads.v5.proto.services.search_term_view_service_pb2', + GetSharedCriterionRequest='google.ads.google_ads.v5.proto.services.shared_criterion_service_pb2', + GetSharedSetRequest='google.ads.google_ads.v5.proto.services.shared_set_service_pb2', + GetShoppingPerformanceViewRequest='google.ads.google_ads.v5.proto.services.shopping_performance_view_service_pb2', + GetThirdPartyAppAnalyticsLinkRequest='google.ads.google_ads.v5.proto.services.third_party_app_analytics_link_service_pb2', + GetTopicConstantRequest='google.ads.google_ads.v5.proto.services.topic_constant_service_pb2', + GetTopicViewRequest='google.ads.google_ads.v5.proto.services.topic_view_service_pb2', + GetUserInterestRequest='google.ads.google_ads.v5.proto.services.user_interest_service_pb2', + GetUserListRequest='google.ads.google_ads.v5.proto.services.user_list_service_pb2', + GetUserLocationViewRequest='google.ads.google_ads.v5.proto.services.user_location_view_service_pb2', + GetVideoRequest='google.ads.google_ads.v5.proto.services.video_service_pb2', + GmailAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + GmailTeaser='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + GoogleAdsError='google.ads.google_ads.v5.proto.errors.errors_pb2', + GoogleAdsFailure='google.ads.google_ads.v5.proto.errors.errors_pb2', + GoogleAdsField='google.ads.google_ads.v5.proto.resources.google_ads_field_pb2', + GoogleAdsFieldCategoryEnum='google.ads.google_ads.v5.proto.enums.google_ads_field_category_pb2', + GoogleAdsFieldDataTypeEnum='google.ads.google_ads.v5.proto.enums.google_ads_field_data_type_pb2', + GoogleAdsLinkIdentifier='google.ads.google_ads.v5.proto.resources.account_link_pb2', + GoogleAdsRow='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + GraduateCampaignExperimentRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + GraduateCampaignExperimentResponse='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + GroupPlacementView='google.ads.google_ads.v5.proto.resources.group_placement_view_pb2', + HeaderErrorEnum='google.ads.google_ads.v5.proto.errors.header_error_pb2', + HotelAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + HotelAdvanceBookingWindowInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelCalloutFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + HotelCheckInDayInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelCityInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelClassInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelCountryRegionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelDateSelectionTypeEnum='google.ads.google_ads.v5.proto.enums.hotel_date_selection_type_pb2', + HotelDateSelectionTypeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelGroupView='google.ads.google_ads.v5.proto.resources.hotel_group_view_pb2', + HotelIdInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelLengthOfStayInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + HotelPerformanceView='google.ads.google_ads.v5.proto.resources.hotel_performance_view_pb2', + HotelPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.hotel_placeholder_field_pb2', + HotelPriceBucketEnum='google.ads.google_ads.v5.proto.enums.hotel_price_bucket_pb2', + HotelRateTypeEnum='google.ads.google_ads.v5.proto.enums.hotel_rate_type_pb2', + HotelStateInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + IdErrorEnum='google.ads.google_ads.v5.proto.errors.id_error_pb2', + ImageAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ImageAsset='google.ads.google_ads.v5.proto.common.asset_types_pb2', + ImageDimension='google.ads.google_ads.v5.proto.common.asset_types_pb2', + ImageErrorEnum='google.ads.google_ads.v5.proto.errors.image_error_pb2', + IncomeRangeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + IncomeRangeTypeEnum='google.ads.google_ads.v5.proto.enums.income_range_type_pb2', + IncomeRangeView='google.ads.google_ads.v5.proto.resources.income_range_view_pb2', + InteractionEventTypeEnum='google.ads.google_ads.v5.proto.enums.interaction_event_type_pb2', + InteractionTypeEnum='google.ads.google_ads.v5.proto.enums.interaction_type_pb2', + InteractionTypeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + InternalErrorEnum='google.ads.google_ads.v5.proto.errors.internal_error_pb2', + Invoice='google.ads.google_ads.v5.proto.resources.invoice_pb2', + InvoiceErrorEnum='google.ads.google_ads.v5.proto.errors.invoice_error_pb2', + InvoiceTypeEnum='google.ads.google_ads.v5.proto.enums.invoice_type_pb2', + IpBlockInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + JobPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.job_placeholder_field_pb2', + Keyword='google.ads.google_ads.v5.proto.common.segments_pb2', + KeywordAndUrlSeed='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + KeywordInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + KeywordMatchTypeEnum='google.ads.google_ads.v5.proto.enums.keyword_match_type_pb2', + KeywordPlan='google.ads.google_ads.v5.proto.resources.keyword_plan_pb2', + KeywordPlanAdGroup='google.ads.google_ads.v5.proto.resources.keyword_plan_ad_group_pb2', + KeywordPlanAdGroupErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_ad_group_error_pb2', + KeywordPlanAdGroupForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanAdGroupKeyword='google.ads.google_ads.v5.proto.resources.keyword_plan_ad_group_keyword_pb2', + KeywordPlanAdGroupKeywordErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_ad_group_keyword_error_pb2', + KeywordPlanAdGroupKeywordOperation='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_keyword_service_pb2', + KeywordPlanAdGroupOperation='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_service_pb2', + KeywordPlanCampaign='google.ads.google_ads.v5.proto.resources.keyword_plan_campaign_pb2', + KeywordPlanCampaignErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_campaign_error_pb2', + KeywordPlanCampaignForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanCampaignForecastCurve='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanCampaignKeyword='google.ads.google_ads.v5.proto.resources.keyword_plan_campaign_keyword_pb2', + KeywordPlanCampaignKeywordErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_campaign_keyword_error_pb2', + KeywordPlanCampaignKeywordOperation='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_keyword_service_pb2', + KeywordPlanCampaignOperation='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_service_pb2', + KeywordPlanCompetitionLevelEnum='google.ads.google_ads.v5.proto.enums.keyword_plan_competition_level_pb2', + KeywordPlanErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_error_pb2', + KeywordPlanForecastIntervalEnum='google.ads.google_ads.v5.proto.enums.keyword_plan_forecast_interval_pb2', + KeywordPlanForecastPeriod='google.ads.google_ads.v5.proto.resources.keyword_plan_pb2', + KeywordPlanGeoTarget='google.ads.google_ads.v5.proto.resources.keyword_plan_campaign_pb2', + KeywordPlanHistoricalMetrics='google.ads.google_ads.v5.proto.common.keyword_plan_common_pb2', + KeywordPlanIdeaErrorEnum='google.ads.google_ads.v5.proto.errors.keyword_plan_idea_error_pb2', + KeywordPlanKeywordForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanKeywordHistoricalMetrics='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanMaxCpcBidForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanMaxCpcBidForecastCurve='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanNetworkEnum='google.ads.google_ads.v5.proto.enums.keyword_plan_network_pb2', + KeywordPlanOperation='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanWeeklyForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordPlanWeeklyTimeSeriesForecast='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + KeywordSeed='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + KeywordView='google.ads.google_ads.v5.proto.resources.keyword_view_pb2', + Label='google.ads.google_ads.v5.proto.resources.label_pb2', + LabelErrorEnum='google.ads.google_ads.v5.proto.errors.label_error_pb2', + LabelOperation='google.ads.google_ads.v5.proto.services.label_service_pb2', + LabelStatusEnum='google.ads.google_ads.v5.proto.enums.label_status_pb2', + LandingPageView='google.ads.google_ads.v5.proto.resources.landing_page_view_pb2', + LanguageCodeErrorEnum='google.ads.google_ads.v5.proto.errors.language_code_error_pb2', + LanguageConstant='google.ads.google_ads.v5.proto.resources.language_constant_pb2', + LanguageInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + LegacyAppInstallAdAppStoreEnum='google.ads.google_ads.v5.proto.enums.legacy_app_install_ad_app_store_pb2', + LegacyAppInstallAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + LegacyResponsiveDisplayAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + LinkedAccountTypeEnum='google.ads.google_ads.v5.proto.enums.linked_account_type_pb2', + ListAccessibleCustomersRequest='google.ads.google_ads.v5.proto.services.customer_service_pb2', + ListAccessibleCustomersResponse='google.ads.google_ads.v5.proto.services.customer_service_pb2', + ListBatchJobResultsRequest='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + ListBatchJobResultsResponse='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + ListCampaignDraftAsyncErrorsRequest='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + ListCampaignDraftAsyncErrorsResponse='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + ListCampaignExperimentAsyncErrorsRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + ListCampaignExperimentAsyncErrorsResponse='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + ListInvoicesRequest='google.ads.google_ads.v5.proto.services.invoice_service_pb2', + ListInvoicesResponse='google.ads.google_ads.v5.proto.services.invoice_service_pb2', + ListMerchantCenterLinksRequest='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + ListMerchantCenterLinksResponse='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + ListOperationErrorEnum='google.ads.google_ads.v5.proto.errors.list_operation_error_pb2', + ListPaymentsAccountsRequest='google.ads.google_ads.v5.proto.services.payments_account_service_pb2', + ListPaymentsAccountsResponse='google.ads.google_ads.v5.proto.services.payments_account_service_pb2', + ListPlannableLocationsRequest='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ListPlannableLocationsResponse='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ListPlannableProductsRequest='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ListPlannableProductsResponse='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ListingDimensionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ListingGroupInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ListingGroupTypeEnum='google.ads.google_ads.v5.proto.enums.listing_group_type_pb2', + ListingScopeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + LocalAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + LocalPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.local_placeholder_field_pb2', + LocationExtensionTargetingCriterionFieldEnum='google.ads.google_ads.v5.proto.enums.location_extension_targeting_criterion_field_pb2', + LocationFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + LocationGroupInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + LocationGroupRadiusUnitsEnum='google.ads.google_ads.v5.proto.enums.location_group_radius_units_pb2', + LocationInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + LocationPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.location_placeholder_field_pb2', + LocationSourceTypeEnum='google.ads.google_ads.v5.proto.enums.location_source_type_pb2', + LocationView='google.ads.google_ads.v5.proto.resources.location_view_pb2', + LogicalUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + LogicalUserListOperandInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + ManagedPlacementView='google.ads.google_ads.v5.proto.resources.managed_placement_view_pb2', + ManagerLinkErrorEnum='google.ads.google_ads.v5.proto.errors.manager_link_error_pb2', + ManagerLinkStatusEnum='google.ads.google_ads.v5.proto.enums.manager_link_status_pb2', + ManualCpc='google.ads.google_ads.v5.proto.common.bidding_pb2', + ManualCpm='google.ads.google_ads.v5.proto.common.bidding_pb2', + ManualCpv='google.ads.google_ads.v5.proto.common.bidding_pb2', + MatchingFunction='google.ads.google_ads.v5.proto.common.matching_function_pb2', + MatchingFunctionContextTypeEnum='google.ads.google_ads.v5.proto.enums.matching_function_context_type_pb2', + MatchingFunctionOperatorEnum='google.ads.google_ads.v5.proto.enums.matching_function_operator_pb2', + MaximizeConversionValue='google.ads.google_ads.v5.proto.common.bidding_pb2', + MaximizeConversions='google.ads.google_ads.v5.proto.common.bidding_pb2', + MediaAudio='google.ads.google_ads.v5.proto.resources.media_file_pb2', + MediaBundle='google.ads.google_ads.v5.proto.resources.media_file_pb2', + MediaBundleAsset='google.ads.google_ads.v5.proto.common.asset_types_pb2', + MediaBundleErrorEnum='google.ads.google_ads.v5.proto.errors.media_bundle_error_pb2', + MediaFile='google.ads.google_ads.v5.proto.resources.media_file_pb2', + MediaFileErrorEnum='google.ads.google_ads.v5.proto.errors.media_file_error_pb2', + MediaFileOperation='google.ads.google_ads.v5.proto.services.media_file_service_pb2', + MediaImage='google.ads.google_ads.v5.proto.resources.media_file_pb2', + MediaTypeEnum='google.ads.google_ads.v5.proto.enums.media_type_pb2', + MediaUploadErrorEnum='google.ads.google_ads.v5.proto.errors.media_upload_error_pb2', + MediaVideo='google.ads.google_ads.v5.proto.resources.media_file_pb2', + MerchantCenterLink='google.ads.google_ads.v5.proto.resources.merchant_center_link_pb2', + MerchantCenterLinkOperation='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + MerchantCenterLinkStatusEnum='google.ads.google_ads.v5.proto.enums.merchant_center_link_status_pb2', + MessagePlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.message_placeholder_field_pb2', + Metrics='google.ads.google_ads.v5.proto.common.metrics_pb2', + MimeTypeEnum='google.ads.google_ads.v5.proto.enums.mime_type_pb2', + MinuteOfHourEnum='google.ads.google_ads.v5.proto.enums.minute_of_hour_pb2', + MobileAppCategoryConstant='google.ads.google_ads.v5.proto.resources.mobile_app_category_constant_pb2', + MobileAppCategoryInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + MobileAppVendorEnum='google.ads.google_ads.v5.proto.enums.mobile_app_vendor_pb2', + MobileApplicationInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + MobileDeviceConstant='google.ads.google_ads.v5.proto.resources.mobile_device_constant_pb2', + MobileDeviceInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + MobileDeviceTypeEnum='google.ads.google_ads.v5.proto.enums.mobile_device_type_pb2', + Money='google.ads.google_ads.v5.proto.common.feed_common_pb2', + MonthOfYearEnum='google.ads.google_ads.v5.proto.enums.month_of_year_pb2', + MonthlySearchVolume='google.ads.google_ads.v5.proto.common.keyword_plan_common_pb2', + MoveManagerLinkRequest='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + MoveManagerLinkResponse='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + MultiplierErrorEnum='google.ads.google_ads.v5.proto.errors.multiplier_error_pb2', + MutateAccountBudgetProposalRequest='google.ads.google_ads.v5.proto.services.account_budget_proposal_service_pb2', + MutateAccountBudgetProposalResponse='google.ads.google_ads.v5.proto.services.account_budget_proposal_service_pb2', + MutateAccountBudgetProposalResult='google.ads.google_ads.v5.proto.services.account_budget_proposal_service_pb2', + MutateAccountLinkRequest='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + MutateAccountLinkResponse='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + MutateAccountLinkResult='google.ads.google_ads.v5.proto.services.account_link_service_pb2', + MutateAdGroupAdLabelResult='google.ads.google_ads.v5.proto.services.ad_group_ad_label_service_pb2', + MutateAdGroupAdLabelsRequest='google.ads.google_ads.v5.proto.services.ad_group_ad_label_service_pb2', + MutateAdGroupAdLabelsResponse='google.ads.google_ads.v5.proto.services.ad_group_ad_label_service_pb2', + MutateAdGroupAdResult='google.ads.google_ads.v5.proto.services.ad_group_ad_service_pb2', + MutateAdGroupAdsRequest='google.ads.google_ads.v5.proto.services.ad_group_ad_service_pb2', + MutateAdGroupAdsResponse='google.ads.google_ads.v5.proto.services.ad_group_ad_service_pb2', + MutateAdGroupBidModifierResult='google.ads.google_ads.v5.proto.services.ad_group_bid_modifier_service_pb2', + MutateAdGroupBidModifiersRequest='google.ads.google_ads.v5.proto.services.ad_group_bid_modifier_service_pb2', + MutateAdGroupBidModifiersResponse='google.ads.google_ads.v5.proto.services.ad_group_bid_modifier_service_pb2', + MutateAdGroupCriteriaRequest='google.ads.google_ads.v5.proto.services.ad_group_criterion_service_pb2', + MutateAdGroupCriteriaResponse='google.ads.google_ads.v5.proto.services.ad_group_criterion_service_pb2', + MutateAdGroupCriterionLabelResult='google.ads.google_ads.v5.proto.services.ad_group_criterion_label_service_pb2', + MutateAdGroupCriterionLabelsRequest='google.ads.google_ads.v5.proto.services.ad_group_criterion_label_service_pb2', + MutateAdGroupCriterionLabelsResponse='google.ads.google_ads.v5.proto.services.ad_group_criterion_label_service_pb2', + MutateAdGroupCriterionResult='google.ads.google_ads.v5.proto.services.ad_group_criterion_service_pb2', + MutateAdGroupExtensionSettingResult='google.ads.google_ads.v5.proto.services.ad_group_extension_setting_service_pb2', + MutateAdGroupExtensionSettingsRequest='google.ads.google_ads.v5.proto.services.ad_group_extension_setting_service_pb2', + MutateAdGroupExtensionSettingsResponse='google.ads.google_ads.v5.proto.services.ad_group_extension_setting_service_pb2', + MutateAdGroupFeedResult='google.ads.google_ads.v5.proto.services.ad_group_feed_service_pb2', + MutateAdGroupFeedsRequest='google.ads.google_ads.v5.proto.services.ad_group_feed_service_pb2', + MutateAdGroupFeedsResponse='google.ads.google_ads.v5.proto.services.ad_group_feed_service_pb2', + MutateAdGroupLabelResult='google.ads.google_ads.v5.proto.services.ad_group_label_service_pb2', + MutateAdGroupLabelsRequest='google.ads.google_ads.v5.proto.services.ad_group_label_service_pb2', + MutateAdGroupLabelsResponse='google.ads.google_ads.v5.proto.services.ad_group_label_service_pb2', + MutateAdGroupResult='google.ads.google_ads.v5.proto.services.ad_group_service_pb2', + MutateAdGroupsRequest='google.ads.google_ads.v5.proto.services.ad_group_service_pb2', + MutateAdGroupsResponse='google.ads.google_ads.v5.proto.services.ad_group_service_pb2', + MutateAdParameterResult='google.ads.google_ads.v5.proto.services.ad_parameter_service_pb2', + MutateAdParametersRequest='google.ads.google_ads.v5.proto.services.ad_parameter_service_pb2', + MutateAdParametersResponse='google.ads.google_ads.v5.proto.services.ad_parameter_service_pb2', + MutateAdResult='google.ads.google_ads.v5.proto.services.ad_service_pb2', + MutateAdsRequest='google.ads.google_ads.v5.proto.services.ad_service_pb2', + MutateAdsResponse='google.ads.google_ads.v5.proto.services.ad_service_pb2', + MutateAssetResult='google.ads.google_ads.v5.proto.services.asset_service_pb2', + MutateAssetsRequest='google.ads.google_ads.v5.proto.services.asset_service_pb2', + MutateAssetsResponse='google.ads.google_ads.v5.proto.services.asset_service_pb2', + MutateBatchJobRequest='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + MutateBatchJobResponse='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + MutateBatchJobResult='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + MutateBiddingStrategiesRequest='google.ads.google_ads.v5.proto.services.bidding_strategy_service_pb2', + MutateBiddingStrategiesResponse='google.ads.google_ads.v5.proto.services.bidding_strategy_service_pb2', + MutateBiddingStrategyResult='google.ads.google_ads.v5.proto.services.bidding_strategy_service_pb2', + MutateBillingSetupRequest='google.ads.google_ads.v5.proto.services.billing_setup_service_pb2', + MutateBillingSetupResponse='google.ads.google_ads.v5.proto.services.billing_setup_service_pb2', + MutateBillingSetupResult='google.ads.google_ads.v5.proto.services.billing_setup_service_pb2', + MutateCampaignAssetResult='google.ads.google_ads.v5.proto.services.campaign_asset_service_pb2', + MutateCampaignAssetsRequest='google.ads.google_ads.v5.proto.services.campaign_asset_service_pb2', + MutateCampaignAssetsResponse='google.ads.google_ads.v5.proto.services.campaign_asset_service_pb2', + MutateCampaignBidModifierResult='google.ads.google_ads.v5.proto.services.campaign_bid_modifier_service_pb2', + MutateCampaignBidModifiersRequest='google.ads.google_ads.v5.proto.services.campaign_bid_modifier_service_pb2', + MutateCampaignBidModifiersResponse='google.ads.google_ads.v5.proto.services.campaign_bid_modifier_service_pb2', + MutateCampaignBudgetResult='google.ads.google_ads.v5.proto.services.campaign_budget_service_pb2', + MutateCampaignBudgetsRequest='google.ads.google_ads.v5.proto.services.campaign_budget_service_pb2', + MutateCampaignBudgetsResponse='google.ads.google_ads.v5.proto.services.campaign_budget_service_pb2', + MutateCampaignCriteriaRequest='google.ads.google_ads.v5.proto.services.campaign_criterion_service_pb2', + MutateCampaignCriteriaResponse='google.ads.google_ads.v5.proto.services.campaign_criterion_service_pb2', + MutateCampaignCriterionResult='google.ads.google_ads.v5.proto.services.campaign_criterion_service_pb2', + MutateCampaignDraftResult='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + MutateCampaignDraftsRequest='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + MutateCampaignDraftsResponse='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + MutateCampaignExperimentResult='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + MutateCampaignExperimentsRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + MutateCampaignExperimentsResponse='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + MutateCampaignExtensionSettingResult='google.ads.google_ads.v5.proto.services.campaign_extension_setting_service_pb2', + MutateCampaignExtensionSettingsRequest='google.ads.google_ads.v5.proto.services.campaign_extension_setting_service_pb2', + MutateCampaignExtensionSettingsResponse='google.ads.google_ads.v5.proto.services.campaign_extension_setting_service_pb2', + MutateCampaignFeedResult='google.ads.google_ads.v5.proto.services.campaign_feed_service_pb2', + MutateCampaignFeedsRequest='google.ads.google_ads.v5.proto.services.campaign_feed_service_pb2', + MutateCampaignFeedsResponse='google.ads.google_ads.v5.proto.services.campaign_feed_service_pb2', + MutateCampaignLabelResult='google.ads.google_ads.v5.proto.services.campaign_label_service_pb2', + MutateCampaignLabelsRequest='google.ads.google_ads.v5.proto.services.campaign_label_service_pb2', + MutateCampaignLabelsResponse='google.ads.google_ads.v5.proto.services.campaign_label_service_pb2', + MutateCampaignResult='google.ads.google_ads.v5.proto.services.campaign_service_pb2', + MutateCampaignSharedSetResult='google.ads.google_ads.v5.proto.services.campaign_shared_set_service_pb2', + MutateCampaignSharedSetsRequest='google.ads.google_ads.v5.proto.services.campaign_shared_set_service_pb2', + MutateCampaignSharedSetsResponse='google.ads.google_ads.v5.proto.services.campaign_shared_set_service_pb2', + MutateCampaignsRequest='google.ads.google_ads.v5.proto.services.campaign_service_pb2', + MutateCampaignsResponse='google.ads.google_ads.v5.proto.services.campaign_service_pb2', + MutateConversionActionResult='google.ads.google_ads.v5.proto.services.conversion_action_service_pb2', + MutateConversionActionsRequest='google.ads.google_ads.v5.proto.services.conversion_action_service_pb2', + MutateConversionActionsResponse='google.ads.google_ads.v5.proto.services.conversion_action_service_pb2', + MutateCustomInterestResult='google.ads.google_ads.v5.proto.services.custom_interest_service_pb2', + MutateCustomInterestsRequest='google.ads.google_ads.v5.proto.services.custom_interest_service_pb2', + MutateCustomInterestsResponse='google.ads.google_ads.v5.proto.services.custom_interest_service_pb2', + MutateCustomerClientLinkRequest='google.ads.google_ads.v5.proto.services.customer_client_link_service_pb2', + MutateCustomerClientLinkResponse='google.ads.google_ads.v5.proto.services.customer_client_link_service_pb2', + MutateCustomerClientLinkResult='google.ads.google_ads.v5.proto.services.customer_client_link_service_pb2', + MutateCustomerExtensionSettingResult='google.ads.google_ads.v5.proto.services.customer_extension_setting_service_pb2', + MutateCustomerExtensionSettingsRequest='google.ads.google_ads.v5.proto.services.customer_extension_setting_service_pb2', + MutateCustomerExtensionSettingsResponse='google.ads.google_ads.v5.proto.services.customer_extension_setting_service_pb2', + MutateCustomerFeedResult='google.ads.google_ads.v5.proto.services.customer_feed_service_pb2', + MutateCustomerFeedsRequest='google.ads.google_ads.v5.proto.services.customer_feed_service_pb2', + MutateCustomerFeedsResponse='google.ads.google_ads.v5.proto.services.customer_feed_service_pb2', + MutateCustomerLabelResult='google.ads.google_ads.v5.proto.services.customer_label_service_pb2', + MutateCustomerLabelsRequest='google.ads.google_ads.v5.proto.services.customer_label_service_pb2', + MutateCustomerLabelsResponse='google.ads.google_ads.v5.proto.services.customer_label_service_pb2', + MutateCustomerManagerLinkRequest='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + MutateCustomerManagerLinkResponse='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + MutateCustomerManagerLinkResult='google.ads.google_ads.v5.proto.services.customer_manager_link_service_pb2', + MutateCustomerNegativeCriteriaRequest='google.ads.google_ads.v5.proto.services.customer_negative_criterion_service_pb2', + MutateCustomerNegativeCriteriaResponse='google.ads.google_ads.v5.proto.services.customer_negative_criterion_service_pb2', + MutateCustomerNegativeCriteriaResult='google.ads.google_ads.v5.proto.services.customer_negative_criterion_service_pb2', + MutateCustomerRequest='google.ads.google_ads.v5.proto.services.customer_service_pb2', + MutateCustomerResponse='google.ads.google_ads.v5.proto.services.customer_service_pb2', + MutateCustomerResult='google.ads.google_ads.v5.proto.services.customer_service_pb2', + MutateErrorEnum='google.ads.google_ads.v5.proto.errors.mutate_error_pb2', + MutateExtensionFeedItemResult='google.ads.google_ads.v5.proto.services.extension_feed_item_service_pb2', + MutateExtensionFeedItemsRequest='google.ads.google_ads.v5.proto.services.extension_feed_item_service_pb2', + MutateExtensionFeedItemsResponse='google.ads.google_ads.v5.proto.services.extension_feed_item_service_pb2', + MutateFeedItemResult='google.ads.google_ads.v5.proto.services.feed_item_service_pb2', + MutateFeedItemTargetResult='google.ads.google_ads.v5.proto.services.feed_item_target_service_pb2', + MutateFeedItemTargetsRequest='google.ads.google_ads.v5.proto.services.feed_item_target_service_pb2', + MutateFeedItemTargetsResponse='google.ads.google_ads.v5.proto.services.feed_item_target_service_pb2', + MutateFeedItemsRequest='google.ads.google_ads.v5.proto.services.feed_item_service_pb2', + MutateFeedItemsResponse='google.ads.google_ads.v5.proto.services.feed_item_service_pb2', + MutateFeedMappingResult='google.ads.google_ads.v5.proto.services.feed_mapping_service_pb2', + MutateFeedMappingsRequest='google.ads.google_ads.v5.proto.services.feed_mapping_service_pb2', + MutateFeedMappingsResponse='google.ads.google_ads.v5.proto.services.feed_mapping_service_pb2', + MutateFeedResult='google.ads.google_ads.v5.proto.services.feed_service_pb2', + MutateFeedsRequest='google.ads.google_ads.v5.proto.services.feed_service_pb2', + MutateFeedsResponse='google.ads.google_ads.v5.proto.services.feed_service_pb2', + MutateGoogleAdsRequest='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + MutateGoogleAdsResponse='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + MutateKeywordPlanAdGroupKeywordResult='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_keyword_service_pb2', + MutateKeywordPlanAdGroupKeywordsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_keyword_service_pb2', + MutateKeywordPlanAdGroupKeywordsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_keyword_service_pb2', + MutateKeywordPlanAdGroupResult='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_service_pb2', + MutateKeywordPlanAdGroupsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_service_pb2', + MutateKeywordPlanAdGroupsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_ad_group_service_pb2', + MutateKeywordPlanCampaignKeywordResult='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_keyword_service_pb2', + MutateKeywordPlanCampaignKeywordsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_keyword_service_pb2', + MutateKeywordPlanCampaignKeywordsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_keyword_service_pb2', + MutateKeywordPlanCampaignResult='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_service_pb2', + MutateKeywordPlanCampaignsRequest='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_service_pb2', + MutateKeywordPlanCampaignsResponse='google.ads.google_ads.v5.proto.services.keyword_plan_campaign_service_pb2', + MutateKeywordPlansRequest='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + MutateKeywordPlansResponse='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + MutateKeywordPlansResult='google.ads.google_ads.v5.proto.services.keyword_plan_service_pb2', + MutateLabelResult='google.ads.google_ads.v5.proto.services.label_service_pb2', + MutateLabelsRequest='google.ads.google_ads.v5.proto.services.label_service_pb2', + MutateLabelsResponse='google.ads.google_ads.v5.proto.services.label_service_pb2', + MutateMediaFileResult='google.ads.google_ads.v5.proto.services.media_file_service_pb2', + MutateMediaFilesRequest='google.ads.google_ads.v5.proto.services.media_file_service_pb2', + MutateMediaFilesResponse='google.ads.google_ads.v5.proto.services.media_file_service_pb2', + MutateMerchantCenterLinkRequest='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + MutateMerchantCenterLinkResponse='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + MutateMerchantCenterLinkResult='google.ads.google_ads.v5.proto.services.merchant_center_link_service_pb2', + MutateOperation='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + MutateOperationResponse='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + MutateRemarketingActionResult='google.ads.google_ads.v5.proto.services.remarketing_action_service_pb2', + MutateRemarketingActionsRequest='google.ads.google_ads.v5.proto.services.remarketing_action_service_pb2', + MutateRemarketingActionsResponse='google.ads.google_ads.v5.proto.services.remarketing_action_service_pb2', + MutateSharedCriteriaRequest='google.ads.google_ads.v5.proto.services.shared_criterion_service_pb2', + MutateSharedCriteriaResponse='google.ads.google_ads.v5.proto.services.shared_criterion_service_pb2', + MutateSharedCriterionResult='google.ads.google_ads.v5.proto.services.shared_criterion_service_pb2', + MutateSharedSetResult='google.ads.google_ads.v5.proto.services.shared_set_service_pb2', + MutateSharedSetsRequest='google.ads.google_ads.v5.proto.services.shared_set_service_pb2', + MutateSharedSetsResponse='google.ads.google_ads.v5.proto.services.shared_set_service_pb2', + MutateUserListResult='google.ads.google_ads.v5.proto.services.user_list_service_pb2', + MutateUserListsRequest='google.ads.google_ads.v5.proto.services.user_list_service_pb2', + MutateUserListsResponse='google.ads.google_ads.v5.proto.services.user_list_service_pb2', + NegativeGeoTargetTypeEnum='google.ads.google_ads.v5.proto.enums.negative_geo_target_type_pb2', + NewResourceCreationErrorEnum='google.ads.google_ads.v5.proto.errors.new_resource_creation_error_pb2', + NotAllowlistedErrorEnum='google.ads.google_ads.v5.proto.errors.not_allowlisted_error_pb2', + NotEmptyErrorEnum='google.ads.google_ads.v5.proto.errors.not_empty_error_pb2', + NullErrorEnum='google.ads.google_ads.v5.proto.errors.null_error_pb2', + OfflineUserAddressInfo='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + OfflineUserDataJob='google.ads.google_ads.v5.proto.resources.offline_user_data_job_pb2', + OfflineUserDataJobErrorEnum='google.ads.google_ads.v5.proto.errors.offline_user_data_job_error_pb2', + OfflineUserDataJobFailureReasonEnum='google.ads.google_ads.v5.proto.enums.offline_user_data_job_failure_reason_pb2', + OfflineUserDataJobOperation='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + OfflineUserDataJobStatusEnum='google.ads.google_ads.v5.proto.enums.offline_user_data_job_status_pb2', + OfflineUserDataJobTypeEnum='google.ads.google_ads.v5.proto.enums.offline_user_data_job_type_pb2', + OnTargetAudienceMetrics='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + Operand='google.ads.google_ads.v5.proto.common.matching_function_pb2', + OperatingSystemVersionConstant='google.ads.google_ads.v5.proto.resources.operating_system_version_constant_pb2', + OperatingSystemVersionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + OperatingSystemVersionOperatorTypeEnum='google.ads.google_ads.v5.proto.enums.operating_system_version_operator_type_pb2', + OperationAccessDeniedErrorEnum='google.ads.google_ads.v5.proto.errors.operation_access_denied_error_pb2', + OperatorErrorEnum='google.ads.google_ads.v5.proto.errors.operator_error_pb2', + OptimizationGoalTypeEnum='google.ads.google_ads.v5.proto.enums.optimization_goal_type_pb2', + PaidOrganicSearchTermView='google.ads.google_ads.v5.proto.resources.paid_organic_search_term_view_pb2', + ParentalStatusInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ParentalStatusTypeEnum='google.ads.google_ads.v5.proto.enums.parental_status_type_pb2', + ParentalStatusView='google.ads.google_ads.v5.proto.resources.parental_status_view_pb2', + PartialFailureErrorEnum='google.ads.google_ads.v5.proto.errors.partial_failure_error_pb2', + PaymentModeEnum='google.ads.google_ads.v5.proto.enums.payment_mode_pb2', + PaymentsAccount='google.ads.google_ads.v5.proto.resources.payments_account_pb2', + PaymentsAccountErrorEnum='google.ads.google_ads.v5.proto.errors.payments_account_error_pb2', + PercentCpc='google.ads.google_ads.v5.proto.common.bidding_pb2', + PercentCpcBidSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + PercentCpcBidSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + PlaceholderTypeEnum='google.ads.google_ads.v5.proto.enums.placeholder_type_pb2', + PlacementInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + PlacementTypeEnum='google.ads.google_ads.v5.proto.enums.placement_type_pb2', + PlannableLocation='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + PlannableTargeting='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + PlannedProduct='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + PolicyApprovalStatusEnum='google.ads.google_ads.v5.proto.enums.policy_approval_status_pb2', + PolicyFindingDetails='google.ads.google_ads.v5.proto.errors.errors_pb2', + PolicyFindingErrorEnum='google.ads.google_ads.v5.proto.errors.policy_finding_error_pb2', + PolicyReviewStatusEnum='google.ads.google_ads.v5.proto.enums.policy_review_status_pb2', + PolicyTopicConstraint='google.ads.google_ads.v5.proto.common.policy_pb2', + PolicyTopicEntry='google.ads.google_ads.v5.proto.common.policy_pb2', + PolicyTopicEntryTypeEnum='google.ads.google_ads.v5.proto.enums.policy_topic_entry_type_pb2', + PolicyTopicEvidence='google.ads.google_ads.v5.proto.common.policy_pb2', + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum='google.ads.google_ads.v5.proto.enums.policy_topic_evidence_destination_mismatch_url_type_pb2', + PolicyTopicEvidenceDestinationNotWorkingDeviceEnum='google.ads.google_ads.v5.proto.enums.policy_topic_evidence_destination_not_working_device_pb2', + PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum='google.ads.google_ads.v5.proto.enums.policy_topic_evidence_destination_not_working_dns_error_type_pb2', + PolicyValidationParameter='google.ads.google_ads.v5.proto.common.policy_pb2', + PolicyValidationParameterErrorEnum='google.ads.google_ads.v5.proto.errors.policy_validation_parameter_error_pb2', + PolicyViolationDetails='google.ads.google_ads.v5.proto.errors.errors_pb2', + PolicyViolationErrorEnum='google.ads.google_ads.v5.proto.errors.policy_violation_error_pb2', + PolicyViolationKey='google.ads.google_ads.v5.proto.common.policy_pb2', + PositiveGeoTargetTypeEnum='google.ads.google_ads.v5.proto.enums.positive_geo_target_type_pb2', + Preferences='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + PreferredContentInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + PreferredContentTypeEnum='google.ads.google_ads.v5.proto.enums.preferred_content_type_pb2', + PriceExtensionPriceQualifierEnum='google.ads.google_ads.v5.proto.enums.price_extension_price_qualifier_pb2', + PriceExtensionPriceUnitEnum='google.ads.google_ads.v5.proto.enums.price_extension_price_unit_pb2', + PriceExtensionTypeEnum='google.ads.google_ads.v5.proto.enums.price_extension_type_pb2', + PriceFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + PriceOffer='google.ads.google_ads.v5.proto.common.extensions_pb2', + PricePlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.price_placeholder_field_pb2', + ProductAllocation='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ProductBiddingCategoryConstant='google.ads.google_ads.v5.proto.resources.product_bidding_category_constant_pb2', + ProductBiddingCategoryInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductBiddingCategoryLevelEnum='google.ads.google_ads.v5.proto.enums.product_bidding_category_level_pb2', + ProductBiddingCategoryStatusEnum='google.ads.google_ads.v5.proto.enums.product_bidding_category_status_pb2', + ProductBrandInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductChannelEnum='google.ads.google_ads.v5.proto.enums.product_channel_pb2', + ProductChannelExclusivityEnum='google.ads.google_ads.v5.proto.enums.product_channel_exclusivity_pb2', + ProductChannelExclusivityInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductChannelInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductConditionEnum='google.ads.google_ads.v5.proto.enums.product_condition_pb2', + ProductConditionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductCustomAttributeIndexEnum='google.ads.google_ads.v5.proto.enums.product_custom_attribute_index_pb2', + ProductCustomAttributeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductGroupView='google.ads.google_ads.v5.proto.resources.product_group_view_pb2', + ProductImage='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ProductItemIdInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductMetadata='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ProductTypeInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProductTypeLevelEnum='google.ads.google_ads.v5.proto.enums.product_type_level_pb2', + ProductVideo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + PromoteCampaignDraftRequest='google.ads.google_ads.v5.proto.services.campaign_draft_service_pb2', + PromoteCampaignExperimentRequest='google.ads.google_ads.v5.proto.services.campaign_experiment_service_pb2', + PromotionExtensionDiscountModifierEnum='google.ads.google_ads.v5.proto.enums.promotion_extension_discount_modifier_pb2', + PromotionExtensionOccasionEnum='google.ads.google_ads.v5.proto.enums.promotion_extension_occasion_pb2', + PromotionFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + PromotionPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.promotion_placeholder_field_pb2', + ProximityInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + ProximityRadiusUnitsEnum='google.ads.google_ads.v5.proto.enums.proximity_radius_units_pb2', + QualityScoreBucketEnum='google.ads.google_ads.v5.proto.enums.quality_score_bucket_pb2', + QueryErrorEnum='google.ads.google_ads.v5.proto.errors.query_error_pb2', + QuotaErrorDetails='google.ads.google_ads.v5.proto.errors.errors_pb2', + QuotaErrorEnum='google.ads.google_ads.v5.proto.errors.quota_error_pb2', + RangeErrorEnum='google.ads.google_ads.v5.proto.errors.range_error_pb2', + ReachCurve='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ReachForecast='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + ReachPlanAdLengthEnum='google.ads.google_ads.v5.proto.enums.reach_plan_ad_length_pb2', + ReachPlanAgeRangeEnum='google.ads.google_ads.v5.proto.enums.reach_plan_age_range_pb2', + ReachPlanErrorEnum='google.ads.google_ads.v5.proto.errors.reach_plan_error_pb2', + ReachPlanNetworkEnum='google.ads.google_ads.v5.proto.enums.reach_plan_network_pb2', + RealEstatePlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.real_estate_placeholder_field_pb2', + RealTimeBiddingSetting='google.ads.google_ads.v5.proto.common.real_time_bidding_setting_pb2', + Recommendation='google.ads.google_ads.v5.proto.resources.recommendation_pb2', + RecommendationErrorEnum='google.ads.google_ads.v5.proto.errors.recommendation_error_pb2', + RecommendationTypeEnum='google.ads.google_ads.v5.proto.enums.recommendation_type_pb2', + RegenerateShareableLinkIdRequest='google.ads.google_ads.v5.proto.services.third_party_app_analytics_link_service_pb2', + RegenerateShareableLinkIdResponse='google.ads.google_ads.v5.proto.services.third_party_app_analytics_link_service_pb2', + RegionCodeErrorEnum='google.ads.google_ads.v5.proto.errors.region_code_error_pb2', + RemarketingAction='google.ads.google_ads.v5.proto.resources.remarketing_action_pb2', + RemarketingActionOperation='google.ads.google_ads.v5.proto.services.remarketing_action_service_pb2', + RemarketingSetting='google.ads.google_ads.v5.proto.resources.customer_pb2', + RequestErrorEnum='google.ads.google_ads.v5.proto.errors.request_error_pb2', + ResourceAccessDeniedErrorEnum='google.ads.google_ads.v5.proto.errors.resource_access_denied_error_pb2', + ResourceCountLimitExceededErrorEnum='google.ads.google_ads.v5.proto.errors.resource_count_limit_exceeded_error_pb2', + ResponseContentTypeEnum='google.ads.google_ads.v5.proto.enums.response_content_type_pb2', + ResponsiveDisplayAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ResponsiveSearchAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + RestatementValue='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + RuleBasedUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + RunBatchJobRequest='google.ads.google_ads.v5.proto.services.batch_job_service_pb2', + RunOfflineUserDataJobRequest='google.ads.google_ads.v5.proto.services.offline_user_data_job_service_pb2', + SearchEngineResultsPageTypeEnum='google.ads.google_ads.v5.proto.enums.search_engine_results_page_type_pb2', + SearchGoogleAdsFieldsRequest='google.ads.google_ads.v5.proto.services.google_ads_field_service_pb2', + SearchGoogleAdsFieldsResponse='google.ads.google_ads.v5.proto.services.google_ads_field_service_pb2', + SearchGoogleAdsRequest='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + SearchGoogleAdsResponse='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + SearchGoogleAdsStreamRequest='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + SearchGoogleAdsStreamResponse='google.ads.google_ads.v5.proto.services.google_ads_service_pb2', + SearchTermMatchTypeEnum='google.ads.google_ads.v5.proto.enums.search_term_match_type_pb2', + SearchTermTargetingStatusEnum='google.ads.google_ads.v5.proto.enums.search_term_targeting_status_pb2', + SearchTermView='google.ads.google_ads.v5.proto.resources.search_term_view_pb2', + Segments='google.ads.google_ads.v5.proto.common.segments_pb2', + ServedAssetFieldTypeEnum='google.ads.google_ads.v5.proto.enums.served_asset_field_type_pb2', + SettingErrorEnum='google.ads.google_ads.v5.proto.errors.setting_error_pb2', + SharedCriterion='google.ads.google_ads.v5.proto.resources.shared_criterion_pb2', + SharedCriterionErrorEnum='google.ads.google_ads.v5.proto.errors.shared_criterion_error_pb2', + SharedCriterionOperation='google.ads.google_ads.v5.proto.services.shared_criterion_service_pb2', + SharedSet='google.ads.google_ads.v5.proto.resources.shared_set_pb2', + SharedSetErrorEnum='google.ads.google_ads.v5.proto.errors.shared_set_error_pb2', + SharedSetOperation='google.ads.google_ads.v5.proto.services.shared_set_service_pb2', + SharedSetStatusEnum='google.ads.google_ads.v5.proto.enums.shared_set_status_pb2', + SharedSetTypeEnum='google.ads.google_ads.v5.proto.enums.shared_set_type_pb2', + ShoppingComparisonListingAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ShoppingPerformanceView='google.ads.google_ads.v5.proto.resources.shopping_performance_view_pb2', + ShoppingProductAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + ShoppingSmartAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + SimilarUserListInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + SimulationModificationMethodEnum='google.ads.google_ads.v5.proto.enums.simulation_modification_method_pb2', + SimulationTypeEnum='google.ads.google_ads.v5.proto.enums.simulation_type_pb2', + SiteSeed='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + SitelinkFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + SitelinkPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.sitelink_placeholder_field_pb2', + SizeLimitErrorEnum='google.ads.google_ads.v5.proto.errors.size_limit_error_pb2', + SlotEnum='google.ads.google_ads.v5.proto.enums.slot_pb2', + SpendingLimitTypeEnum='google.ads.google_ads.v5.proto.enums.spending_limit_type_pb2', + StoreAttribute='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + StoreSalesMetadata='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + StoreSalesThirdPartyMetadata='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + StringFormatErrorEnum='google.ads.google_ads.v5.proto.errors.string_format_error_pb2', + StringLengthErrorEnum='google.ads.google_ads.v5.proto.errors.string_length_error_pb2', + StructuredSnippetFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + StructuredSnippetPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.structured_snippet_placeholder_field_pb2', + SuggestGeoTargetConstantsRequest='google.ads.google_ads.v5.proto.services.geo_target_constant_service_pb2', + SuggestGeoTargetConstantsResponse='google.ads.google_ads.v5.proto.services.geo_target_constant_service_pb2', + SummaryRowSettingEnum='google.ads.google_ads.v5.proto.enums.summary_row_setting_pb2', + SystemManagedResourceSourceEnum='google.ads.google_ads.v5.proto.enums.system_managed_entity_source_pb2', + TagSnippet='google.ads.google_ads.v5.proto.common.tag_snippet_pb2', + TargetCpa='google.ads.google_ads.v5.proto.common.bidding_pb2', + TargetCpaOptInRecommendationGoalEnum='google.ads.google_ads.v5.proto.enums.target_cpa_opt_in_recommendation_goal_pb2', + TargetCpaSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + TargetCpaSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + TargetCpm='google.ads.google_ads.v5.proto.common.bidding_pb2', + TargetImpressionShare='google.ads.google_ads.v5.proto.common.bidding_pb2', + TargetImpressionShareLocationEnum='google.ads.google_ads.v5.proto.enums.target_impression_share_location_pb2', + TargetRestriction='google.ads.google_ads.v5.proto.common.targeting_setting_pb2', + TargetRestrictionOperation='google.ads.google_ads.v5.proto.common.targeting_setting_pb2', + TargetRoas='google.ads.google_ads.v5.proto.common.bidding_pb2', + TargetRoasSimulationPoint='google.ads.google_ads.v5.proto.common.simulation_pb2', + TargetRoasSimulationPointList='google.ads.google_ads.v5.proto.common.simulation_pb2', + TargetSpend='google.ads.google_ads.v5.proto.common.bidding_pb2', + Targeting='google.ads.google_ads.v5.proto.services.reach_plan_service_pb2', + TargetingDimensionEnum='google.ads.google_ads.v5.proto.enums.targeting_dimension_pb2', + TargetingSetting='google.ads.google_ads.v5.proto.common.targeting_setting_pb2', + TextAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + TextAsset='google.ads.google_ads.v5.proto.common.asset_types_pb2', + TextLabel='google.ads.google_ads.v5.proto.common.text_label_pb2', + TextMessageFeedItem='google.ads.google_ads.v5.proto.common.extensions_pb2', + ThirdPartyAppAnalyticsLink='google.ads.google_ads.v5.proto.resources.third_party_app_analytics_link_pb2', + ThirdPartyAppAnalyticsLinkErrorEnum='google.ads.google_ads.v5.proto.errors.third_party_app_analytics_link_error_pb2', + ThirdPartyAppAnalyticsLinkIdentifier='google.ads.google_ads.v5.proto.resources.account_link_pb2', + TimeTypeEnum='google.ads.google_ads.v5.proto.enums.time_type_pb2', + TimeZoneErrorEnum='google.ads.google_ads.v5.proto.errors.time_zone_error_pb2', + TopicConstant='google.ads.google_ads.v5.proto.resources.topic_constant_pb2', + TopicInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + TopicView='google.ads.google_ads.v5.proto.resources.topic_view_pb2', + TrackingCodePageFormatEnum='google.ads.google_ads.v5.proto.enums.tracking_code_page_format_pb2', + TrackingCodeTypeEnum='google.ads.google_ads.v5.proto.enums.tracking_code_type_pb2', + TransactionAttribute='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + TravelPlaceholderFieldEnum='google.ads.google_ads.v5.proto.enums.travel_placeholder_field_pb2', + UnknownListingDimensionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + UploadCallConversionsRequest='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + UploadCallConversionsResponse='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + UploadClickConversionsRequest='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + UploadClickConversionsResponse='google.ads.google_ads.v5.proto.services.conversion_upload_service_pb2', + UploadConversionAdjustmentsRequest='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + UploadConversionAdjustmentsResponse='google.ads.google_ads.v5.proto.services.conversion_adjustment_upload_service_pb2', + UploadUserDataRequest='google.ads.google_ads.v5.proto.services.user_data_service_pb2', + UploadUserDataResponse='google.ads.google_ads.v5.proto.services.user_data_service_pb2', + UrlCollection='google.ads.google_ads.v5.proto.common.url_collection_pb2', + UrlFieldErrorEnum='google.ads.google_ads.v5.proto.errors.url_field_error_pb2', + UrlSeed='google.ads.google_ads.v5.proto.services.keyword_plan_idea_service_pb2', + UserData='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + UserDataErrorEnum='google.ads.google_ads.v5.proto.errors.user_data_error_pb2', + UserDataOperation='google.ads.google_ads.v5.proto.services.user_data_service_pb2', + UserIdentifier='google.ads.google_ads.v5.proto.common.offline_user_data_pb2', + UserInterest='google.ads.google_ads.v5.proto.resources.user_interest_pb2', + UserInterestInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + UserInterestTaxonomyTypeEnum='google.ads.google_ads.v5.proto.enums.user_interest_taxonomy_type_pb2', + UserList='google.ads.google_ads.v5.proto.resources.user_list_pb2', + UserListAccessStatusEnum='google.ads.google_ads.v5.proto.enums.user_list_access_status_pb2', + UserListActionInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListClosingReasonEnum='google.ads.google_ads.v5.proto.enums.user_list_closing_reason_pb2', + UserListCombinedRuleOperatorEnum='google.ads.google_ads.v5.proto.enums.user_list_combined_rule_operator_pb2', + UserListCrmDataSourceTypeEnum='google.ads.google_ads.v5.proto.enums.user_list_crm_data_source_type_pb2', + UserListDateRuleItemInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListDateRuleItemOperatorEnum='google.ads.google_ads.v5.proto.enums.user_list_date_rule_item_operator_pb2', + UserListErrorEnum='google.ads.google_ads.v5.proto.errors.user_list_error_pb2', + UserListInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + UserListLogicalRuleInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListLogicalRuleOperatorEnum='google.ads.google_ads.v5.proto.enums.user_list_logical_rule_operator_pb2', + UserListMembershipStatusEnum='google.ads.google_ads.v5.proto.enums.user_list_membership_status_pb2', + UserListNumberRuleItemInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListNumberRuleItemOperatorEnum='google.ads.google_ads.v5.proto.enums.user_list_number_rule_item_operator_pb2', + UserListOperation='google.ads.google_ads.v5.proto.services.user_list_service_pb2', + UserListPrepopulationStatusEnum='google.ads.google_ads.v5.proto.enums.user_list_prepopulation_status_pb2', + UserListRuleInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListRuleItemGroupInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListRuleItemInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListRuleTypeEnum='google.ads.google_ads.v5.proto.enums.user_list_rule_type_pb2', + UserListSizeRangeEnum='google.ads.google_ads.v5.proto.enums.user_list_size_range_pb2', + UserListStringRuleItemInfo='google.ads.google_ads.v5.proto.common.user_lists_pb2', + UserListStringRuleItemOperatorEnum='google.ads.google_ads.v5.proto.enums.user_list_string_rule_item_operator_pb2', + UserListTypeEnum='google.ads.google_ads.v5.proto.enums.user_list_type_pb2', + UserLocationView='google.ads.google_ads.v5.proto.resources.user_location_view_pb2', + Value='google.ads.google_ads.v5.proto.common.value_pb2', + VanityPharmaDisplayUrlModeEnum='google.ads.google_ads.v5.proto.enums.vanity_pharma_display_url_mode_pb2', + VanityPharmaTextEnum='google.ads.google_ads.v5.proto.enums.vanity_pharma_text_pb2', + Video='google.ads.google_ads.v5.proto.resources.video_pb2', + VideoAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoBumperInStreamAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoNonSkippableInStreamAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoOutstreamAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoResponsiveAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoTrueViewDiscoveryAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + VideoTrueViewInStreamAdInfo='google.ads.google_ads.v5.proto.common.ad_type_infos_pb2', + WebpageConditionInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + WebpageConditionOperandEnum='google.ads.google_ads.v5.proto.enums.webpage_condition_operand_pb2', + WebpageConditionOperatorEnum='google.ads.google_ads.v5.proto.enums.webpage_condition_operator_pb2', + WebpageInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + YouTubeChannelInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + YouTubeVideoInfo='google.ads.google_ads.v5.proto.common.criteria_pb2', + YoutubeVideoAsset='google.ads.google_ads.v5.proto.common.asset_types_pb2', + YoutubeVideoRegistrationErrorEnum='google.ads.google_ads.v5.proto.errors.youtube_video_registration_error_pb2', +) + + +DEPENDENT_MODULE_LIST = [ + 'google.longrunning.operations_pb2', + 'google.protobuf.any_pb2', + 'google.protobuf.empty_pb2', + 'google.protobuf.field_mask_pb2', + 'google.protobuf.wrappers_pb2', + 'google.rpc.status_pb2'] + +def _get_class_from_module(module_name): + module = importlib.import_module(module_name) + for class_name in get_messages(module).keys(): # from inspect module + yield class_name + +def _populate_dependent_classes(module_list = DEPENDENT_MODULE_LIST): + class_list = {} + for module_name in module_list: + for cls in _get_class_from_module(module_name): + class_list[cls] = module_name + return class_list + +_lazy_dependent_class_to_package_map = _populate_dependent_classes() + +def _load_module(module_name): + """Load a module by it's name. + + Args: + module_name: a str of the name of a sub-module to load. + + Returns: + A module class instance. + + Raises: + AttributeError if the given module can't be found. + """ + try: + if module_name in _lazy_name_to_package_map: + module_path = f'{_lazy_name_to_package_map[module_name]}.{module_name}' + else: + module_path = module_name + return importlib.import_module(module_path) + except KeyError: + raise AttributeError(f'unknown sub-module {module_name!r}.') + + +def _get_module_by_name(module_name): + """Get a module containing one or more message classes. + + For example: google.ads.google_ads.v2.proto.services.video_service_pb2. + + Args: + module_name: a str of the name of a module. + + Returns: + a module class instance. + """ + module = _load_module(module_name) + globals()[module_name] = module + + for name, message in get_messages(module).items(): + if name.endswith('_service_pb2'): + message.__module__ = 'google.ads.google_ads.v2.types' + globals()[name] = message + + return module + + +def _get_message_class_by_name(class_name): + """Get a message class instance by name. + + For example: VideoService + + Args: + module_name: a str of the name of a protobuf class to load. + + Returns: + a protobuf message class definition that inherits from + google.protobuf.pyext.cpp_message.GeneratedProtocolMessageType. + """ + if class_name in _lazy_dependent_class_to_package_map: + module_path = _lazy_dependent_class_to_package_map[class_name] + elif class_name in _lazy_class_to_package_map: + module_path = _lazy_class_to_package_map[class_name] + else: + raise AttributeError(f'unknown sub-module {class_name!r}.') + + try: + module = _load_module(module_path) + message = getattr(module, class_name) + except AttributeError: + raise AttributeError(f'unknown message class {class_name!r}.') + + if class_name.endswith('Service'): + message.__module__ = 'google.ads.google_ads.v2.types' + + globals()[class_name] = message + return message + + +# Background on how this behaves: https://www.python.org/dev/peps/pep-0562/ +def __getattr__(name): # Requires Python >= 3.7 + """Lazily perform imports and class definitions on first demand.""" + if name == '__all__': + converted = (util.convert_snake_case_to_upper_case(key) for + key in chain(_lazy_name_to_package_map, + _lazy_class_to_package_map, + _lazy_dependent_class_to_package_map)) + all_names = sorted(converted) + globals()['__all__'] = all_names + return all_names + elif name.endswith('_pb2'): + return _get_module_by_name(name) + elif name.endswith('Pb2'): + module_name = f'{util.convert_upper_case_to_snake_case(name)}' + return _get_module_by_name(module_name) + else: + return _get_message_class_by_name(name) + + +def __dir__(): + return globals().get('__all__') or __getattr__('__all__') diff --git a/setup.py b/setup.py index 76928b1d3..b7ad33540 100644 --- a/setup.py +++ b/setup.py @@ -17,45 +17,49 @@ import io install_requires = [ - 'google-auth-oauthlib >= 0.3.0, < 1.0.0', - 'google-api-core >= 1.14.0, < 2.0.0', - 'googleapis-common-protos >= 1.5.8, < 2.0.0', - 'grpcio >= 1.25.0, < 2.0.0', - 'PyYAML >= 5.1, < 6.0', + "google-auth-oauthlib >= 0.3.0, < 1.0.0", + "google-api-core >= 1.14.0, < 2.0.0", + "googleapis-common-protos >= 1.5.8, < 2.0.0", + "grpcio >= 1.25.0, < 2.0.0", + "protobuf >= 3.13.0, < 4.0.0", + "PyYAML >= 5.1, < 6.0", + "setuptools>=40.3.0", ] tests_require = [ - 'mock >= 3.0.0, < 4.0.0', - 'pyfakefs >= 3.5, < 3.6', + "mock >= 3.0.0, < 4.0.0", + "pyfakefs >= 3.5, < 3.6", ] -with io.open('README.rst', 'r', encoding='utf-8') as readme_file: +with io.open("README.rst", "r", encoding="utf-8") as readme_file: long_description = readme_file.read() setup( - name='google-ads', - version='6.0.0', - author='Google LLC', - author_email='googleapis-packages@google.com', + name="google-ads", + version="7.0.0", + author="Google LLC", + author_email="googleapis-packages@google.com", classifiers=[ - 'Intended Audience :: Developers', - 'Development Status :: 3 - Alpha', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', + "Intended Audience :: Developers", + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", ], - description='Client library for the Google Ads API', + description="Client library for the Google Ads API", include_package_data=True, - python_requires='>=3.7', + python_requires=">=3.7", long_description=long_description, install_requires=install_requires, tests_require=tests_require, - test_suite='tests', - license='Apache 2.0', - packages=find_packages(exclude=['examples', 'examples.*', 'tests', 'tests.*']), - namespace_packages=['google', 'google.ads'], - url='https://github.com/googleads/google-ads-python', + test_suite="tests", + license="Apache 2.0", + packages=find_packages( + exclude=["examples", "examples.*", "tests", "tests.*"] + ), + namespace_packages=["google", "google.ads"], + url="https://github.com/googleads/google-ads-python", zip_safe=False, ) diff --git a/tests/client_test.py b/tests/client_test.py index 2a72eaca3..d8b27e681 100644 --- a/tests/client_test.py +++ b/tests/client_test.py @@ -28,333 +28,352 @@ latest_version = Client._DEFAULT_VERSION valid_versions = Client._VALID_API_VERSIONS -services_path = 'google.ads.google_ads.{}.proto.services'.format(latest_version) +services_path = "google.ads.google_ads.{}.proto.services".format(latest_version) services = import_module(services_path) + class GoogleAdsClientTest(FileTestCase): """Tests for the google.ads.googleads.client.GoogleAdsClient class.""" def _create_test_client(self, endpoint=None): with mock.patch.object( - Client.oauth2, - 'get_installed_app_credentials' + Client.oauth2, "get_installed_app_credentials" ) as mock_credentials: mock_credentials_instance = mock_credentials.return_value mock_credentials_instance.refresh_token = self.refresh_token mock_credentials_instance.client_id = self.client_id mock_credentials_instance.client_secret = self.client_secret - client = Client.GoogleAdsClient(mock_credentials_instance, - self.developer_token, endpoint=endpoint) + client = Client.GoogleAdsClient( + mock_credentials_instance, + self.developer_token, + endpoint=endpoint, + ) return client def setUp(self): self.setUpPyfakefs() - self.developer_token = 'abc123' - self.client_id = 'client_id_123456789' - self.client_secret = 'client_secret_987654321' - self.refresh_token = 'refresh' - self.login_customer_id = '1234567890' - self.path_to_private_key_file = '/test/path/to/config.json' - self.delegated_account = 'delegated@account.com' - + self.developer_token = "abc123" + self.client_id = "client_id_123456789" + self.client_secret = "client_secret_987654321" + self.refresh_token = "refresh" + self.login_customer_id = "1234567890" + self.path_to_private_key_file = "/test/path/to/config.json" + self.delegated_account = "delegated@account.com" def test_get_client_kwargs_login_customer_id(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token, - 'login_customer_id': self.login_customer_id} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + "login_customer_id": self.login_customer_id, + } mock_credentials_instance = mock.Mock() with mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance): + "get_installed_app_credentials", + return_value=mock_credentials_instance, + ): result = Client.GoogleAdsClient._get_client_kwargs(config) self.assertEqual( result, { - 'credentials': mock_credentials_instance, - 'developer_token': self.developer_token, - 'endpoint': None, - 'login_customer_id': self.login_customer_id, - 'logging_config': None - }) + "credentials": mock_credentials_instance, + "developer_token": self.developer_token, + "endpoint": None, + "login_customer_id": self.login_customer_id, + "logging_config": None, + }, + ) def test_get_client_kwargs_login_customer_id_as_None(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token, - 'login_customer_id': None} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + "login_customer_id": None, + } mock_credentials_instance = mock.Mock() with mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance): + "get_installed_app_credentials", + return_value=mock_credentials_instance, + ): result = Client.GoogleAdsClient._get_client_kwargs(config) self.assertEqual( result, { - 'credentials': mock_credentials_instance, - 'developer_token': self.developer_token, - 'endpoint': None, - 'login_customer_id': None, - 'logging_config': None - }) + "credentials": mock_credentials_instance, + "developer_token": self.developer_token, + "endpoint": None, + "login_customer_id": None, + "logging_config": None, + }, + ) def test_get_client_kwargs(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } mock_credentials_instance = mock.Mock() with mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance): + "get_installed_app_credentials", + return_value=mock_credentials_instance, + ): result = Client.GoogleAdsClient._get_client_kwargs(config) self.assertEqual( result, { - 'credentials': mock_credentials_instance, - 'developer_token': self.developer_token, - 'endpoint': None, - 'login_customer_id': None, - 'logging_config': None - }) + "credentials": mock_credentials_instance, + "developer_token": self.developer_token, + "endpoint": None, + "login_customer_id": None, + "logging_config": None, + }, + ) def test_get_client_kwargs_custom_endpoint(self): - endpoint = 'alt.endpoint.com' + endpoint = "alt.endpoint.com" config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token, - 'endpoint': endpoint} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + "endpoint": endpoint, + } mock_credentials_instance = mock.Mock() with mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance): + "get_installed_app_credentials", + return_value=mock_credentials_instance, + ): result = Client.GoogleAdsClient._get_client_kwargs(config) self.assertEqual( result, { - 'credentials': mock_credentials_instance, - 'developer_token': self.developer_token, - 'endpoint': endpoint, - 'login_customer_id': None, - 'logging_config': None - }) + "credentials": mock_credentials_instance, + "developer_token": self.developer_token, + "endpoint": endpoint, + "login_customer_id": None, + "logging_config": None, + }, + ) def test_load_from_dict(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None + Client.GoogleAdsClient, "__init__", return_value=None ) as mock_client_init, mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance + "get_installed_app_credentials", + return_value=mock_credentials_instance, ) as mock_credentials: - Client.GoogleAdsClient.load_from_dict(config) - - mock_client_init.assert_called_once_with( - credentials=mock_credentials_instance, - developer_token=self.developer_token, - endpoint=None, - login_customer_id=None, - logging_config=None) + Client.GoogleAdsClient.load_from_dict(config) + + mock_client_init.assert_called_once_with( + credentials=mock_credentials_instance, + developer_token=self.developer_token, + endpoint=None, + login_customer_id=None, + logging_config=None, + ) def test_load_from_storage(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") self.fs.create_file(file_path, contents=yaml.safe_dump(config)) mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None + Client.GoogleAdsClient, "__init__", return_value=None ) as mock_client_init, mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance + "get_installed_app_credentials", + return_value=mock_credentials_instance, ) as mock_credentials: Client.GoogleAdsClient.load_from_storage() mock_credentials.assert_called_once_with( - config.get('client_id'), - config.get('client_secret'), - config.get('refresh_token')) + config.get("client_id"), + config.get("client_secret"), + config.get("refresh_token"), + ) mock_client_init.assert_called_once_with( credentials=mock_credentials_instance, developer_token=self.developer_token, endpoint=None, login_customer_id=None, - logging_config=None) + logging_config=None, + ) def test_load_from_storage_login_cid_int(self): login_cid = 1234567890 config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token, - 'login_customer_id': login_cid} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + "login_customer_id": login_cid, + } - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") self.fs.create_file(file_path, contents=yaml.safe_dump(config)) mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None + Client.GoogleAdsClient, "__init__", return_value=None ) as mock_client_init, mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance + "get_installed_app_credentials", + return_value=mock_credentials_instance, ) as mock_credentials: Client.GoogleAdsClient.load_from_storage() mock_credentials.assert_called_once_with( - config.get('client_id'), - config.get('client_secret'), - config.get('refresh_token')) + config.get("client_id"), + config.get("client_secret"), + config.get("refresh_token"), + ) mock_client_init.assert_called_once_with( credentials=mock_credentials_instance, developer_token=self.developer_token, endpoint=None, login_customer_id=str(login_cid), - logging_config=None) + logging_config=None, + ) def test_load_from_storage_custom_path(self): config = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } - file_path = 'test/google-ads.yaml' + file_path = "test/google-ads.yaml" self.fs.create_file(file_path, contents=yaml.safe_dump(config)) mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None + Client.GoogleAdsClient, "__init__", return_value=None ) as mock_client_init, mock.patch.object( Client.oauth2, - 'get_installed_app_credentials', - return_value=mock_credentials_instance): + "get_installed_app_credentials", + return_value=mock_credentials_instance, + ): Client.GoogleAdsClient.load_from_storage(path=file_path) mock_client_init.assert_called_once_with( credentials=mock_credentials_instance, developer_token=self.developer_token, endpoint=None, login_customer_id=None, - logging_config=None) + logging_config=None, + ) def test_load_from_storage_file_not_found(self): - wrong_file_path = 'test/wrong-google-ads.yaml' + wrong_file_path = "test/wrong-google-ads.yaml" self.assertRaises( IOError, Client.GoogleAdsClient.load_from_storage, - path=wrong_file_path) + path=wrong_file_path, + ) def test_load_from_storage_required_config_missing(self): config = { - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, } - file_path = 'test/google-ads.yaml' + file_path = "test/google-ads.yaml" self.fs.create_file(file_path, contents=yaml.safe_dump(config)) self.assertRaises( - ValueError, - Client.GoogleAdsClient.load_from_storage, - path=file_path) + ValueError, Client.GoogleAdsClient.load_from_storage, path=file_path + ) def test_load_from_storage_service_account_config(self): config = { - 'developer_token': self.developer_token, - 'path_to_private_key_file': self.path_to_private_key_file, - 'delegated_account': self.delegated_account + "developer_token": self.developer_token, + "path_to_private_key_file": self.path_to_private_key_file, + "delegated_account": self.delegated_account, } - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") self.fs.create_file(file_path, contents=yaml.safe_dump(config)) mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None + Client.GoogleAdsClient, "__init__", return_value=None ) as mock_client_init, mock.patch.object( Client.oauth2, - 'get_service_account_credentials', - return_value=mock_credentials_instance + "get_service_account_credentials", + return_value=mock_credentials_instance, ) as mock_credentials: Client.GoogleAdsClient.load_from_storage() mock_credentials.assert_called_once_with( - config.get('path_to_private_key_file'), - config.get('delegated_account')) + config.get("path_to_private_key_file"), + config.get("delegated_account"), + ) mock_client_init.assert_called_once_with( credentials=mock_credentials_instance, developer_token=self.developer_token, endpoint=None, login_customer_id=None, - logging_config=None) + logging_config=None, + ) def test_load_from_storage_service_account_no_delegated_account(self): config = { - 'developer_token': self.developer_token, - 'path_to_private_key_file': self.path_to_private_key_file} + "developer_token": self.developer_token, + "path_to_private_key_file": self.path_to_private_key_file, + } - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") self.fs.create_file(file_path, contents=yaml.safe_dump(config)) mock_credentials_instance = mock.Mock() with mock.patch.object( - Client.GoogleAdsClient, - '__init__', - return_value=None), mock.patch.object( + Client.GoogleAdsClient, "__init__", return_value=None + ), mock.patch.object( Client.oauth2, - 'get_service_account_credentials', - return_value=mock_credentials_instance): + "get_service_account_credentials", + return_value=mock_credentials_instance, + ): self.assertRaises( - ValueError, - Client.GoogleAdsClient.load_from_storage) + ValueError, Client.GoogleAdsClient.load_from_storage + ) def test_get_service(self): # Retrieve service names for all defined service clients. for ver in valid_versions: - services_path = 'google.ads.google_ads.%s' % ver + services_path = "google.ads.google_ads.%s" % ver service_names = [ - '%s%s' % (name.rsplit('ServiceClient')[0], 'Service') + "%s%s" % (name.rsplit("ServiceClient")[0], "Service") for name in dir(import_module(services_path)) - if 'ServiceClient' in name] + if "ServiceClient" in name + ] client = self._create_test_client() @@ -363,16 +382,19 @@ def test_get_service(self): client.get_service(service_name, version=ver) def test_get_service_custom_endpoint(self): - service_name = 'GoogleAdsService' - service_module_base = 'google_ads_service' - grpc_transport_class_name = '%sGrpcTransport' % service_name - grpc_transport_module_name = '%s_grpc_transport' % service_module_base + service_name = "GoogleAdsService" + service_module_base = "google_ads_service" + grpc_transport_class_name = "%sGrpcTransport" % service_name + grpc_transport_module_name = "%s_grpc_transport" % service_module_base transport_create_channel_path = ( - 'google.ads.google_ads.%s.services.transports.%s.%s.create_channel' - % (Client._DEFAULT_VERSION, - grpc_transport_module_name, - grpc_transport_class_name)) - endpoint = 'alt.endpoint.com' + "google.ads.google_ads.%s.services.transports.%s.%s.create_channel" + % ( + Client._DEFAULT_VERSION, + grpc_transport_module_name, + grpc_transport_class_name, + ) + ) + endpoint = "alt.endpoint.com" client = self._create_test_client(endpoint=endpoint) # The GRPC transport's create_channel method is what allows the @@ -384,95 +406,105 @@ def test_get_service_custom_endpoint(self): # client. client.get_service(service_name) mock_create_channel.assert_called_once_with( - address=endpoint, credentials=client.credentials, - options=Client._GRPC_CHANNEL_OPTIONS) + address=endpoint, + credentials=client.credentials, + options=Client._GRPC_CHANNEL_OPTIONS, + ) def test_get_service_not_found(self): client = self._create_test_client() - self.assertRaises(ValueError, client.get_service, 'BadService') + self.assertRaises(ValueError, client.get_service, "BadService") def test_get_service_invalid_version(self): client = self._create_test_client() - self.assertRaises(ValueError, client.get_service, 'GoogleAdsService', - version='bad_version') + self.assertRaises( + ValueError, + client.get_service, + "GoogleAdsService", + version="bad_version", + ) def test_get_service_with_version(self): client = self._create_test_client() try: - client.get_service('GoogleAdsService', version=latest_version) + client.get_service("GoogleAdsService", version=latest_version) except Exception: - self.fail('get_service with a valid version raised an error') - -# XXX: deferred test for fixing lazy loading -# def test_get_service_with_interceptor(self): -# client = self._create_test_client() -# -# class Interceptor: -# pass -# -# interceptor = Interceptor() -# -# with mock.patch.object( -# Client, -# 'intercept_channel' -# ) as mock_intercept_channel: -# client.get_service('GoogleAdsService', interceptors=[interceptor]) -# first_interceptor = mock_intercept_channel.call_args[0][1] -# self.assertEqual(first_interceptor, interceptor) -# + self.fail("get_service with a valid version raised an error") + + # XXX: deferred test for fixing lazy loading + # def test_get_service_with_interceptor(self): + # client = self._create_test_client() + # + # class Interceptor: + # pass + # + # interceptor = Interceptor() + # + # with mock.patch.object( + # Client, + # 'intercept_channel' + # ) as mock_intercept_channel: + # client.get_service('GoogleAdsService', interceptors=[interceptor]) + # first_interceptor = mock_intercept_channel.call_args[0][1] + # self.assertEqual(first_interceptor, interceptor) + # def test_get_type(self): for ver in valid_versions: # Retrieve names for all types defined in pb2 files. - type_path = f'google.ads.google_ads.{ver}.types' + type_path = f"google.ads.google_ads.{ver}.types" type_names = import_module(type_path).__all__ # Iterate through retrieval of all types by name. for name in type_names: - if name.lower().endswith('pb2'): + if name.lower().endswith("pb2"): continue - Client.GoogleAdsClient.get_type( - name, version=ver) + Client.GoogleAdsClient.get_type(name, version=ver) def test_get_type_not_found(self): self.assertRaises( - ValueError, Client.GoogleAdsClient.get_type, - 'BadType') + ValueError, Client.GoogleAdsClient.get_type, "BadType" + ) def test_get_type_invalid_version(self): self.assertRaises( - ValueError, Client.GoogleAdsClient.get_type, - 'GoogleAdsFailure', version='bad_version') + ValueError, + Client.GoogleAdsClient.get_type, + "GoogleAdsFailure", + version="bad_version", + ) def test_init_no_logging_config(self): """Should call logging.config.dictConfig if logging config exists.""" with mock.patch( - 'logging.config.dictConfig' + "logging.config.dictConfig" ) as mock_dictConfig, mock.patch.object( - Client.oauth2, - 'get_installed_app_credentials' + Client.oauth2, "get_installed_app_credentials" ) as mock_credentials: mock_credentials_instance = mock_credentials.return_value mock_credentials_instance.refresh_token = self.refresh_token mock_credentials_instance.client_id = self.client_id mock_credentials_instance.client_secret = self.client_secret - Client.GoogleAdsClient(mock_credentials_instance, - self.developer_token) + Client.GoogleAdsClient( + mock_credentials_instance, self.developer_token + ) mock_dictConfig.assert_not_called() def test_init_with_logging_config(self): """Configured LoggingInterceptor should call logging.dictConfig.""" - config = {'test': True} + config = {"test": True} with mock.patch( - 'logging.config.dictConfig' + "logging.config.dictConfig" ) as mock_dictConfig, mock.patch.object( - Client.oauth2, - 'get_installed_app_credentials' + Client.oauth2, "get_installed_app_credentials" ) as mock_credentials: mock_credentials_instance = mock_credentials.return_value mock_credentials_instance.refresh_token = self.refresh_token mock_credentials_instance.client_id = self.client_id mock_credentials_instance.client_secret = self.client_secret - Client.GoogleAdsClient(mock_credentials_instance, - self.developer_token, logging_config=config) + Client.GoogleAdsClient( + mock_credentials_instance, + self.developer_token, + logging_config=config, + ) mock_dictConfig.assert_called_once_with(config) def test_service_client_dot_enums_property(self): @@ -487,9 +519,12 @@ def test_service_client_dot_enums_property(self): client = self._create_test_client() for ver in valid_versions: - service = client.get_service('GoogleAdsService', version=ver) - self.assertTrue(hasattr(service, 'enums'), 'GoogleAdsService in ' - f'{ver} does not have an "enums" attribute.') + service = client.get_service("GoogleAdsService", version=ver) + self.assertTrue( + hasattr(service, "enums"), + "GoogleAdsService in " + f'{ver} does not have an "enums" attribute.', + ) def is_enum_wrapper(member): """Determines whether the given memberect is an enum wrapper.""" @@ -501,9 +536,9 @@ def is_enum_wrapper(member): # in older API versions we can identify an enum wrapper as being # a class where at least one member is an instance of # enum.EnumMeta. - elif isclass(member) and \ - getmembers( - member, lambda name: isinstance(name, enum.EnumMeta)): + elif isclass(member) and getmembers( + member, lambda name: isinstance(name, enum.EnumMeta) + ): return True return False @@ -534,7 +569,8 @@ def is_enum(member): # valid. self.assertTrue( hasattr( - getattr( - service.enums, enum_wrapper_name), enum_name), + getattr(service.enums, enum_wrapper_name), enum_name + ), f'Expected enum wrapper "{enum_wrapper_name}" to ' - f'contain enum class "{enum_name}"') + f'contain enum class "{enum_name}"', + ) diff --git a/tests/config_test.py b/tests/config_test.py index 5ab3dddd2..6f591c7b6 100644 --- a/tests/config_test.py +++ b/tests/config_test.py @@ -20,227 +20,260 @@ from google.ads.google_ads import config + class ConfigTest(FileTestCase): def setUp(self): self.setUpPyfakefs() - self.developer_token = 'abc123' - self.client_id = 'client_id_123456789' - self.client_secret = 'client_secret_987654321' - self.refresh_token = 'refresh' - self.login_customer_id = '1234567890' - self.path_to_private_key_file = '/test/path/to/config.json' - self.delegated_account = 'delegated@account.com' - self.endpoint = 'www.testendpoint.com' + self.developer_token = "abc123" + self.client_id = "client_id_123456789" + self.client_secret = "client_secret_987654321" + self.refresh_token = "refresh" + self.login_customer_id = "1234567890" + self.path_to_private_key_file = "/test/path/to/config.json" + self.delegated_account = "delegated@account.com" + self.endpoint = "www.testendpoint.com" def test_load_from_yaml_file(self): - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') - self.fs.create_file(file_path, contents=yaml.safe_dump({ - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token})) + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") + self.fs.create_file( + file_path, + contents=yaml.safe_dump( + { + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } + ), + ) result = config.load_from_yaml_file() - self.assertEqual(result['developer_token'], self.developer_token) - self.assertEqual(result['client_id'], self.client_id) - self.assertEqual(result['client_secret'], self.client_secret) - self.assertEqual(result['refresh_token'], self.refresh_token) + self.assertEqual(result["developer_token"], self.developer_token) + self.assertEqual(result["client_id"], self.client_id) + self.assertEqual(result["client_secret"], self.client_secret) + self.assertEqual(result["refresh_token"], self.refresh_token) def test_load_from_yaml_file_missing_required_key(self): - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") # save a YAML file without a required developer_token key - self.fs.create_file(file_path, contents=yaml.safe_dump({ - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token})) + self.fs.create_file( + file_path, + contents=yaml.safe_dump( + { + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } + ), + ) - self.assertRaises( - ValueError, - config.load_from_yaml_file) + self.assertRaises(ValueError, config.load_from_yaml_file) def test_load_from_yaml_file_with_path(self): - custom_path = os.path.expanduser('/test/custom/path') - file_path = os.path.join(custom_path, 'google-ads.yaml') - self.fs.create_file(file_path, contents=yaml.safe_dump({ - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token})) + custom_path = os.path.expanduser("/test/custom/path") + file_path = os.path.join(custom_path, "google-ads.yaml") + self.fs.create_file( + file_path, + contents=yaml.safe_dump( + { + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } + ), + ) result = config.load_from_yaml_file(path=file_path) - self.assertEqual(result['developer_token'], self.developer_token) - self.assertEqual(result['client_id'], self.client_id) - self.assertEqual(result['client_secret'], self.client_secret) - self.assertEqual(result['refresh_token'], self.refresh_token) + self.assertEqual(result["developer_token"], self.developer_token) + self.assertEqual(result["client_id"], self.client_id) + self.assertEqual(result["client_secret"], self.client_secret) + self.assertEqual(result["refresh_token"], self.refresh_token) def test_load_from_yaml_file_login_cid_int(self): login_cid_int = 1234567890 - file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') - self.fs.create_file(file_path, contents=yaml.safe_dump({ - 'login_customer_id': login_cid_int, - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token})) + file_path = os.path.join(os.path.expanduser("~"), "google-ads.yaml") + self.fs.create_file( + file_path, + contents=yaml.safe_dump( + { + "login_customer_id": login_cid_int, + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } + ), + ) result = config.load_from_yaml_file() - self.assertEqual(result['developer_token'], self.developer_token) - self.assertEqual(result['client_id'], self.client_id) - self.assertEqual(result['client_secret'], self.client_secret) - self.assertEqual(result['refresh_token'], self.refresh_token) + self.assertEqual(result["developer_token"], self.developer_token) + self.assertEqual(result["client_id"], self.client_id) + self.assertEqual(result["client_secret"], self.client_secret) + self.assertEqual(result["refresh_token"], self.refresh_token) def test_parse_yaml_document_to_dict(self): - yaml_doc = ('client_id: {}\n' - 'client_secret: {}\n' - 'developer_token: {}\n' - 'refresh_token: {}\n'.format( - self.client_id, self.client_secret, - self.developer_token, self.refresh_token)) + yaml_doc = ( + "client_id: {}\n" + "client_secret: {}\n" + "developer_token: {}\n" + "refresh_token: {}\n".format( + self.client_id, + self.client_secret, + self.developer_token, + self.refresh_token, + ) + ) result = config.parse_yaml_document_to_dict(yaml_doc) - self.assertEqual(result['developer_token'], self.developer_token) - self.assertEqual(result['client_id'], self.client_id) - self.assertEqual(result['client_secret'], self.client_secret) - self.assertEqual(result['refresh_token'], self.refresh_token) + self.assertEqual(result["developer_token"], self.developer_token) + self.assertEqual(result["client_id"], self.client_id) + self.assertEqual(result["client_secret"], self.client_secret) + self.assertEqual(result["refresh_token"], self.refresh_token) def test_parse_yaml_document_to_dict_missing_required_key(self): # YAML document is missing the required developer_token key - yaml_doc = ('client_id: {}\n' - 'client_secret: {}\n' - 'refresh_token: {}\n'.format( - self.client_id, self.client_secret, - self.developer_token, self.refresh_token)) + yaml_doc = ( + "client_id: {}\n" + "client_secret: {}\n" + "refresh_token: {}\n".format( + self.client_id, + self.client_secret, + self.developer_token, + self.refresh_token, + ) + ) self.assertRaises( - ValueError, - config.parse_yaml_document_to_dict, - yaml_doc) + ValueError, config.parse_yaml_document_to_dict, yaml_doc + ) def test_load_from_dict(self): config_data = { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } self.assertEqual(config.load_from_dict(config_data), config_data) - + def test_load_from_dict_error(self): config_data = 111 self.assertRaises(ValueError, config.load_from_dict, config_data) def test_load_from_env(self): environ = { - 'GOOGLE_ADS_DEVELOPER_TOKEN': self.developer_token, - 'GOOGLE_ADS_CLIENT_ID': self.client_id, - 'GOOGLE_ADS_CLIENT_SECRET': self.client_secret, - 'GOOGLE_ADS_REFRESH_TOKEN': self.refresh_token, - 'GOOGLE_ADS_LOGGING': '{"test": true}', - 'GOOGLE_ADS_ENDPOINT': self.endpoint, - 'GOOGLE_ADS_LOGIN_CUSTOMER_ID': self.login_customer_id, - 'GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE': - self.path_to_private_key_file, - 'GOOGLE_ADS_DELEGATED_ACCOUNT': self.delegated_account} - - with mock.patch('os.environ', environ): + "GOOGLE_ADS_DEVELOPER_TOKEN": self.developer_token, + "GOOGLE_ADS_CLIENT_ID": self.client_id, + "GOOGLE_ADS_CLIENT_SECRET": self.client_secret, + "GOOGLE_ADS_REFRESH_TOKEN": self.refresh_token, + "GOOGLE_ADS_LOGGING": '{"test": true}', + "GOOGLE_ADS_ENDPOINT": self.endpoint, + "GOOGLE_ADS_LOGIN_CUSTOMER_ID": self.login_customer_id, + "GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE": self.path_to_private_key_file, + "GOOGLE_ADS_DELEGATED_ACCOUNT": self.delegated_account, + } + + with mock.patch("os.environ", environ): result = config.load_from_env() - self.assertEqual(result, { - 'developer_token': self.developer_token, - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token, - 'logging': {'test': True}, - 'endpoint': self.endpoint, - 'login_customer_id': self.login_customer_id, - 'path_to_private_key_file': self.path_to_private_key_file, - 'delegated_account': self.delegated_account}) + self.assertEqual( + result, + { + "developer_token": self.developer_token, + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + "logging": {"test": True}, + "endpoint": self.endpoint, + "login_customer_id": self.login_customer_id, + "path_to_private_key_file": self.path_to_private_key_file, + "delegated_account": self.delegated_account, + }, + ) def test_load_from_env_missing_required_key(self): # environ is missing required developer_token key environ = { - 'GOOGLE_ADS_CLIENT_ID': self.client_id, - 'GOOGLE_ADS_CLIENT_SECRET': self.client_secret, - 'GOOGLE_ADS_REFRESH_TOKEN': self.refresh_token, - 'GOOGLE_ADS_LOGGING': '{"test": true}', - 'GOOGLE_ADS_ENDPOINT': self.endpoint, - 'GOOGLE_ADS_LOGIN_CUSTOMER_ID': self.login_customer_id, - 'GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE': - self.path_to_private_key_file, - 'GOOGLE_ADS_DELEGATED_ACCOUNT': self.delegated_account} - - with mock.patch('os.environ', environ): - self.assertRaises( - ValueError, - config.load_from_env) + "GOOGLE_ADS_CLIENT_ID": self.client_id, + "GOOGLE_ADS_CLIENT_SECRET": self.client_secret, + "GOOGLE_ADS_REFRESH_TOKEN": self.refresh_token, + "GOOGLE_ADS_LOGGING": '{"test": true}', + "GOOGLE_ADS_ENDPOINT": self.endpoint, + "GOOGLE_ADS_LOGIN_CUSTOMER_ID": self.login_customer_id, + "GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE": self.path_to_private_key_file, + "GOOGLE_ADS_DELEGATED_ACCOUNT": self.delegated_account, + } + + with mock.patch("os.environ", environ): + self.assertRaises(ValueError, config.load_from_env) def test_validate_dict(self): - config_data = {'invalid': 'config'} + config_data = {"invalid": "config"} - self.assertRaises( - ValueError, - config.validate_dict, - config_data - ) + self.assertRaises(ValueError, config.validate_dict, config_data) def test_validate_dict(self): - config_data = {key: 'test' for key in config._REQUIRED_KEYS} + config_data = {key: "test" for key in config._REQUIRED_KEYS} try: config.validate_dict(config_data) except ValueError as ex: - self.fail('test_validate_dict failed unexpectedly: {}'.format(ex)) + self.fail("test_validate_dict failed unexpectedly: {}".format(ex)) def test_validate_dict_with_invalid_login_cid(self): - config_data = {key: 'test' for key in config._REQUIRED_KEYS} - config_data['login_customer_id'] = '123-456-5789' - self.assertRaises( - ValueError, - config.validate_dict, - config_data) + config_data = {key: "test" for key in config._REQUIRED_KEYS} + config_data["login_customer_id"] = "123-456-5789" + self.assertRaises(ValueError, config.validate_dict, config_data) def test_validate_dict_with_valid_login_cid(self): - config_data = {key: 'test' for key in config._REQUIRED_KEYS} - config_data['login_customer_id'] = '1234567893' + config_data = {key: "test" for key in config._REQUIRED_KEYS} + config_data["login_customer_id"] = "1234567893" try: config.validate_dict(config_data) except ValueError as ex: - self.fail('test_validate_dict_with_login_cid failed unexpectedly: ' - '{}'.format(ex)) + self.fail( + "test_validate_dict_with_login_cid failed unexpectedly: " + "{}".format(ex) + ) def test_validate_login_customer_id_invalid(self): self.assertRaises( - ValueError, - config.validate_login_customer_id, - '123-456-7890') + ValueError, config.validate_login_customer_id, "123-456-7890" + ) def test_validate_login_customer_id_too_short(self): - self.assertRaises( - ValueError, - config.validate_login_customer_id, - '123') + self.assertRaises(ValueError, config.validate_login_customer_id, "123") def test_get_oauth2_installed_app_keys(self): - self.assertEqual(config.get_oauth2_installed_app_keys(), - config._OAUTH2_INSTALLED_APP_KEYS) + self.assertEqual( + config.get_oauth2_installed_app_keys(), + config._OAUTH2_INSTALLED_APP_KEYS, + ) def test_get_oauth2_service_account_keys(self): - self.assertEqual(config.get_oauth2_service_account_keys(), - config._OAUTH2_SERVICE_ACCOUNT_KEYS) + self.assertEqual( + config.get_oauth2_service_account_keys(), + config._OAUTH2_SERVICE_ACCOUNT_KEYS, + ) def test_convert_login_customer_id_to_str_with_int(self): - config_data = {'login_customer_id': 1234567890} - expected = {'login_customer_id': '1234567890'} - self.assertEqual(config.convert_login_customer_id_to_str(config_data), - expected) + config_data = {"login_customer_id": 1234567890} + expected = {"login_customer_id": "1234567890"} + self.assertEqual( + config.convert_login_customer_id_to_str(config_data), expected + ) def test_parse_login_customer_id_with_str(self): - config_data = {'login_customer_id': '1234567890'} - self.assertEqual(config.convert_login_customer_id_to_str(config_data), - config_data) + config_data = {"login_customer_id": "1234567890"} + self.assertEqual( + config.convert_login_customer_id_to_str(config_data), config_data + ) def test_parse_login_customer_id_with_none(self): - config_data = {'not_login_customer_id': 1234567890} - self.assertEqual(config.convert_login_customer_id_to_str(config_data), - config_data) + config_data = {"not_login_customer_id": 1234567890} + self.assertEqual( + config.convert_login_customer_id_to_str(config_data), config_data + ) diff --git a/tests/interceptors/exception_interceptor_test.py b/tests/interceptors/exception_interceptor_test.py index 2b6733e27..8741052c7 100644 --- a/tests/interceptors/exception_interceptor_test.py +++ b/tests/interceptors/exception_interceptor_test.py @@ -20,8 +20,9 @@ from google.ads.google_ads.errors import GoogleAdsException from google.ads.google_ads import client as Client from google.ads.google_ads.interceptors import ExceptionInterceptor -from google.ads.google_ads.interceptors.exception_interceptor import \ - _UnaryStreamWrapper +from google.ads.google_ads.interceptors.exception_interceptor import ( + _UnaryStreamWrapper, +) latest_version = Client._DEFAULT_VERSION @@ -29,7 +30,6 @@ class ExceptionInterceptorTest(TestCase): - def _create_test_interceptor(self): """Creates and returns an ExceptionInterceptor instance @@ -54,12 +54,15 @@ def exception(self): interceptor = self._create_test_interceptor() - self.assertRaises(GoogleAdsException, - interceptor._handle_grpc_failure, - MockRpcErrorResponse()) + self.assertRaises( + GoogleAdsException, + interceptor._handle_grpc_failure, + MockRpcErrorResponse(), + ) def test_handle_grpc_failure_retryable(self): """Raises retryable exceptions as-is.""" + class MockRpcErrorResponse(grpc.RpcError): def code(self): return grpc.StatusCode.INTERNAL @@ -69,33 +72,38 @@ def exception(self): interceptor = self._create_test_interceptor() - self.assertRaises(MockRpcErrorResponse, - interceptor._handle_grpc_failure, - MockRpcErrorResponse()) + self.assertRaises( + MockRpcErrorResponse, + interceptor._handle_grpc_failure, + MockRpcErrorResponse(), + ) def test_handle_grpc_failure_not_google_ads_failure(self): """Raises as-is non-retryable non-GoogleAdsFailure exceptions.""" + class MockRpcErrorResponse(grpc.RpcError): def code(self): return grpc.StatusCode.INVALID_ARGUMENT def trailing_metadata(self): - return (('bad-failure-key', 'arbitrary-value'),) + return (("bad-failure-key", "arbitrary-value"),) def exception(self): return self interceptor = self._create_test_interceptor() - self.assertRaises(MockRpcErrorResponse, - interceptor._handle_grpc_failure, - MockRpcErrorResponse()) + self.assertRaises( + MockRpcErrorResponse, + interceptor._handle_grpc_failure, + MockRpcErrorResponse(), + ) def test_intercept_unary_unary_response_is_exception(self): """If response.exception() is not None exception is handled.""" mock_exception = grpc.RpcError() - class MockResponse(): + class MockResponse: def exception(self): return mock_exception @@ -110,18 +118,20 @@ def mock_continuation(client_call_details, request): interceptor = self._create_test_interceptor() - with mock.patch.object(interceptor, '_handle_grpc_failure'): + with mock.patch.object(interceptor, "_handle_grpc_failure"): interceptor.intercept_unary_unary( - mock_continuation, mock_client_call_details, mock_request) + mock_continuation, mock_client_call_details, mock_request + ) interceptor._handle_grpc_failure.assert_called_once_with( - mock_response) + mock_response + ) def test_intercept_unary_stream_response_is_exception(self): """Ensure errors raised from response iteration are handled/wrapped.""" mock_exception = grpc.RpcError() - class MockResponse(): + class MockResponse: # Mock the response object so that it raises an error when # iterated upon. def __next__(self): @@ -138,9 +148,10 @@ def mock_continuation(client_call_details, request): interceptor = self._create_test_interceptor() - with mock.patch.object(interceptor, '_handle_grpc_failure'): + with mock.patch.object(interceptor, "_handle_grpc_failure"): response = interceptor.intercept_unary_stream( - mock_continuation, mock_client_call_details, mock_request) + mock_continuation, mock_client_call_details, mock_request + ) # Ensure the returned value is a wrapped response object. self.assertIsInstance(response, _UnaryStreamWrapper) @@ -151,12 +162,13 @@ def mock_continuation(client_call_details, request): # Check that the error handler method on the interceptor instance # was called as a result of the iteration. interceptor._handle_grpc_failure.assert_called_once_with( - mock_response) - + mock_response + ) def test_intercept_unary_unary_response_is_successful(self): """If response.exception() is None response is returned.""" - class MockResponse(): + + class MockResponse: def exception(self): return None @@ -172,13 +184,15 @@ def mock_continuation(client_call_details, request): interceptor = self._create_test_interceptor() result = interceptor.intercept_unary_unary( - mock_continuation, mock_client_call_details, mock_request) + mock_continuation, mock_client_call_details, mock_request + ) self.assertEqual(result, mock_response) def test_intercept_unary_stream_response_is_successful(self): """If response.exception() is None response is returned.""" - class MockResponse(): + + class MockResponse: def exception(self): return None @@ -194,7 +208,8 @@ def mock_continuation(client_call_details, request): interceptor = self._create_test_interceptor() result = interceptor.intercept_unary_stream( - mock_continuation, mock_client_call_details, mock_request) + mock_continuation, mock_client_call_details, mock_request + ) # Ensure the returned value is a wrapped response object. self.assertIsInstance(result, _UnaryStreamWrapper) diff --git a/tests/interceptors/interceptor_test.py b/tests/interceptors/interceptor_test.py index 95ae91f8e..5fc19eb15 100644 --- a/tests/interceptors/interceptor_test.py +++ b/tests/interceptors/interceptor_test.py @@ -23,46 +23,48 @@ from google.ads.google_ads.client import _DEFAULT_VERSION as default_version from google.ads.google_ads.interceptors.interceptor import Interceptor -errors_path = f'google.ads.google_ads.{default_version}.proto.errors.errors_pb2' +errors_path = f"google.ads.google_ads.{default_version}.proto.errors.errors_pb2" error_protos = import_module(errors_path) _MOCK_FAILURE_VALUE = b"\n \n\x02\x08\x10\x12\x1aInvalid customer ID '123'." class InterceptorTest(TestCase): - def test_get_request_id_from_metadata(self): """Ensures request-id is retrieved from metadata tuple.""" - mock_metadata = (('request-id', '123456'),) + mock_metadata = (("request-id", "123456"),) result = Interceptor.get_request_id_from_metadata(mock_metadata) - self.assertEqual(result, '123456') + self.assertEqual(result, "123456") def test_get_request_id_no_id(self): """Ensures None is returned if metadata does't contain a request ID.""" - mock_metadata = (('another-key', 'another-val'),) - result = (Interceptor.get_request_id_from_metadata(mock_metadata)) + mock_metadata = (("another-key", "another-val"),) + result = Interceptor.get_request_id_from_metadata(mock_metadata) self.assertEqual(result, None) def test_parse_metadata_to_json(self): mock_metadata = [ - ('x-goog-api-client', - 'gl-python/123 grpc/123 gax/123'), - ('developer-token', '0000000000'), - ('login-customer-id', '9999999999')] + ("x-goog-api-client", "gl-python/123 grpc/123 gax/123"), + ("developer-token", "0000000000"), + ("login-customer-id", "9999999999"), + ] result = Interceptor.parse_metadata_to_json(mock_metadata) - self.assertEqual(result, '{\n' - ' "developer-token": "REDACTED",\n' - ' "login-customer-id": "9999999999",\n' - ' "x-goog-api-client": "gl-python/123 ' - 'grpc/123 gax/123"\n' - '}') + self.assertEqual( + result, + "{\n" + ' "developer-token": "REDACTED",\n' + ' "login-customer-id": "9999999999",\n' + ' "x-goog-api-client": "gl-python/123 ' + 'grpc/123 gax/123"\n' + "}", + ) def test_parse_metadata_to_json_with_none(self): mock_metadata = None result = Interceptor.parse_metadata_to_json(mock_metadata) - self.assertEqual(result, '{}') + self.assertEqual(result, "{}") def test_get_google_ads_failure(self): """Obtains the content of a google ads failure from metadata.""" @@ -74,14 +76,14 @@ def test_get_google_ads_failure(self): def test_get_google_ads_failure_decode_error(self): """Returns none if the google ads failure cannot be decoded.""" interceptor = Interceptor(default_version) - mock_failure_value = _MOCK_FAILURE_VALUE + b'1234' + mock_failure_value = _MOCK_FAILURE_VALUE + b"1234" mock_metadata = ((interceptor._failure_key, mock_failure_value),) result = interceptor._get_google_ads_failure(mock_metadata) self.assertEqual(result, None) def test_get_google_ads_failure_no_failure_key(self): """Returns None if an error cannot be found in metadata.""" - mock_metadata = (('another-key', 'another-val'),) + mock_metadata = (("another-key", "another-val"),) interceptor = Interceptor(default_version) result = interceptor._get_google_ads_failure(mock_metadata) self.assertEqual(result, None) @@ -99,14 +101,17 @@ def test_init_no_error_proto_load(self): def test_deferred_error_proto_module_load(self): """Tests that import_module is called when an API error is received.""" - with mock.patch('google.ads.google_ads.interceptors.' - 'interceptor.import_module') as import_mock: + with mock.patch( + "google.ads.google_ads.interceptors." "interceptor.import_module" + ) as import_mock: interceptor = Interceptor(default_version) mock_metadata = ((interceptor._failure_key, _MOCK_FAILURE_VALUE),) interceptor._get_google_ads_failure(mock_metadata) - import_mock.assert_called_once_with('google.ads.google_ads.' - f'{default_version}.proto.' - 'errors.errors_pb2') + import_mock.assert_called_once_with( + "google.ads.google_ads." + f"{default_version}.proto." + "errors.errors_pb2" + ) def test_get_error_from_response_does_not_cache_error(self): """Ensures errors are not cached across requests..""" @@ -117,9 +122,12 @@ def code(self): return grpc.StatusCode.INVALID_ARGUMENT def trailing_metadata(self): - return (( - interceptor._failure_key, - b"\n \n\x02\x08\x10\x12\x1aInvalid customer ID '123'."),) + return ( + ( + interceptor._failure_key, + b"\n \n\x02\x08\x10\x12\x1aInvalid customer ID '123'.", + ), + ) def exception(self): return self diff --git a/tests/interceptors/logging_interceptor_test.py b/tests/interceptors/logging_interceptor_test.py index e090314ce..68e3f0d70 100644 --- a/tests/interceptors/logging_interceptor_test.py +++ b/tests/interceptors/logging_interceptor_test.py @@ -30,25 +30,28 @@ class LoggingInterceptorTest(TestCase): """Tests for the google.ads.googleads.client.LoggingInterceptor class.""" - _MOCK_CONFIG = {'test': True} - _MOCK_ENDPOINT = 'www.test-endpoint.com' - _MOCK_INITIAL_METADATA = [('developer-token', '123456'), - ('header', 'value')] - _MOCK_CUSTOMER_ID = '123456' - _MOCK_REQUEST_ID = '654321xyz' - _MOCK_METHOD = 'test/method' - _MOCK_TRAILING_METADATA = (('request-id', _MOCK_REQUEST_ID),) + _MOCK_CONFIG = {"test": True} + _MOCK_ENDPOINT = "www.test-endpoint.com" + _MOCK_INITIAL_METADATA = [ + ("developer-token", "123456"), + ("header", "value"), + ] + _MOCK_CUSTOMER_ID = "123456" + _MOCK_REQUEST_ID = "654321xyz" + _MOCK_METHOD = "test/method" + _MOCK_TRAILING_METADATA = (("request-id", _MOCK_REQUEST_ID),) _MOCK_TRANSPORT_ERROR_METADATA = tuple() - _MOCK_ERROR_MESSAGE = 'Test error message' - _MOCK_TRANSPORT_ERROR_MESSAGE = u'Received RST_STREAM with error code 2' - _MOCK_DEBUG_ERROR_STRING = u'{"description":"Error received from peer"}' - _MOCK_RESPONSE_MSG = 'test response msg' + _MOCK_ERROR_MESSAGE = "Test error message" + _MOCK_TRANSPORT_ERROR_MESSAGE = "Received RST_STREAM with error code 2" + _MOCK_DEBUG_ERROR_STRING = '{"description":"Error received from peer"}' + _MOCK_RESPONSE_MSG = "test response msg" _MOCK_EXCEPTION = mock.Mock() _MOCK_ERROR = mock.Mock() _MOCK_FAILURE = mock.Mock() - def _create_test_interceptor(self, logger=mock.Mock(), version=None, - endpoint=_MOCK_ENDPOINT): + def _create_test_interceptor( + self, logger=mock.Mock(), version=None, endpoint=_MOCK_ENDPOINT + ): """Creates a LoggingInterceptor instance. Accepts parameters that are used to override defaults when needed @@ -93,6 +96,7 @@ def _get_trailing_metadata_fn(self): Returns: A function that returns a tuple of mock metadata. """ + def mock_trailing_metadata_fn(): return self._MOCK_TRAILING_METADATA @@ -128,6 +132,7 @@ def _get_mock_transport_exception(self): A Mock instance with mock "debug_error_string," "details," and "trailing_metadata" methods. """ + def _mock_debug_error_string(): return self._MOCK_DEBUG_ERROR_STRING @@ -163,6 +168,7 @@ def _get_mock_response(self, failed=False): failed: a bool indicating whether the mock response should be in a failed state or not. Default is False. """ + def mock_exception_fn(): if failed: return self._get_mock_exception() @@ -190,6 +196,7 @@ def _get_mock_continuation_fn(self, fail=False): failed: a bool indicating whether the function should return a response that mocks a failure. """ + def mock_continuation_fn(*args): mock_response = self._get_mock_response(fail) return mock_response @@ -211,9 +218,8 @@ def test_intercept_unary_unary_unconfigured(self): logger_spy = mock.Mock(wraps=Client._logger) interceptor = LoggingInterceptor(logger_spy, default_version) interceptor.intercept_unary_unary( - mock_continuation_fn, - mock_client_call_details, - mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) logger_spy.debug.assert_not_called() logger_spy.info.assert_not_called() @@ -234,9 +240,8 @@ def test_intercept_unary_stream_unconfigured(self): logger_spy = mock.Mock(wraps=Client._logger) interceptor = LoggingInterceptor(logger_spy, default_version) interceptor.intercept_unary_stream( - mock_continuation_fn, - mock_client_call_details, - mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) logger_spy.debug.assert_not_called() logger_spy.info.assert_not_called() @@ -252,32 +257,46 @@ def test_intercept_unary_unary_successful_request(self): mock_continuation_fn = self._get_mock_continuation_fn() mock_request = self._get_mock_request() mock_response = mock_continuation_fn( - mock_client_call_details, mock_request) + mock_client_call_details, mock_request + ) mock_trailing_metadata = mock_response.trailing_metadata() - with mock.patch('logging.config.dictConfig'), \ - mock.patch('google.ads.google_ads.client._logger') as mock_logger: + with mock.patch("logging.config.dictConfig"), mock.patch( + "google.ads.google_ads.client._logger" + ) as mock_logger: interceptor = self._create_test_interceptor(logger=mock_logger) interceptor.intercept_unary_unary( - mock_continuation_fn, - mock_client_call_details, - mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) mock_logger.info.assert_called_once_with( interceptor._SUMMARY_LOG_LINE.format( - self._MOCK_CUSTOMER_ID, self._MOCK_ENDPOINT, - mock_client_call_details.method, self._MOCK_REQUEST_ID, - False, None)) + self._MOCK_CUSTOMER_ID, + self._MOCK_ENDPOINT, + mock_client_call_details.method, + self._MOCK_REQUEST_ID, + False, + None, + ) + ) initial_metadata = interceptor.parse_metadata_to_json( - mock_client_call_details.metadata) + mock_client_call_details.metadata + ) trailing_metadata = interceptor.parse_metadata_to_json( - mock_trailing_metadata) + mock_trailing_metadata + ) mock_logger.debug.assert_called_once_with( interceptor._FULL_REQUEST_LOG_LINE.format( - self._MOCK_METHOD, self._MOCK_ENDPOINT, initial_metadata, - mock_request, trailing_metadata, mock_response.result())) + self._MOCK_METHOD, + self._MOCK_ENDPOINT, + initial_metadata, + mock_request, + trailing_metadata, + mock_response.result(), + ) + ) def test_intercept_unary_stream_successful_request(self): """_logger.info and _logger.debug should be called. @@ -296,29 +315,42 @@ def mock_add_done_callback(fn): mock_response.add_done_callback = mock_add_done_callback mock_continuation_fn = mock.Mock(return_value=mock_response) - with mock.patch('logging.config.dictConfig'), \ - mock.patch('google.ads.google_ads.client._logger') as mock_logger: + with mock.patch("logging.config.dictConfig"), mock.patch( + "google.ads.google_ads.client._logger" + ) as mock_logger: interceptor = self._create_test_interceptor(logger=mock_logger) interceptor.intercept_unary_stream( - mock_continuation_fn, - mock_client_call_details, - mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) mock_logger.info.assert_called_once_with( interceptor._SUMMARY_LOG_LINE.format( - self._MOCK_CUSTOMER_ID, self._MOCK_ENDPOINT, - mock_client_call_details.method, self._MOCK_REQUEST_ID, - False, None)) + self._MOCK_CUSTOMER_ID, + self._MOCK_ENDPOINT, + mock_client_call_details.method, + self._MOCK_REQUEST_ID, + False, + None, + ) + ) initial_metadata = interceptor.parse_metadata_to_json( - mock_client_call_details.metadata) + mock_client_call_details.metadata + ) trailing_metadata = interceptor.parse_metadata_to_json( - mock_trailing_metadata) + mock_trailing_metadata + ) mock_logger.debug.assert_called_once_with( interceptor._FULL_REQUEST_LOG_LINE.format( - self._MOCK_METHOD, self._MOCK_ENDPOINT, initial_metadata, - mock_request, trailing_metadata, mock_response.result())) + self._MOCK_METHOD, + self._MOCK_ENDPOINT, + initial_metadata, + mock_request, + trailing_metadata, + mock_response.result(), + ) + ) def test_intercept_unary_unary_failed_request(self): """_logger.warning and _logger.info should be called. @@ -330,33 +362,44 @@ def test_intercept_unary_unary_failed_request(self): mock_continuation_fn = self._get_mock_continuation_fn(fail=True) mock_request = self._get_mock_request() - with mock.patch( - 'logging.config.dictConfig' - ), mock.patch( - 'google.ads.google_ads.client._logger' + with mock.patch("logging.config.dictConfig"), mock.patch( + "google.ads.google_ads.client._logger" ) as mock_logger: interceptor = self._create_test_interceptor(logger=mock_logger) mock_response = interceptor.intercept_unary_unary( - mock_continuation_fn, mock_client_call_details, mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) mock_trailing_metadata = mock_response.trailing_metadata() mock_logger.warning.assert_called_once_with( interceptor._SUMMARY_LOG_LINE.format( - self._MOCK_CUSTOMER_ID, self._MOCK_ENDPOINT, - mock_client_call_details.method, self._MOCK_REQUEST_ID, - True, self._MOCK_ERROR_MESSAGE)) + self._MOCK_CUSTOMER_ID, + self._MOCK_ENDPOINT, + mock_client_call_details.method, + self._MOCK_REQUEST_ID, + True, + self._MOCK_ERROR_MESSAGE, + ) + ) initial_metadata = interceptor.parse_metadata_to_json( - mock_client_call_details.metadata) + mock_client_call_details.metadata + ) trailing_metadata = interceptor.parse_metadata_to_json( - mock_trailing_metadata) + mock_trailing_metadata + ) mock_logger.info.assert_called_once_with( interceptor._FULL_FAULT_LOG_LINE.format( - self._MOCK_METHOD, self._MOCK_ENDPOINT, initial_metadata, - mock_request, trailing_metadata, - mock_response.exception().failure)) + self._MOCK_METHOD, + self._MOCK_ENDPOINT, + initial_metadata, + mock_request, + trailing_metadata, + mock_response.exception().failure, + ) + ) def test_intercept_unary_stream_failed_request(self): """_logger.warning and _logger.info should be called. @@ -374,37 +417,48 @@ def mock_add_done_callback(fn): mock_response.add_done_callback = mock_add_done_callback mock_continuation_fn = mock.Mock(return_value=mock_response) - with mock.patch( - 'logging.config.dictConfig' - ), mock.patch( - 'google.ads.google_ads.client._logger' + with mock.patch("logging.config.dictConfig"), mock.patch( + "google.ads.google_ads.client._logger" ) as mock_logger: interceptor = self._create_test_interceptor(logger=mock_logger) mock_response = interceptor.intercept_unary_stream( - mock_continuation_fn, mock_client_call_details, mock_request) + mock_continuation_fn, mock_client_call_details, mock_request + ) mock_trailing_metadata = mock_response.trailing_metadata() mock_logger.warning.assert_called_once_with( interceptor._SUMMARY_LOG_LINE.format( - self._MOCK_CUSTOMER_ID, self._MOCK_ENDPOINT, - mock_client_call_details.method, self._MOCK_REQUEST_ID, - True, self._MOCK_ERROR_MESSAGE)) + self._MOCK_CUSTOMER_ID, + self._MOCK_ENDPOINT, + mock_client_call_details.method, + self._MOCK_REQUEST_ID, + True, + self._MOCK_ERROR_MESSAGE, + ) + ) initial_metadata = interceptor.parse_metadata_to_json( - mock_client_call_details.metadata) + mock_client_call_details.metadata + ) trailing_metadata = interceptor.parse_metadata_to_json( - mock_trailing_metadata) + mock_trailing_metadata + ) mock_logger.info.assert_called_once_with( interceptor._FULL_FAULT_LOG_LINE.format( - self._MOCK_METHOD, self._MOCK_ENDPOINT, initial_metadata, - mock_request, trailing_metadata, - mock_response.exception().failure)) + self._MOCK_METHOD, + self._MOCK_ENDPOINT, + initial_metadata, + mock_request, + trailing_metadata, + mock_response.exception().failure, + ) + ) def test_get_initial_metadata(self): """_Returns a tuple of metadata from client_call_details.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_client_call_details = mock.Mock() mock_client_call_details.metadata = self._MOCK_INITIAL_METADATA interceptor = self._create_test_interceptor() @@ -413,7 +467,7 @@ def test_get_initial_metadata(self): def test_get_initial_metadata_none(self): """Returns an empty tuple if initial_metadata isn't present.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_client_call_details = {} interceptor = self._create_test_interceptor() result = interceptor._get_initial_metadata(mock_client_call_details) @@ -421,7 +475,7 @@ def test_get_initial_metadata_none(self): def test_get_call_method(self): """Returns a str of the call method from client_call_details.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_client_call_details = mock.Mock() mock_client_call_details.method = self._MOCK_METHOD interceptor = self._create_test_interceptor() @@ -430,7 +484,7 @@ def test_get_call_method(self): def test_get_call_method_none(self): """Returns None if method is not present on client_call_details.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_client_call_details = {} interceptor = self._create_test_interceptor() result = interceptor._get_call_method(mock_client_call_details) @@ -440,30 +494,28 @@ def test_parse_exception_to_str_transport_failure(self): """ Calls _format_json_object with error obj's debug_error_string.""" interceptor = self._create_test_interceptor() - with mock.patch( - 'logging.config.dictConfig' - ), mock.patch.object( - interceptor, - 'format_json_object' + with mock.patch("logging.config.dictConfig"), mock.patch.object( + interceptor, "format_json_object" ) as mock_parser: mock_exception = self._get_mock_transport_exception() interceptor._parse_exception_to_str(mock_exception) mock_parser.assert_called_once_with( - json.loads(self._MOCK_DEBUG_ERROR_STRING)) + json.loads(self._MOCK_DEBUG_ERROR_STRING) + ) def test_parse_exception_to_str_unknown_failure(self): """Returns an empty JSON string if nothing can be parsed to JSON.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_exception = mock.Mock() del mock_exception.failure del mock_exception.debug_error_string interceptor = self._create_test_interceptor() result = interceptor._parse_exception_to_str(mock_exception) - self.assertEqual(result, '{}') + self.assertEqual(result, "{}") def test_get_trailing_metadata(self): """Retrieves metadata from a response object.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_response = self._get_mock_response() interceptor = self._create_test_interceptor() result = interceptor._get_trailing_metadata(mock_response) @@ -471,7 +523,7 @@ def test_get_trailing_metadata(self): def test_get_trailing_metadata_google_ads_failure(self): """Retrieves metadata from a failed response.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_response = self._get_mock_response(failed=True) del mock_response.trailing_metadata interceptor = self._create_test_interceptor() @@ -480,7 +532,8 @@ def test_get_trailing_metadata_google_ads_failure(self): def test_get_trailing_metadata_transport_failure(self): """Retrieves metadata from a transport error.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): + def mock_transport_exception(): return self._get_mock_transport_exception() @@ -493,7 +546,8 @@ def mock_transport_exception(): def test_get_trailing_metadata_unknown_failure(self): """Returns an empty tuple if metadata cannot be found.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): + def mock_unknown_exception(): # using a mock transport exception but deleting the # trailing_metadata attribute to simulate an unknown error type @@ -510,7 +564,7 @@ def mock_unknown_exception(): def test_get_fault_message(self): """Returns None if an error message cannot be found.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_exception = None interceptor = self._create_test_interceptor() result = interceptor._get_fault_message(mock_exception) @@ -518,7 +572,7 @@ def test_get_fault_message(self): def test_get_fault_message_google_ads_failure(self): """Retrieves an error message from a GoogleAdsException.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_exception = self._get_mock_exception() interceptor = self._create_test_interceptor() result = interceptor._get_fault_message(mock_exception) @@ -526,7 +580,7 @@ def test_get_fault_message_google_ads_failure(self): def test_get_fault_message_transport_failure(self): """Retrieves an error message from a transport error object.""" - with mock.patch('logging.config.dictConfig'): + with mock.patch("logging.config.dictConfig"): mock_exception = self._get_mock_transport_exception() interceptor = self._create_test_interceptor() result = interceptor._get_fault_message(mock_exception) @@ -542,22 +596,26 @@ def test_get_customer_id(self): """Retrieves a customer_id from a request object.""" mock_request = self._get_mock_request() interceptor = self._create_test_interceptor() - self.assertEqual(interceptor._get_customer_id(mock_request), - self._MOCK_CUSTOMER_ID) + self.assertEqual( + interceptor._get_customer_id(mock_request), self._MOCK_CUSTOMER_ID + ) def test_get_customer_id_from_resource_name(self): """Retrieves a customer_id from a request object via resource_name.""" - resource_name = f'customers/{self._MOCK_CUSTOMER_ID}' + resource_name = f"customers/{self._MOCK_CUSTOMER_ID}" mock_request = customer_service_pb2.GetCustomerRequest( - resource_name=resource_name) + resource_name=resource_name + ) interceptor = self._create_test_interceptor() - self.assertEqual(interceptor._get_customer_id(mock_request), - self._MOCK_CUSTOMER_ID) + self.assertEqual( + interceptor._get_customer_id(mock_request), self._MOCK_CUSTOMER_ID + ) def test_get_customer_id_from_invalid_resource_name(self): """Returns None for a resource_name not starting with 'customers'.""" - resource_name = f'languageConstants/{self._MOCK_CUSTOMER_ID}' + resource_name = f"languageConstants/{self._MOCK_CUSTOMER_ID}" mock_request = customer_service_pb2.GetCustomerRequest( - resource_name=resource_name) + resource_name=resource_name + ) interceptor = self._create_test_interceptor() self.assertEqual(interceptor._get_customer_id(mock_request), None) diff --git a/tests/interceptors/metadata_interceptor_test.py b/tests/interceptors/metadata_interceptor_test.py index 02a951386..04e51cedd 100644 --- a/tests/interceptors/metadata_interceptor_test.py +++ b/tests/interceptors/metadata_interceptor_test.py @@ -21,107 +21,110 @@ class MetadataInterceptorTest(TestCase): - def setUp(self): - self.mock_developer_token = '1234567890' - self.mock_login_customer_id = '0987654321' + self.mock_developer_token = "1234567890" + self.mock_login_customer_id = "0987654321" super(MetadataInterceptorTest, self).setUp() def test_init(self): interceptor = MetadataInterceptor( - self.mock_developer_token, - self.mock_login_customer_id) + self.mock_developer_token, self.mock_login_customer_id + ) self.assertEqual( interceptor.developer_token_meta, - ('developer-token', self.mock_developer_token)) + ("developer-token", self.mock_developer_token), + ) self.assertEqual( interceptor.login_customer_id_meta, - ('login-customer-id', self.mock_login_customer_id) + ("login-customer-id", self.mock_login_customer_id), ) def test_init_no_login_customer_id(self): - interceptor = MetadataInterceptor( - self.mock_developer_token, - None) + interceptor = MetadataInterceptor(self.mock_developer_token, None) self.assertEqual( interceptor.developer_token_meta, - ('developer-token', self.mock_developer_token)) - - self.assertEqual( - interceptor.login_customer_id_meta, - None + ("developer-token", self.mock_developer_token), ) + self.assertEqual(interceptor.login_customer_id_meta, None) + def test_update_client_call_details_metadata(self): interceptor = MetadataInterceptor( - self.mock_developer_token, - self.mock_login_customer_id) + self.mock_developer_token, self.mock_login_customer_id + ) - mock_metadata = list([('test-key', 'test-value')]) + mock_metadata = list([("test-key", "test-value")]) mock_client_call_details = mock.Mock() client_call_details = interceptor._update_client_call_details_metadata( - mock_client_call_details, mock_metadata) + mock_client_call_details, mock_metadata + ) self.assertEqual(client_call_details.metadata, mock_metadata) def test_intercept_unary_unary(self): interceptor = MetadataInterceptor( - self.mock_developer_token, - self.mock_login_customer_id) + self.mock_developer_token, self.mock_login_customer_id + ) mock_continuation = mock.Mock(return_value=None) mock_client_call_details = mock.Mock() - mock_client_call_details.method = 'test/method' + mock_client_call_details.method = "test/method" mock_client_call_details.timeout = 5 - mock_client_call_details.metadata = [('apples', 'oranges')] + mock_client_call_details.metadata = [("apples", "oranges")] mock_request = mock.Mock() with mock.patch.object( interceptor, - '_update_client_call_details_metadata', - wraps=interceptor._update_client_call_details_metadata + "_update_client_call_details_metadata", + wraps=interceptor._update_client_call_details_metadata, ) as mock_updater: interceptor.intercept_unary_unary( - mock_continuation, - mock_client_call_details, - mock_request) + mock_continuation, mock_client_call_details, mock_request + ) mock_updater.assert_called_once_with( - mock_client_call_details, [mock_client_call_details.metadata[0], - interceptor.developer_token_meta, - interceptor.login_customer_id_meta]) + mock_client_call_details, + [ + mock_client_call_details.metadata[0], + interceptor.developer_token_meta, + interceptor.login_customer_id_meta, + ], + ) mock_continuation.assert_called_once() def test_intercept_unary_stream(self): interceptor = MetadataInterceptor( - self.mock_developer_token, - self.mock_login_customer_id) + self.mock_developer_token, self.mock_login_customer_id + ) mock_continuation = mock.Mock(return_value=None) mock_client_call_details = mock.Mock() - mock_client_call_details.method = 'test/method' + mock_client_call_details.method = "test/method" mock_client_call_details.timeout = 5 - mock_client_call_details.metadata = [('apples', 'oranges')] + mock_client_call_details.metadata = [("apples", "oranges")] mock_request = mock.Mock() with mock.patch.object( interceptor, - '_update_client_call_details_metadata', - wraps=interceptor._update_client_call_details_metadata + "_update_client_call_details_metadata", + wraps=interceptor._update_client_call_details_metadata, ) as mock_updater: interceptor.intercept_unary_stream( - mock_continuation, - mock_client_call_details, - mock_request) + mock_continuation, mock_client_call_details, mock_request + ) mock_updater.assert_called_once_with( - mock_client_call_details, [mock_client_call_details.metadata[0], - interceptor.developer_token_meta, - interceptor.login_customer_id_meta]) + mock_client_call_details, + [ + mock_client_call_details.metadata[0], + interceptor.developer_token_meta, + interceptor.login_customer_id_meta, + ], + ) mock_continuation.assert_called_once() diff --git a/tests/oauth2_test.py b/tests/oauth2_test.py index 067545fa0..dc21baf8f 100644 --- a/tests/oauth2_test.py +++ b/tests/oauth2_test.py @@ -20,13 +20,12 @@ class OAuth2Tests(TestCase): - def setUp(self): - self.client_id = 'client_id_123456789' - self.client_secret = 'client_secret_987654321' - self.refresh_token = 'refresh' - self.path_to_private_key_file = '/path/to/file' - self.subject = 'test@test.com' + self.client_id = "client_id_123456789" + self.client_secret = "client_secret_987654321" + self.refresh_token = "refresh" + self.path_to_private_key_file = "/path/to/file" + self.subject = "test@test.com" self.token_uri = oauth2._DEFAULT_TOKEN_URI self.scopes = oauth2._SERVICE_ACCOUNT_SCOPES @@ -34,23 +33,21 @@ def test_get_installed_app_credentials(self): mock_credentials = mock.Mock() mock_request = mock.Mock() with mock.patch.object( - oauth2, - 'InstalledAppCredentials', - return_value=mock_credentials + oauth2, "InstalledAppCredentials", return_value=mock_credentials ) as mock_initializer, mock.patch.object( - oauth2, - 'Request', - return_value = mock_request + oauth2, "Request", return_value=mock_request ) as mock_request_class: result = oauth2.get_installed_app_credentials( - self.client_id, self.client_secret, self.refresh_token) + self.client_id, self.client_secret, self.refresh_token + ) mock_initializer.assert_called_once_with( None, client_id=self.client_id, client_secret=self.client_secret, refresh_token=self.refresh_token, - token_uri=self.token_uri) + token_uri=self.token_uri, + ) mock_request_class.assert_called_once() result.refresh.assert_called_once_with(mock_request) @@ -59,59 +56,57 @@ def test_get_service_account_credentials(self): mock_request = mock.Mock() with mock.patch.object( oauth2.ServiceAccountCreds, - 'from_service_account_file', - return_value=mock_credentials + "from_service_account_file", + return_value=mock_credentials, ) as mock_initializer, mock.patch.object( - oauth2, - 'Request', - return_value = mock_request + oauth2, "Request", return_value=mock_request ) as mock_request_class: result = oauth2.get_service_account_credentials( - self.path_to_private_key_file, self.subject) + self.path_to_private_key_file, self.subject + ) mock_initializer.assert_called_once_with( self.path_to_private_key_file, subject=self.subject, - scopes=self.scopes) + scopes=self.scopes, + ) mock_request_class.assert_called_once() result.refresh.assert_called_once_with(mock_request) def test_get_credentials_installed_application(self): mock_config = { - 'client_id': self.client_id, - 'client_secret': self.client_secret, - 'refresh_token': self.refresh_token} + "client_id": self.client_id, + "client_secret": self.client_secret, + "refresh_token": self.refresh_token, + } with mock.patch.object( - oauth2, - 'get_installed_app_credentials', - return_value=None + oauth2, "get_installed_app_credentials", return_value=None ) as mock_initializer: oauth2.get_credentials(mock_config) mock_initializer.assert_called_once_with( - self.client_id, self.client_secret, self.refresh_token) + self.client_id, self.client_secret, self.refresh_token + ) def test_get_credentials_installed_application_bad_config(self): # using a config that is missing the refresh_token key mock_config = { - 'client_id': self.client_id, - 'client_secret': self.client_secret} + "client_id": self.client_id, + "client_secret": self.client_secret, + } - self.assertRaises( - ValueError, - oauth2.get_credentials, - mock_config) + self.assertRaises(ValueError, oauth2.get_credentials, mock_config) def test_get_credentials_installed_application(self): mock_config = { - 'path_to_private_key_file': self.path_to_private_key_file, - 'delegated_account': self.subject} + "path_to_private_key_file": self.path_to_private_key_file, + "delegated_account": self.subject, + } with mock.patch.object( - oauth2, - 'get_service_account_credentials', - return_value=None + oauth2, "get_service_account_credentials", return_value=None ) as mock_initializer: oauth2.get_credentials(mock_config) mock_initializer.assert_called_once_with( - self.path_to_private_key_file, self.subject) + self.path_to_private_key_file, self.subject + ) diff --git a/tests/util_test.py b/tests/util_test.py index 888784c27..a2127ea1c 100644 --- a/tests/util_test.py +++ b/tests/util_test.py @@ -18,21 +18,22 @@ from google.ads.google_ads import util + class ResourceNameTest(TestCase): def test_format_composite(self): - composite = util.ResourceName.format_composite('test', 'test') - self.assertEqual(composite, 'test~test') + composite = util.ResourceName.format_composite("test", "test") + self.assertEqual(composite, "test~test") class ConvertStringTest(TestCase): def test_convert_upper_case_to_snake_case(self): - string = 'GoogleAdsServiceClientTransport' - expected = 'google_ads_service_client_transport' + string = "GoogleAdsServiceClientTransport" + expected = "google_ads_service_client_transport" result = util.convert_upper_case_to_snake_case(string) self.assertEqual(result, expected) def test_convert_snake_case_to_upper_case(self): - string = 'google_ads_service_client_transport' - expected = 'GoogleAdsServiceClientTransport' + string = "google_ads_service_client_transport" + expected = "GoogleAdsServiceClientTransport" result = util.convert_snake_case_to_upper_case(string) self.assertEqual(result, expected)